Nginx pochta serveri. Proksi pochta uchun NGINX sozlanmoqda. CA ga yaqin proksi-server

Golovna / Ishni optimallashtirish

Nginx- Dunyodan tashqarida kichik, ko'proq shvedcha, dosit funktsional veb-server va pochta proksi-server, chakana Igor Sisoev (rambler.ru). Kichik resurslarni tejash yoyi orqali tizim xavfsizligi va robototexnika, shuningdek, konfiguratsiyaning moslashuvchanligi, Internet nginx serveri kabi ko'proq muhim serverlar uchun frontend sifatida tez-tez g'olib Apache, yuqori ambitsiyalarga ega bo'lgan loyihalarda. Klassik variant - zv'yazuvannya, Nginx - Apache - FastCGI. Bunday sxema bilan mashq qiling, nginx serveri, HTTP orqali kirish mumkin bo'lgan barcha so'rovlarni qabul qiling va konfiguratsiya va so'rovning o'zida zaxirada so'rovning o'zi nima ishlashini tekshiring va mijozga javoban men so'rovni yuborishga tayyorman yoki qayta ishlash uchun so'rovni ta'minlash uchun, backends biri ( Apache yoki FastCGI).

Ko'rinib turibdiki, Apache serveri, teri okremy jarayonda (ipda) qayta ishlanadi, go'yo aytish kerakki, buni juda ko'p tizim resurslari bilan qilish kerak, masalan, 10-20 ta shunday jarayonlar mavjud. , bu juda ko'p emas va 100-500 va undan ko'p bo'lsa, tizim qiziqarli emas.

Keling, bunday vaziyatni aniqlashga harakat qilaylik. Keling, davom etaylik Apache Mijozlardan 300 ta HTTP so'rovi, 150 ta mijoz video liniyalarida o'tirish va yana 150 ta asosiy Internet kanallarida, modemlarga bormaylik. Bu holat haqida qanday fikrdasiz? Va keyingi bosqichda, 300 kunlik xarajatlarni qayta ishlash uchun Apache veb-serveri, jarayon (oqim) orqali terida yaratiladi, vinolarning tarkibi tezda hosil bo'ladi va 150 mijoz o'z so'rovlari natijasini darhol qabul qiladi. , ularning xizmat ko'rsatish jarayonlari resursda va yana 150 tasi o'chiriladi va sizning so'rovlaringiz natijalari tor Internet kanali orqali to'g'ri to'planadi, shundan so'ng tizimda 150 ta jarayon mavjud. Apache, agar mijozlar ko'plab tizim resurslarini yutib yuborgan holda veb-server tomonidan yaratilgan tarkibni olib qo'ysa, nimani tekshirish kerak. Shubhasiz, vaziyat gipotetik, lekin men mohiyatni tushundim deb o'ylayman. Yuqorida tavsiflangan vaziyatni tuzating va muloqotga yordam bering. Mijozning so'rovini to'liq o'qib chiqqandan so'ng, sharob qayta ishlashga o'tkaziladi Apache, bu tarkibni o'z tezligida ishlab chiqaradi va uni iloji boricha tezroq aylantiradi va Nginx-ni qo'llab-quvvatlashga tayyor, agar iloji bo'lsa, xotirjam vijdon bilan jarayonni o'ldiring va sharobni qarzga olish kabi tizim resurslarini chaqiring. Nginx veb-server, so'rov natijasini vyd otrimavshi Apache, uni buferga yozing yoki diskdagi faylga yozing va ehtimol biroz ko'proq vaqt davomida uni to'g'ri mijozlarga berish uchun, buni amalga oshirayotganda, ish jarayoni juda kam resurslardan foydalanadiki .. "bu kulgili" bu haqda gapiring" ©. :) Bunday sxema, tizim resurslarini tejash uchun, takror aytaman, lekin Nginx ning ish jarayonlari oz miqdorda resurslarni tejaydi va bu ajoyib loyihalar uchun muhimroqdir.

Unda Nginx serveri mavjudligining faqat kichik bir qismi, ma'lumotlarni va robotni keshlash qobiliyatini unutmang. memkeshlangan. Men Nginx veb-serverining asosiy funksiyalarini sanab o'taman.

HTTP serveri sifatida Nginx server funksionalligi

  • statik tarkibni qayta ishlash, indeks fayllari, kataloglar ro'yxati, ochiq fayllar uchun identifikatorlar keshi;
  • Tezlashtirilgan proksuvannya z kashuvannya, rozpodyl navantazhennya deb vydmovostíykístyu;
  • Tezlashtirilgan pidtrimka FastCGI naqd pul, rozpodyl navantazhennya va vydmovostíykístyu uchun serverlar;
  • Modulli tuzilma, turli filtrlarni qo'llab-quvvatlash (SSI, XSLT, GZIP, yuklab olish, parchalangan chiqish);
  • SSL qo'llab-quvvatlashi va TLS SNI kengaytmasi;
  • ip-ga asoslangan yoki nomga asoslangan virtual serverlar;
  • KeepAlive va z'ednannami tomonidan ishlab chiqarilgan robot;
  • Har qanday kutish vaqtini va buferlar sonini teng ravishda sozlash imkoniyati Apache server;
  • Vikonannya raznomanytnyh dyy zalezhno vyd mijozning manzili;
  • Qo'shimcha oddiy viruslar uchun URI ni o'zgartiring;
  • 4xx va 5xx uchun kechirimning maxsus tomonlari;
  • Mijozning manzili yoki paroli asosida kirish almashinuvi;
  • Jurnal fayl formatlarini sozlash; jurnalni aylantirish;
  • Mijoz uchun xavfsizlik almashinuvi;
  • Bir necha soatlik ulanishlar va ichimliklar almashinuvi;
  • PUT, DELETE, MKCOL, COPY va MOVE usullarini qo'llab-quvvatlash;
  • Serverning yangilanishini robotning tishlarisiz o'zgartirish;
  • Uyg'onish Perl;

Pochta proksi-serveri sifatida Nginx serverining funksionalligi

  • IMAP/POP3 backend, muvaffaqiyatli HTTP autentifikatsiya serveriga yo'naltirish;
  • SMTPni tashqi HTTP serveriga yo'naltirish autentifikatsiyasi va ichki SMTP serveriga yo'naltirish;
  • Autentifikatsiya qilishda haqoratli usullarga ishora:
    • POP3 - USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
    • IMAP - LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
    • SMTP - AUTH LOGI/PLAIN/CRAM-MD5;
  • SSL qo'llab-quvvatlash;
  • STARTTLS va STLS-ni kesish;

Nginx veb-server tomonidan qo'llab-quvvatlanadigan platformaning operatsion tizimlari

  • FreeBSD, 3 dan 8 gacha - platformalar, i386 va amd64;
  • Linux, 2.2 dan 2.6 gacha - i386 platformasi; Linux 2.6 - amd64;
  • Solaris 9 - i386 va sun4u platformalari; Solaris 10 - i386, amd64 va sun4v platformalari;
  • MacOS X platformalari ppc, i386;
  • Windows XP, Windows Server 2003; (Hozirda beta-sinov bosqichida)

Nginx serverining arxitekturasi va miqyosi

  • Asosiy (master) jarayon, ish jarayonlarining sprati (konfiguratsiya fayliga kiritilgan), chunki u imtiyozsiz yadro ostida ishlaydi;
  • Z'ednanni qayta ishlashning tajovuzkor usullarini qo'llab-quvvatlash:
    • tanlang- standart usul. Standart Nginx moduli avtomatik ravishda olinadi, chunki bu platformada samarali usul topilmagan. Siz --with-select_module yoki --without-select_module konfiguratsiyasidagi qo'shimcha parametrlar uchun primusni yoqishingiz yoki modul tanlashni o'chirib qo'yishingiz mumkin.
    • so'rov- standart usul. Standart Nginx moduli avtomatik ravishda olinadi, chunki bu platformada samarali usul topilmagan. Siz --with-poll_module yoki --without-poll_module konfiguratsiyasida primusni yoqishingiz yoki qo'shimcha parametrlar uchun modul tanlashni o'chirib qo'yishingiz mumkin.
    • navbat- FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 va MacOS X operatsion tizimlarida ishga tushirilishi mumkin bo'lgan samarali usul.
    • epoll Linux 2.6+ da ishlaydigan samarali usuldir. Ba'zi tarqatishlar, masalan, SuSE 8.2, 2.4 yadrosi bilan epollni qo'llab-quvvatlash uchun yamoqlarga ega.
    • rtsig - real vaqt signallari, Linux 2.2.19+ da g'olib bo'lgan samarali usul. Butun tizim uchun blokirovka qilish uchun 1024 dan ortiq signal bo'lishi mumkin emas. Yuqori ambitsiyalarga ega bo'lgan serverlar uchun bu etarli emas, qo'shimcha yadro parametri /proc/sys/kernel/rtsig-max uchun yadrolar sonini ko'paytirish kerak. Biroq, Linux 2.6.6-mm2 dan boshlab, bu parametr kundalik, teri jarayonining tabiati, shuningdek, bir qator signallar sifatida ham tanilgan, ularning kengayishi RLIMIT_SIGPENDING yordami bilan bog'liq.
    • Qachon perepovnenny gilos, nginx serveri so'rov usuli doti yordami uchun hisobni otish va qayta ishlash, vaziyat normal qaytmaydi.
    • /dev/poll- Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ va Tru64 UNIX 5.1A+ operatsion tizimlarida qo'llab-quvvatlanadigan samarali usul.
    • voqea porti - voqea portlari, Solaris 10 da yamoqlanishi mumkin bo'lgan samarali usul. Yamoqdan oldin, yadro vahimalaridan xalos bo'lish uchun yamoqni o'rnatishingiz kerak.
  • EV_CLEAR, EV_DISABLE (vaqt cheklangan yechib olish uchun), NOTE_LOWAT, EV_EOF kabi kqueue usuli imkoniyatlari, mavjud maʼlumotlar soni, kechirim kodi;
  • Sendfile (FreeBSD 3.1+, Linux 2.2.+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+) va sendfilev (Solaris 8 7/01+) bilan ishlash;
  • Qabul qilish-filtrni sozlash (FreeBSD 4.1+) va TCP_DEFER_ACCEPT (Linux 2.4+);
  • 10 000 nofaol HTTP saqlanishi uchun taxminan 2,5 million xotira sarflanadi;
  • Ma'lumotlarni nusxalash uchun minimal operatsiyalar soni;

NGINX dan nafaqat veb-server, balki http-proksi sifatida, balki SMTP, IMAP, POP3 protokollari orqali proksi-server sifatida ham foydalanish mumkin. Nalashtuvatga ruxsat bering:

  • O'lchovli pochta tizimi uchun yagona kirish nuqtasi.
  • Pochta serverlari orasidagi bema'nilikni muvozanatlash.

Ushbu maqola Linux operatsion tizimiga o'rnatilgan. So'rovlar yuboriladigan pochta xizmati sifatida siz postfix, exim, dovecot, exchange, iredmail va boshqalardan foydalanishingiz mumkin.

Robotik printsipi

NGINX veb-serverdan autentifikatsiyani qabul qiladi va oladi. Login va parolni qayta tekshirish natijasiga qarab, proksi-server sarlavhalarni o'zgartirdi.

Muvaffaqiyatli davrlarda:

Shunday qilib, pochta serverining serveri va porti autentifikatsiya asosida aniqlanadi. Bu mov dasturlash bo'yicha ilg'or bilimlar uchun juda ko'p imkoniyatlar beradi.

Muvaffaqiyatsizlik davrida:

Sarlavhadagi autentifikatsiya natijasiga qarab, mijoz kerakli pochta serveriga yo'naltiriladi.

Serverni tayyorlash

Keling, server xavfsizligiga ba'zi o'zgarishlar kiritaylik.

SELinux

Shu jumladan SELinux, shuningdek, CentOS-ni tuzatish yoki Ubuntu-da xavfsizlik tizimini tuzatish:

vi /etc/selinux/config

SELINUX=o‘chirilgan

xavfsizlik devori

Xavfsizlik devoridan qanday foydalanish kerak(CentOS-dan qulflash uchun):

xavfsizlik devori-cmd --permanent --add-port=25/tcp --add-port=110/tcp --add-port=143/tcp

xavfsizlik devori-cmd - qayta yuklash

Iptablesdan qanday foydalanish kerak(Ubuntu-da qulflash uchun):

iptables -A INPUT -p tcp --dport 25-j QABUL QILING

iptables -A INPUT -p tcp --dport 110 -j QABUL QILING

iptables -A INPUT -p tcp --dport 143 -j QABUL QILING

apt-get install iptables-persistent

iptables-save > /etc/iptables/rules.v4

* Ushbu ilova uchun SMTP (25), POP3 (110), IMAP (143) ruxsat etilgan.

NGINX o'rnatilmoqda

Operatsion tizimga tushib qolgan NGINX-ni o'rnatish juda qiyin.

yoki Linux centos:

yum nginx-ni o'rnating

yoki Linux ubuntu:

apt o'rnatish nginx

Xizmatni avtomatik ishga tushirish va yoga boshlashga ruxsat beriladi:

systemctl nginx-ni yoqing

systemctl nginx-ni ishga tushiring

Agar NGINX allaqachon tizimda o'rnatilgan bo'lsa, uni quyidagi modullar bilan tekshirish mumkin:

Biz variantlar ro'yxatini qabul qilamiz, ular bilan veb-serverni tanlash - biz ulardan birini tanlashimiz mumkin --pochta bilan. Kerakli modul yo'qligi sababli siz nginx-ni yangilashingiz kerak

NGINXni sozlash

Nginx konfiguratsiya faylini oching va variantni qo'shing pochta:

vi /etc/nginx/nginx.conf

pochta (

auth_http localhost:80/auth.php;

Server(
tinglang 25;
smtp protokoli;
smtp_auth login oddiy cram-md5;
}

Server(
tinglang 110;
pop3 protokoli;

}

Server(
tinglang 143;
protokoli;
}
}

*de:

  • server_name- SMTPni xususiylashtirish vaqti bo'lishi kerak bo'lgan pochta serverining nomi.
  • auth_http- autentifikatsiyani so'rash uchun veb-server va URL.
  • proxy_pass_error_xabar- autentifikatsiyadan unchalik uzoq bo'lmagan bir soat davomida bildirishnomalar haqida xabar berishga ruxsat berish yoki taqiqlash.
  • tingla- ichimlikni eshitish mumkin bo'lgan port.
  • protokol- port tinglanayotgan dastur protokoli.
  • smtp_auth— SMTP uchun mavjud autentifikatsiya usullari.
  • pop3_auth— Mavjud POP3 autentifikatsiya usullari.

http-server bo'limiga quyidagilarni qo'shing:

Server(
80 default_serverni tinglang;
tinglang [::]:80 default_server;
...

Manzil ~ \.php$ (
$root_path /usr/share/nginx/html o'rnating;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
fastcgi_params o'z ichiga oladi;
fastcgi_param DOCUMENT_ROOT $root_path;
}
...

Nginx serverini qayta ishga tushiring:

systemctl nginx-ni qayta ishga tushiring

PHP ni o'rnatish va sozlash

PHP yordami uchun autentifikatsiyaga erishish uchun tizimga quyidagi paketlarni o'rnatishingiz kerak.

Yakscho CentOS:

yum php php-fpm ni o'rnating

Yakscho ubuntu:

apt-get o'rnatish php php-fpm

PHP-FPMni ishga tushiring:

systemctl php-fpm ni yoqing

systemctl php-fpm ni ishga tushiring

Autentifikatsiya

Login va parolni qayta tekshirish skript tomonidan o'zgartiriladi, uning yo'li auth_http opsiyasi bilan belgilanadi. Bizning ilovamizda PHP skripti mavjud.

Login va parolni tekshirish uchun skript uchun rasmiy blanka misoli:

vi /usr/share/nginx/html/auth.php

* bu skript login va parol ekanligini qabul qiladi va so'rovni serverga yo'naltiradi 192.168.1.22 і 192.168.1.33 . Autentifikatsiya algoritmini o'rnatish uchun 61 - 64 qatorlarni tahrirlang. Qayta yo'naltirish marshrutida server burilishi uchun 73 - 77 qatorlar - ushbu ilovada login belgiga asoslanadi. "a", "c", "f", "g", keyin siz serverga yo'naltirilasiz mailhost01, aks holda, yoqilgan mailhost02. IP manzillari bilan server nomlarini o'rnatish 31, 32-qatorlarda o'rnatilishi mumkin, aks holda siz domen nomi bilan o'tasiz.

Pochta serverini sozlash

NGINX proksi-serverlari o'rtasida ma'lumotlarni almashish va ochiq manbaga o'tish uchun serverni yuborish. PLAIN mexanizmi orqasida autentifikatsiyani yoqish qobiliyatini qo'shish kerak. Masalan, kabutar bog'lash uchun robimo:

vi /etc/dovecot/conf.d/10-auth.conf

Biz qatorlarni qo'shamiz:

masofaviy 192.168.1.11 (
disable_plaintext_auth = yo'q
}

* qaysi ilovaga serverdan autentifikatsiya qilish uchun PLAIN so'rovlariga ruxsat berilgan 192.168.1.11 .

Shuningdek, u qayta tasdiqlangan:

* yakscho ssl matime ma'nosi talab qilinadi, tozalash uchun hech narsa qayta tekshirish, oscillki weide, bu bir tomondan server aniq ko'rinishida ichish imkonini beradi, balki SSL shifrlash.

Dovecot xizmatini qayta ishga tushiring:

systemctl dovecot-ni qayta ishga tushiring

Mijozni moslashtirish

Siz proksi-server sozlamalarimizni qayta tekshirishga o'tishingiz mumkin. IMAP / POP2 / SMTP kabi mijoz sozlamalarida qaysi biri uchun nginx serverining manzilini yoki nomini belgilang, masalan:

* ushbu ilova uchun pochta mijozi serverga ulanish uchun sozlangan 192.168.1.11 ochiq portlar orqali 143 (IMAP) va 25 (SMTP).

shifrlash

Endi bizda SSL ulanishi mavjud. Nginx-ga modul bilan buyurtma berish mumkin mail_ssl_module- Jamoa tomonidan qayta ko'rib chiqilgan:

Kerakli modul mavjudligi uchun nginx tartiblangan.

Keyin konfiguratsiya faylimizni tahrirlaymiz:

vi /etc/nginx/nginx.conf

pochta (
server_name mail.domain.local;
auth_http localhost/auth.php;

proxy_pass_error_message yoqilgan;

SSL yoqilgan;
ssl_certificate /etc/ssl/nginx/public.crt;
ssl_certificate_key /etc/ssl/nginx/private.key;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache umumiy: SSL:10m;
ssl_session_timeout 10m;

Server(
tinglang 110;
pop3 protokoli;
pop3_auth oddiy apop cram-md5;
}

Server(
tinglang 143;
protokoli;
}

Buning sababi SELinux xavfsizlik tizimi.

Yechim: SELinux-ni o'chiring yoki sozlang.

Nginx tez sur'atlar bilan mashhur bo'lib, o'zini Apache uchun oddiygina statikani siqib chiqarishdan to'liq ishlaydigan va qayta ochiladigan veb-serverga aylantirmoqda, bu esa tobora ko'proq to'xtab qolmoqda. Ushbu maqolada biz veb-serverdan maksimal foydalanish imkonini beruvchi nginx versiyasining cica va nostandart stsenariylari haqida gapiramiz.

Post proksi

Keling, eng aniq - nginx-ning pochta proksi-server sifatidagi rolidan boshlaylik. Bu funksiya orqa tarafdagi nginx-da va eksa ishlab chiqarishda g'alaba qozonadi. Qanday bo'lmasin, nginx POP3, IMAP va SMTP protokollarini turli xil autentifikatsiya usullari, jumladan SSL va StartTLS bilan proksi-serverlashni qo'llab-quvvatlaydi va ishlash oson.

Bu kerakmi? Ê yak kamida ikki zastosuvannya tsíêí funksionalligi. Birinchidan: nginx-ni zerikarli spamerlarga qarshi qalqon sifatida yutib oling, SMTP serverimiz orqali smack ro'yxatlarini yuborishga harakat qiling. Ovozli spamerlar ko'p muammolarni keltirib chiqarmaydi, autentifikatsiya bosqichida parchalar osongina yoqiladi, ammo agar ular juda boyib ketsa, nginx protsessor resurslarini tejashga yordam beradi. Do'st: POP3/IMAP pochta serverlariga pinglarni yo'naltirish uchun ping nginx. Zim, shubhasiz, keyingi post proksi-serverlari yuboriladi, lekin hozir serverlar shahri o'rab qo'yilmoqda, chunki nginx allaqachon HTTP statikasi bilan ishlash uchun o'rnatilganmi?

Nginx pochta proksi-serveri sukut bo'yicha ma'lum emas. Vín vikoristovy dodatkovy ball authentifikatsííí, HTTP orqali amalga oshirish va faqat bar'êr orqali o'tish mumkin, vin uzoq o'tdi. Ushbu funksionallik yon panelni/skriptni yaratish yo'li bilan ta'minlanadi, bu nginx koristuvacha ma'lumotlarini tekshiradi va u standart OK oldida chiqadi / yutadi yoki o'zgarishga olib keladi (masalan, noto'g'ri login yoki parol). Skript quyidagi sarlavhalar bilan ishga tushiriladi:

Autentifikatsiya skripti kiritish maʼlumotlari HTTP_AUTH_USER: parol HTTP_AUTH_PASS: parol HTTP_AUTH_PROTOCOL: pochta protokoli (IMAP, POP3 yoki SMTP)

Va uni quyidagicha aylantiring:

Haqiqiylikni tekshirish skriptining chiqish maʼlumotlari HTTP_AUTH_STATUS: OK yoki sababini oʻzgartiring HTTP_AUTH_SERVER: HTTP_AUTH_PORT yoʻnaltirish uchun haqiqiy pochta serveri: server porti

Чудова особливість такого підходу в тому, що його можна використовувати зовсім не для самої аутентифікації, а щоб розкидати користувачів по різних внутрішніх серверах, залежно від імені користувача, даних про поточні навантаження на поштові сервери або взагалі організувавши найпростіше балансування навантаження за допомогою round-robin . Vtim, yadrolarni ichki pochta serveriga o'tkazish zarur bo'lganligi sababli, siz haqiqiy skriptni nginx tomonidan amalga oshirilgan stub bilan almashtirishingiz mumkin. Masalan, nginx konfiguratsiyasidagi eng oddiy SMTP va IMAP proksi-serverlari quyidagicha ko'rinadi:

# vi /etc/nginx/nginx.conf pochtasi ( # Autentifikatsiya skripti manzillari auth_http localhost:8080/auth; # Pochta serverini o'chirish va xclientni o'chirish uchun XCLIENT buyrug'ini yoqing; # IMAP server serveri (143 tinglang; protokol imap; proksi-server) yoqilgan; ) # SMTP server serveri (tinglash 25; smtp protokoli; proksi yoqilgan; ))

# vi /etc/nginx/nginx.conf http ( # Pochta serverining kerakli portiga moslashish HTTP_AUTH_PROTOCOL sarlavha xaritasida o'rnatilgan portga joylashtirilgan $http_auth_protocol $mailport (standart 25; smtp 25; imap 143; ) # Amalga oshirish " - OK ni aylantiring va qo'ng'iroq qiluvchini ichki pochta serveriga yo'naltiring, xaritalangan serverga qo'shimcha ravishda kerakli portni o'rnating ( 8080 tinglang; joy / auth ( add_header "Auth-Status" "OK"; add_header "Auth-Server" "192.168.1. .1). ;add_header "Author-Port" $mailport; qaytish 200; ) ) )

Ana xolos. Ushbu konfiguratsiya hech qanday tarzda nomaqbul ko'rinadigan skriptning yuqori qismini yaratmasdan, xabarlarni ichki pochta serveriga shaffof tarzda yo'naltirish imkonini beradi. Skript o'rnatilgandan so'ng, ushbu konfiguratsiya sezilarli darajada kengaytirilishi mumkin: behuda balansini sozlang, LDAP bazasi uchun fayllarni qayta yozing va boshqa operatsiyalarni o'zgartiring. Skriptni yozish ushbu maqola doirasidan tashqariga chiqadi, uni amalga oshirish, PHP va Python haqida ko'proq yuzaki bilimlarga ega bo'lish yanada osonroq.

Oqimli video

Nginx asosida ajoyib video hostingni o'rnatish juda oson. Videoni serverga kirish mumkin bo'lgan katalogga transkod qilish, uni konfiguratsiyada ro'yxatdan o'tkazish va video o'sha katalogdan olinishi uchun flesh-yoki HTML5-dasturchini sozlash kifoya. Biroq, qandaydir masofaviy dzherel yoki veb-kameradan uzluksiz video oqimini yaratish kerak, bunday sxema ishlamaydi va siz maxsus oqim protokollariga hayron bo'lishingiz mumkin.

Ê k_lka protocolív, scho vyryshuyut tse zavdannya, eng samarali va qo'llab-quvvatlash RTMP. RTMP serverining barcha ilovalari muammolarga duch kelishi unchalik yomon emas. Rasmiy Adobe Flash Media Server pullik. Red5 va Wowza Java-da yozilgan, bu zarur unumdorlikni bermaydi, boshqa dastur Erlyvideo Erlang-da yozilgan, bu klasterni sozlashda yaxshi, lekin bitta server uchun unchalik samarali emas.

Xo'sh, men boshqa pidhidni targ'ib qilaman - nginx uchun RTMP modulini tezlashtiraman. Vín maê mo''jizaviy produktívníníní va undan oldin, saytning veb-interfeysi va video oqimiga xizmat qilish uchun bitta server vikoristovuvatga ruxsat bering. Yagona muammo shundaki, bu modul norasmiydir, shuning uchun nginx uni mustaqil ravishda olishi mumkin. Yaxshiyamki, katlama standart tarzda amalga oshiriladi:

$ sudo apt-get nginx-ni o'chirish $ cd /tmp $ wget http://bit.ly/VyK0lU -O nginx-rtmp.zip $ nginx-rtmp.zip $ wget http://nginx.org/download/nginx- 1.2.6.tar.gz $tar -xzf nginx-1.2.6.tar.gz $cd nginx-1.2.6 $./configure --add-module=/tmp/nginx-rtmp-module-master $make$ sudo make install

Endi modulni sozlash kerak. Har doimgidek nginx konfiguratsiyasi orqali kurashish uchun:

Rtmp (# Sayt/rtmp serveri orqasidagi 1935-portda jonli serverni yoqish (1935-ni tinglang; rtmp ilovasi (jonli; )))

RTMP moduli boy oqim konfiguratsiyasida ishlamaydi, shuning uchun ko'plab nginx ish jarayonlari bitta tezlikka etadi (bu muammoni oldini olish uchun sizga keyinroq aytib beraman):

ishchi_jarayonlari 1;

Endi siz faylni saqlashingiz va nginx konfiguratsiyasini qayta o'qishingiz mumkin. Nginx-ni o'rnatish tugallandi, lekin video oqimining o'zi hali mumkin emas, shuning uchun uni bu erda olishingiz kerak. Masalan, video.avi faylini oqim katalogiga joylashtiramiz. Yoga-ni tezda aylantirish va uni RTMP-moverimizga o'rash uchun keling, eski yaxshi FFmpeg-ni tezlashtiramiz:

# ffmpeg -re -i ~/video.avi -c nusxasi -f flv rtmp://localhost/rtmp/stream

Agar ko'rish video fayli H264 formatida bo'lmasa, uni qayta kodlashingiz kerak. Xuddi shu FFmpeg yordamida Tse juda ko'p robiti bo'lishi mumkin:

# ffmpeg -re -i ~/video.avi -c:v libx264 -c:a libfaac -ar 44100 -ac 2 -f flv rtmp://localhost/rtmp/stream

Potik-ga to'g'ridan-to'g'ri veb-kameradan buyurtma berish mumkin:

# ffmpeg -f video4linux2 -i /dev/video0 -c:v libx264 -an -f flv rtmp://localhost/rtmp/stream

Mijoz tomonidagi oqimni ko'rib chiqish uchun siz bu RTMP qo'llab-quvvatlovchisi yoki yo'qligini tezlashtirishingiz mumkin, masalan, mplayer:

$mplayer rmtp://example.com/rtmp/stream

Aks holda, dasturni to'g'ridan-to'g'ri veb-sahifada olishingiz mumkin, chunki u bir xil nginxga o'xshaydi (rasmiy hujjatlardan misol):

Eng oddiy veb-RTMP dasturi

Faqat ikkita muhim qator mavjud: RTMP oqimini ko'rsatadigan "fayl: "stream"" va "streamer: "rtmp://localhost/rtmp"", bu RTMP strimeri manzilini belgilaydi. Ko'proq narsa uchun bunday nalashtuvanlarning vazifasi etarli bo'ladi. Bitta manzil uchun siz bir nechta turli oqimlarni ishga tushirishingiz mumkin va nginx ularni mijozlar o'rtasida samarali tarzda ko'paytiradi. Alece RTMP moduli bo'lgan hamma narsadan uzoqdir. Ushbu yordam yordamida, masalan, boshqa serverdan video oqimini qayta uzatishni tashkil qilishingiz mumkin. Buning uchun FFmpeg serveri kerak emas, konfiguratsiyaga keyingi qatorlarni qo'shish kifoya:

# vi /etc/nginx/nginx.conf ilovasi rtmp (jonli; rtmp://rtmp.example.com ni torting; )

Turli xil quvvatlarda bir nechta oqimlarni yaratish zarur bo'lganligi sababli, siz FFmpeg rekoderiga to'g'ridan-to'g'ri nginx-dan qo'ng'iroq qilishingiz mumkin:

# vi /etc/nginx/nginx.conf ilovasi rtmp (jonli; exec ffmpeg -i rtmp://localhost/rtmp/$name -c:v flv -c:a -s 320x240 -f flv rtmp://localhost /rtmp-320x240/$name; ) ilovasi rtmp-320x240 (jonli; )

Bunday konfiguratsiya yordami uchun biz ikkita brauzerni olamiz, ulardan biri rtmp://site/rtmp manzilida, ikkinchisi esa rtmp://site/rtmp manzilida 320x240 kabi ishlaydi. -320x240. Keyin saytga flesh-pleer va kuchni tanlash tugmachalarini qo'shishingiz mumkin, bu esa o'yinchini brauzer manziliga yuboradi.

Xo'sh, va nihoyat, musiqa harakatining o'lchovi:

rost bo'lsa; ffmpeg -re -i ``topish /var/music -turi f -name "*.mp3"|sort -R|head -n 1`" -vn -c:a libfaac -ar 44100 -ac 2 -f flv rtmp://localhost/rtmp/stream;bajarildi

Git proksi

Git versiyasini boshqarish tizimi nafaqat Git va SSH protokollari, balki HTTP uchun ham omborga kirishni ta'minlash uchun mo'ljallangan. Agar HTTP kirishni amalga oshirish ibtidoiy va bepul bo'lsa, u ombor bilan to'liq ishlashni ta'minlaydi. 1.6.6 versiyasidan boshlab vaziyat o'zgardi va bugungi kunda protokolni o'zgartirish mumkin, masalan, xavfsizlik devori xavfsizlik devorini ham chetlab o'tish va boshqa tomondan, veb-interfeys bilan joylashtirilgan Git xostingini yaratish o'rniga.

Afsuski, rasmiy hujjatlarda faqat Apache veb-serveri tomonidan Git-ga kirishni tashkil etish haqida aytilgan, ammo dasturning o'zi standart CGI interfeysiga ega eski dastur bo'lib, siz uni deyarli har qanday boshqa serverga, shu jumladan lighttpd-ga ham ulashingiz mumkin, va, albatta, nginx. Buning uchun serverning o'zidan tashqari hech narsa kerak emas, Git va kichik FastCGI server fcgiwrap o'rnatilgan, bu zarur, chunki nginx CGI bilan vositachisiz ishlay olmaydi, lekin FastCGI protokoli yordamida skriptlarni chaqirishi mumkin.

Robotlarning butun sxemasi shunday ko'rinadi. Fcgiwrap serveri fon rejimida va CGI qo'shimchasiga tekshirish vaqti so'raladi. Nginx, eng yaxshi holatda, biz ko'rsatgan manzilga o'tish uchun FastCGI-interfeysi orqali git-http-backend CGI binarini so'rashga majbur bo'ladi. Kiritilgan ma'lumotni olgandan so'ng, fcgiwrap GIT mijozi tomonidan yuborilgan o'rnatilgan CGI argumentlaridan git-http-backendni kuzatadi va natijani aylantiradi.

Bunday sxemani amalga oshirish uchun biz boshida fcgiwrap qo'shamiz:

$ sudo apt-get install fcgiwrap

Uni sozlash shart emas, barcha parametrlar FastCGI protokoli orqali uzatiladi. VIN-kodning ishga tushirilishi ham avtomatik bo'ladi. Shuning uchun nginxni tuzatish juda ko'p. Buning uchun /etc/nginx/sites-enabled/git faylini yaratamiz (bunday katalog yo'qligi sababli siz asosiy konfiguratsiyaga yozishingiz mumkin) va keyingi bosqichdan oldin yozing:

# vi /etc/nginx/sites-enabled/git server ( # 8080 portiga qarab 8080 tinglang; # Serverimiz manzillari (DNS yozuvini qo'shishni unutmang) server_name git.example.ru; # Jurnallar access_log /var/ log/nginx /git-http-backend.access.log;error_log /var/log/nginx/git-http-backend.error.log; arg_service ~* "git-receive-pack") (qayta yozish ^ /private$uri oxirgi; ) ichiga /etc/nginx/fastcgi_params; # Bizning git-http-backend fastcgi_param SCRIPT_FILENAME manzillari /usr/lib/git-core/git-http-backend; # Git ombor manzillari fastcgi_param GIT_PROJECT_ROOT /srv/git; # Fastcgi_param fayl manzillari PATH_INFO $uri; # Server manzillari fcgiwrap fastcgi_pass 127.0.0.1:9001; ) Yozish uchun # manzillar. )$ (# Yangilangan auth_basic "git anonim faqat o‘qish uchun, autentifikatsiya qilingan yozish"; # HTTP autentifikatsiyasi htpasswd auth_basic_user_file /etc/nginx/htpasswd asosida; # Moslashtirilgan FastCGI va o‘z ichiga /etc/nginx_paragit-NAMERIPT/fast/etc/nginx_paragit/famfig; -core/git-http-backend; fastcgi_param GIT_PROJECT_ROOT /srv/git; fastcgi_param PATH_INFO $1; fastcgi_pass 127.0.0.1:9001; )

Ushbu konfiguratsiya uchta muhim so'zni yuboradi:

  1. Repozitoriy manzillari /srv/git bo'ladi, siz tegishli kirish huquqlarini o'rnatishingiz mumkin: $ sudo chown -R www-data:www-data /srv/git
  2. Anonim foydalanuvchilar tomonidan o‘qilmagani va HTTP orqali yuklashga ruxsat bergani uchun omborning o‘zi aybdor: $ cd /srv/git $ git config core.sharedrepository true
  3. Yordam htpasswd fayli uchun autentifikatsiya talab qilinadi, uni yaratishingiz va uni yangi kodga qo'shishingiz kerak: $ sudo apt-get install apache2-utils $ htpasswd -c /etc/nginx/htpasswd user1

Hozircha hammasi shu, nginx-ni qayta yuklang:

Mikrokesh

Biz dinamik, tez-tez yangilanib turadigan sayt bilan bog'liq vaziyatni ko'ramiz, u tezda yanada katta ambitsiyalarni o'z zimmasiga olishni boshlaydi (yaxshi, eng yirik yangiliklar saytlaridan birida vino sarflagan) va kontent bilan kurashishni to'xtatadi. To'g'ri pul ishlash sxemasini vakolatli optimallashtirish va amalga oshirish uzoq vaqt talab etadi va muammolarni birdaniga hal qilish kerak. Biz nima qila olamiz?

Fenn Beyli, fennb.com, bu vaziyatdan eng kam xarajat bilan chiqishning bir necha yo'li g'oyasini targ'ib qildi. Bu g'oya shunchaki nginx serveri oldiga qo'yish va uzatilayotgan barcha kontentni keshlash va faqat kesh emas, balki faqat bir soniya. Rodzinka bu yerda bir soniyada saytni yuzlab va minglab ko'rishlar uchun, aslida, eng katta keshlangan tomonni olib tashlab, orqa qismga faqat bitta qaytishni keltirib chiqaradi. Bu narxda buni eslash qiyin, chunki bir soniya dinamik saytda hech narsani anglatmaydi.

G'oyani amalga oshirishdan konfiguratsiya unchalik aniq emas:

# vi /etc/nginx/sites-enabled/cache-proxy # Keshni o'rnating proxy_cache_path /var/cache/nginx level=1:2 keys_zone=mikrokesh:5m max_size=1000m; server ( 80 tinglang; server_name example.com; # Keshlangan manzil manzili / ( # Promouterlar uchun keshni yoqish $no_cache ""; # Barcha usullar uchun keshni yoqish, krem ​​GET va HEAD if ($request_method !~ ^(GET|HEAD)) ) $) ( $no_cache "1" ni o'rnating; ) # Mijozga sayt tarkibini olishiga ruxsat berish uchun (no_cache = 1), sizga berilgan ma'lumotlar ikki marta keshlanmaganligiga ishonch hosil qiling. soniya va grab natijasini yutib oling if ( $no_cache = "1") ( add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/"; add_header X-Microcachable "0"; ) if ($) http_cookie ~* "_mcnc") ( sozlang $ no_cache "1"; ) # Kelajakda eskirgan keshni yoqish/o'chirish no_cache proxy_no_cache $no_cache; proxy_cache_bypass $no_cache; # Haqiqiy serverga proksi-server proxy_pass http://appserver.example. ru; proxy_cache microcache; pro$y_$ request_uri; proxy_cache_valid 200 1s;# Muammoni aniqlang Thundering podasi proxy_cache_use_stale yangilanmoqda;# Proksi_set_h standart sarlavhasini qo'shing $host; proxy_set_he ader X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 1 Mb dan katta proksi_max_temp_file_size 1M fayllarni keshlash mumkin emas; )

Ushbu konfiguratsiyada alohida o'rin "proxy_cache_use_stale updateting;" qatorini egallaydi, ularsiz biz keshni yangilashda har soatda keladigan so'rovlar orqali backend serveriga davriy trafik portlashlarini olib boramiz. Aks holda, hamma narsa standart va tushuntirishsiz tushunilishi mumkin.

CA ga yaqin proksi-server

Internet xavfsizligining global o'sishidan qat'i nazar, serverning maqsadli auditoriyagacha bo'lgan jismoniy masofasi o'z rolini o'ynashda davom etmoqda. Bu shuni anglatadiki, rus sayti bu erda Amerikada o'rnatilgan serverda aylanadi, yangisiga kirish apriori yaxshiroq bo'ladi, bir xil kanal kengligi bo'lgan rus serveridan pastroq bo'ladi (yaxshi, bu ko'zingizni tekislash kabidir) boshqa barcha omillar bo'yicha). O'ng tomonda, serverlarni kordondan tashqarida joylashtirish ehtimoli katta, shu jumladan xizmat rejasi. Buning uchun, vyddachi ko'proq yuqori tezligini ko'rish otrimannya foyda uchun, u ayyorlik borish uchun sodir bo'ladi.

Mumkin bo'lgan variantlardan biri: Zahody-da asosiy samarali serverni joylashtirish va undan ham kuchliroq bo'lmagan frontend resurslari, bu statikani Rossiya hududida tarqatishga imkon beradi. Tse jiddiy vitratlarsiz shvidkostda g'alaba qozonishga imkon beradi. frontend uchun nginx konfiguratsiyasi, bu holda biz kechiramiz va proksi-serverning bajarilishini hammamiz bilamiz:

# vi /etc/nginx/sites-enabled/proxy # Keshni 30 kun davomida 100 Gb xotirada saqlang proxy_cache_path /var/cache/nginx level=1:2 keys_zone=static:32m inactive=30d max_size=100g; server ( 80 tinglang; server_name example.com; # Xo'sh, bizning proksi joylashuvimiz ~ * .(jpg|jpeg|gif|png|ico|css|midi|wav|bmp|js|swf|flv|avi|djvu|mp3) $ ( # Backend manzillari proxy_pass back.example.com:80; proxy_redirect oʻchirilgan; proxy_set_header Xost $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_x; proxy_cachetro proksi-serverlari-valid "C3"0 Muddati tugaydi"; proxy_cache_key "$uri$is_args$args"; proxy_cache_lock yoqilgan; ))

Visnovki

Bugungi kunda nginx yordamida siz nomsiz vazifalarni sindirishingiz mumkin, ularning aksariyati veb-server va HTTP protokoli bilan bog'liq emas. Pochta proksi-serveri, oqim serveri va Git interfeysi bu vazifalarning faqat bir nechtasi.

iRedMail - haqiqiy chiqish kodi bilan pochta serverini saqlashga tayyor. Ombor Postfix SMTP serveriga (Mail Transfer Agent, qisqacha MTA) asoslangan. To'plamga shuningdek: Dovecot, SpamAssassin, Greylist, ClamAV, SOGo Roundcube, NetData va NGINX kiradi.

Kaptarxona- IMAP/POP3 serveri.

Spamassassin- Spamni filtrlash.

Kulrang ro'yxat- Zasib sírih ro'yxatlari asosida spamga qarshi kurash.

ClamAV- Antivirus.

Roundcubeі SOGO- Elektron pochtaga ega robotlar uchun veb-mijozlar.

NetData- Real vaqt rejimida server robotlarini kuzatish dasturi.

Nginx- Veb-server.

Qo'llab-quvvatlovchi operatsion tizimlar: CentOS 7, Debian 9, Ubuntu 16.04/18.04, FreeBSD 11/12і OpenBSD 6.4.

iRedMail-ning pullik va naqd pulsiz versiyalari mavjud bo'lib, ular iRedAdmin pochta jildining o'z veb-interfeysi bilan bir xil funksiyalardan biridir. Nusxa ko'rsatilmagan versiyada siz endi domenlar yarata olmaysiz, koristuvachlar va administratorlarning post ekranlarini joylashtira olmaysiz. Agar siz taxallus yaratishingiz kerak bo'lsa, iRedAdmin orqali kodsiz versiyani yarata olmaysiz. Yaxshiyamki, bu bepul yechim, chunki u PostfixAdmin deb ataladi, bu sizga uni amalga oshirish imkonini beradi. PostfixAdmin iRedMail-ga kirish oson va u bilan mo''jizalar yaratadi.

Oʻrnatilgan

O'rnatish uchun bizga kattaroq operatsion tizimlardan biri kerak. Men Ubuntu Server 18.04 ni tvit qilaman. Bundan tashqari, siz domen nomini sotib olishingiz va DNS zonasini o'rnatishingiz mumkin. Domen registratoringizning DNS serverini yutib olish uchun domen zonasini boshqarish uchun ikkita yozuvni ajratish kerak: A va MX. Shuningdek, siz domen nomini ro'yxatga oluvchining maxsus ofisida delegatsiya o'rnatish orqali o'zingizning DNS-ni sozlashingiz mumkin.

Domen zonasini sozlash píd soat vikoristannya DNS registratori

Hurmatga ega bo'ling! Bir tizhnya qadar bir necha yil davomida soat nabuttya nalashtuvan DNS. Buyurtma tugallanmaguncha, pochta serveri to'g'ri ishlamaydi.

O'rnatish uchun joriy versiyani iRedMail saytidan yuklab oling. Bugun 0.9.9.

# wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Keling, arxivlarni ochaylik.

# tar xjf iRedMail-0.9.9.tar.bz2

Arxivni ochish

Men yaratilgan papkaga o'ting.

# CD iRedMail-0.9.9

IRedMail o'rnatuvchisi bilan jild

Papkalarni tekshirish

Jild maydoni

iRedMail o'rnatish skriptini ishga tushiraman.

# bash iRedMail.sh

Pochta tizimini o'rnatish boshlanadi. O'rnatish jarayoni kam quvvat talab qiladi. Keling, o'rnatishni kutamiz.

Cob vstanovlennya

O'rnatish katalogini tanlang

Endi siz veb-serverni tanlashingiz kerak. Tanlov kichik, shuning uchun NGINX ni tanlang.

Veb-serverni tanlang

Endi pochta tizimiga ega robotga o'rnatiladigan va yangilanadigan ma'lumotlar bazasi serverini tanlash kerak. MariaDB ni tanlang.

Ma'lumotlar bazasi serverini tanlang

Ma'lumotlar bazasi uchun ildiz parolini o'rnating.

Ma'lumotlar bazasi parolini yarating

Endi biz pochta domenimizni belgilaymiz.

Pochta domenini yaratish

Keling, administrator ekranida parol yarataylik [elektron pochta himoyalangan] domain.ru.

Pochta administratori parolini yaratish

Veb komponentlarini tanlang

Tuzatish bilan tasdiqlangan.

Tasdiqlashning tasdiqlanishi

Oʻrnatish ishlamoqda.

Oʻrnatilgan

O'rnatish tugagandan so'ng, qoidalar tasdiqlanadi iptables uchun SSH va xavfsizlik devorini qayta ishga tushiring. iRedMail ishlaydi iptables. Ubuntu'da xavfsizlik devorini boshqarish yordam dasturini sozlash eng keng tarqalgan UVW. Agar sizda bunday ehtiyoj bo'lsa, unda o'rnating UVW (apt install ufw) va quyidagi qoidalarni qo'shing b UVW(But: ufw "nginx to'liq" ga ruxsat beradi yoki ufw Postfix-ga ruxsat beradi) pochta serveri robotini bloklamasdan. Buyruq yordamida mavjud qoidalar ro'yxatini ko'rib chiqishingiz mumkin: ufw ilovalar ro'yxati. E'tibor beraylik UVW: ufw yoqish.

Iptables qoidasini yaratish

Xavfsizlik devori qayta ishga tushirildi

iRedMail o'rnatilishi tugallangan. Tizim bizga veb-interfeyslar manzillarini va kirish uchun ma'lumotlarni berdi. Pochta tizimining barcha komponentlarini yangilash uchun siz serverni qayta sozlashingiz kerak.

O'rnatishni yakunlash

Keling, qaytadan shug'ullanamiz.

# qayta ishga tushirish

Nalashtuvannya

Kob uchun, u hamma narsa ishlaydi, deb, perekonatsya kerak. Keling, manzil uchun iReadAdmin login paneliga o'tishga harakat qilaylik https://domain/iredadmin. Kirish [elektron pochta himoyalangan] domain.ru, parol o'rnatish vaqtida yaratilgan. Rus interfeysi.

Yak bachimo, hamma narsa ishlaydi. IRedAdmin-ga kirganingizda, siz hamma narsadan yaxshiroq, sertifikat bilan bog'langan xavfsizlikni kechirdingiz. Bu iRedMail qaysi brauzer o'rnatilgan bo'lsa, tikilgan o'z-o'zidan imzolangan sertifikatga ega bo'lishi mumkinligiga bog'liq. Ushbu muammoni hal qilish uchun siz tegishli SSL sertifikatini o'rnatishingiz kerak. Agar sizda ê xaridlari bo'lsa, siz yoga o'rnatishingiz mumkin. Ilovada men Let's Encrypt kabi qimmatsiz SSL-ni o'rnataman.

Let's Encrypt SSL sertifikati o'rnatilmoqda

Qo'shimcha certbot yordam dasturi uchun sertifikatni o'rnating. Tezda Dodamo ombori.

# add-apt-repository ppa:certbot/certbot

Kerakli komponentlar bilan certboot-ning o'zini o'rnatamiz.

# apt o'rnatish python-certbot-nginx

Biz sertifikatni olamiz.

# certbot --nginx -d domain.ru

Buyruqni ishga tushirganingizda, tizim sizdan elektron pochta manzilini kiritishingizni so'raydi, kiriting. Shu sababli, siz hamma narsani kechirasiz, chunki sertifikat yaratilgan server blokini bilish mumkin emas. Bunday vaziyatda bu normal holat, bizda hech qanday server blokining parchalari yo'q. Biz uchun sertifikat olish ahmoqlik.

Sertifikatni qaytarib olish

Bachimo singari, sertifikat muvaffaqiyatli bekor qilindi va tizim bizga sertifikatning o'zi va kalitiga yo'llarni ko'rsatdi. Bizni yakrazni hidlang va bizga kerak. Biz "/etc/letsencrypt/live/domain" papkasida saqlanadigan 4 ta faylni olib tashladik. Endi tikilgan sertifikatni men olib ketgan sertifikat bilan almashtirish uchun veb-serverga sertifikatimiz haqida aytib berish kerak. Buning uchun biz faqat bitta faylni tahrirlashimiz kerak.

# nano /etc/nginx/templates/ssl.tmpl

Men qolgan ikkita yangi qatorni o'zgartiraman.

SSL sertifikatini almashtiring

Sertifikat olib qo'yilganda tizim bizga aytganidek, fayldan yo'lni o'zgartiramiz.

SSL sertifikatini almashtirish

NGINX-ni qayta ishga tushiring.

# nginx xizmati qayta ishga tushirildi

Endi qaytadan kirishga harakat qiling iRedAdmin.

SSL sertifikatini qayta tekshirish

Sertifikat uchun kechirim yo'q. Sertifikat haqiqiydir. Siz qal'aga bosishingiz va kuch yogasini hayratda qoldirishingiz mumkin. Certboot sertifikatining amal qilish muddati tugagach, u avtomatik ravishda yangilanishi mumkin.

Endi Dovecot va Postfix sertifikatlari haqida gapiraylik. Tartibga solish mumkin bo'lgan ikkita konfiguratsiya fayli mavjud. Vikonuemo:

# nano /etc/dovecot/dovecot.conf

Biz blokni bilamiz:

#SSL: Global sozlamalar.

I minyaêmo bizniki uchun sertifikat tayinlash.

Dovecot uchun sertifikatni almashtirish

Shuningdek, "ssl_protocols" qatoriga e'tibor bering. Dovecot-ni qayta ishga tushirishda uni ssl_protocols-dan olib tashlashni o'ylab ko'ring.

# nano /etc/postfix/main.cf

Biz blokni bilamiz:

# SSL kaliti, sertifikat, CA

Sertifikatimiz fayllarini yangi usulda o'zgartiraman.

Postfix uchun sertifikatni o'zgartirish

Kimga sertifikatni o'rnatish tugallangan. Dovecot va Postfix-ni qayta ishga tushirish yoki undan ham yaxshisi, serverni qayta ishga tushirish kerak.

# xizmat kaptarxona qayta ishga tushirildi

# qayta ishga tushirish

PHPMyAdmin o'rnatilmoqda

Bu nuqta juda aniq emas, lekin men vikonati yoga tavsiya qilaman va ma'lumotlar bazalari bilan qo'lda ishlash uchun PHPMyAdmin-ni o'rnataman.

# apt o'rnatish phpmyadmin

O'rnatuvchi robotni PHPMyAdmin-ni sozlash uchun qandaydir veb-server bilan ta'minlaydi, chunki NGINX ro'yxatda yo'q, shunchaki TAB tugmasini bosing va ketaylik.

PHPMyAdmin o'rnatilmoqda

O'rnatish tugallangandan so'ng, phpmyadmin katalogda qandaydir qulflash bilan simli havola yaratish zaruratini qozonishi uchun NGINX ishlaydi.

# ln -s /usr/share/phpmyadmin /var/www/html

borishga harakat qilaman https://domain/phpmyadmin/

PHPMyAdmin ishlaydi. Ulanish sertifikat bilan himoyalangan, yillik kechirimlar yo'q. Qani ketdik. Keling, MySQL ma'lumotlar bazasi administratorini (MariaDB) yaratamiz.

# mysql

I MariaDB boshqaruv konsoli tomonidan iste'mol qilinadi. Quyidagi robimo buyruqlarini bering:

MariaDB > "parol" BILAN identifikatsiya qilingan "admin"@"localhost" FOYDALANUVCHI YARATING;
MariaDB > "admin"@"localhost" UCHUN *.* UCHUN BARCHA IMTISOYOTLARNI GRANT OPSIYASI BILAN BERING;
MariaDB > FLUSH PRIVILEGES;

MySQL Koristuvachni yaratish

Usi OK, vikonlarning kirishi. PHPMyAdmin ishga tayyor.

PostfixAdmin o'rnatilmoqda

PHPMyAdmin kabi PostfixAdmin printsipi o'rnatilmasligi mumkin. Pochta serveri mo''jizaviy darajada amaliy va hech qanday komponentlarsiz. Biroq, siz pochta taxalluslarini yarata olmaysiz. Agar sizga hech narsa kerak bo'lmasa, uni jasorat bilan o'tkazib yuborishingiz mumkin. Agar sizga hali ham taxallus kerak bo'lsa, sizda ikkita variant bor: iReaAdminning pullik versiyasini sotib olish yoki PostfixAdminni o'rnatish. Shubhasiz, ma'lumotlar bazasida taxalluslarni qo'lda yozish orqali qo'shimcha dasturiy ta'minotsiz ishlash mumkin, lekin qo'lda emas va hamma uchun emas. Men bir qarashda o'rnatilgan va iRedMail bilan birlashtirilgan PostfixAdmin-ni buzishni tavsiya qilaman. O'rnatishni boshlaylik:

# apt o'rnatish postfixadmin

Keling, kutamiz va dasturning tizim ma'lumotlar bazasi uchun parol yaratamiz.

PostfixAdmin o'rnatilmoqda

PostfixAdmin o'rnatilmoqda

PHPMyAdminni o'rnatishdan oldin analogiya uchun Robimo simli havola.

# ln -s /usr/share/postfixadmin /var/www/html

Robimo Koristuvacha, chunki veb-server katalog menejeri tomonidan ishga tushiriladi. Bizning NGINX turimiz www-data nomi ostida ishlaydi.

# chown -R www-data /usr/share/postfixadmin

Endi biz PostfixAdmin konfiguratsiya faylini tahrirlashimiz va iRedAdmin kabi ma'lumotlar bazasi haqidagi yangi ma'lumotlarni qo'shishimiz kerak. Rag'batlantirish uchun ushbu ma'lumotlar bazasi vmail deb ataladi. Agar siz PHPMyAdmin ga kirsangiz, u yerda suhbatlashishingiz mumkin. Shunday qilib, PostfixAdmin ma'lumotlar bazasiga bir zumda o'zgartirishlar kiritishi uchun u PostfixAdmin konfiguratsiyasida yozilgan.

# nano /etc/postfixadmin/config.inc.php

Biz qatorlarni bilamiz:

$CONF["ma'lumotlar bazasi_turi"] = $dbtype;
$CONF["database_host"] = $dbserver;
$CONF["database_user"] = $dbuser;
$CONF["database_password"] = $dbpass;
$CONF["ma'lumotlar bazasi_name"] = $dbname;

Men bir qarashga qaratdim:

$CONF["ma'lumotlar bazasi_type"] = "mysqli"; # Ma'lumotlar bazasi turi
$CONF["database_host"] = "localhost"; # Ma'lumotlar bazasi serveri xosti
$CONF["database_user"] = "admin"; # Vmail ma'lumotlar bazasiga yozish huquqi bilan kiring. Siz ijoddan oldin silkitishingiz mumkin admin
$CONF["database_password"] = "parol"; # Belgilangan parolning paroli
$CONF["ma'lumotlar bazasi_name"] = "vmail"; # Ma'lumotlar bazasi nomi iRedMail

Ma'lumotlar bazasi haqida ma'lumotlarni kiritish

Agar siz SOGo pochta veb-mijozini yutib olishni rejalashtirmoqchi bo'lsangiz, siz yana bitta qo'shimcha yaratishingiz va xatboshidagi PostfixAdmin shifrlashni eslab qolishingiz kerak. $CONF["shifrlash"] h "md5crypt" ustida "kaptarxona: SHA512-CRYPT". Agar bunga qarshi bo'lmasangiz, SOGo-da avtorizatsiya qilmoqchi bo'lganingizda, biz uni PostfixAdmin bilan yaratamiz, siz noto'g'ri login yoki parolni kechirasiz.

Shifrlash turini o'zgartirish

Endi o'rnatishni muvaffaqiyatli yakunlash va kechirimga ega bo'lmaslik uchun ma'lumotlar bazasini kutish kerak. PHPMyAdmin orqali qo'lda zrobiti. Biz vmail ma'lumotlar bazasini tanlaymiz va SQL yorlig'iga o'tamiz. Viknida biz kiramiz:

Pochta qutisiga DROP INDEX domeni;
DROP INDEX domeni taxallusda;
ALTER TABLE taxallus ADD USTUN `goto` matni NO NULL;

Ma'lumotlar bazasiga qadar so'rang

Men "Oldinga" tugmasini bosing. Endi biz hammamiz tayyormiz, siz PostfixAdmin veb-interfeysiga o'tishingiz va o'rnatishni yakunlashingiz mumkin. Qaysi brauzer uchun yozishingiz kerak: https://domain/postfixadmin/setup.php.

Bunday ko'rinishda aybdor:

PostfixAdmin o'rnatilmoqda

Agar ko'rsatmalar uchun hamma narsa buzilgan bo'lsa, unda kechirimlar aybdor emas. Agar hali ham mavjud bo'lsa, siz ularni olib tashlashingiz kerak, aks holda tizim davom etishingizga ruxsat bermaydi. O'rnatish parolini o'rnating va "ni bosing" Parol xeshini yarating Tizim parolning xeshini yaratadi, uni parametrga kiritish kerak $CONF["setup_password"].

PostfixAdmin o'rnatilishi tugallanmoqda

Konfiguratsiya faylidagi parametrlarni o'zgartirish

Endi yangi parolni kiriting va PostfixAdmin administratorini yarating. Postmaster login bilan administrator yaratmang, parchalar iRedAdmin boshqaruv paneliga kirishda muammolarga duch kelishi mumkin.

PostfixAdmin administratori tomonidan yaratilgan

Hammasi bajarildi, administrator. Siz kirishni yutib olishingiz mumkin.

Iltimos, xavfsizlik nuqtai nazaridan postfixadmin katalogidagi setup.php faylining nomini o'zgartirish yoki uni o'chirish yaxshiroqdir.

Davom etaylik: https://domain/postfixadmin/ va biz qiya ma'lumotlarni yaratishni joriy qilamiz. PostfixAdmin, xuddi iRedAdmin kabi, rus tiliga ega. Siz avtorizatsiya soatini o'zgartirishingiz mumkin.

Keling, koristuvachning pochta skrinshotini yaratishga harakat qilaylik.

IRedMail modullari haqida bildirishnoma/xabarnoma

IRedMail modullari ortida iRedAPD qo'llab-quvvatlanadi. Vín maê konfiguratsiya fayli, unda ishchi modullar ro'yxatdan o'tgan. Agar sizga boshqa modul kerak bo'lmasa, uni konfiguratsiya faylidan olib tashlashingiz va undan foydalanishni to'xtatishingiz mumkin. Vikonuemo:

# nano /opt/iredapd/settings.py

Biz qatorni bilamiz " plaginlar Va ko'rinishidan, sizga hech qanday komponent kerak emas. Men komponentni olaman "kulrang ro'yxat". Vín zvichayno dosit spamdan samarali himoya qiladi, lekin tez-tez etib bormaydi va kerakli barglar.

Greylist (sir ro'yxati) - bu pochta menejeri serverining xatti-harakatlarini tahlil qilishga asoslangan spamdan avtomatik himoya qilish texnologiyasi. “Kul roʻyxat” yoqilgan boʻlsa, server avval nomaʼlum manzildan roʻyxatlarni qabul qila boshlaydi va sizni kechirish haqida xabardor qiladi. Bunday vaqtda server kuchni yana takrorlashda aybdor. Spamerlar dasturlari buni uyalmaslik uchun chaqiradi. Varaq yana qoplanishi bilanoq, sharob 30 kun davomida ro'yxatga qo'shiladi va almashinuv birinchi marta yuboriladi. Vykoristovuvat tsey moduli chi ní víryshuyte o'zingizni.

Yuborilgan modullar haqida ogohlantirish / ogohlantirish

O'zgartirishlar kiritilgandan so'ng, uni qayta ishga tushirish kerak iRedAPD.

# xizmat qayta ishga tushirildi

Pochta serveri sinovi

Kimga iRedMail pochta serverini o'rnatish tugallangan. Yakuniy bosqichga - testga o'tishingiz mumkin. Biz ikkita pochta skrinshotini yaratamiz. Perevyrka uchun biri iRedAdmin orqali, ikkinchisi PostfixAdmin orqali va ro'yxatni bitta pochta qutisidan boshqasiga o'zgartiring. iRedAdmin-da skrinshot mavjud [elektron pochta himoyalangan] domain.ru. PostfixAdmin - [elektron pochta himoyalangan] domain.ru

IRedAdmin-da koristuvach yaratish

PostfixAdmin-da koristuvach yaratish

Koristuvachi sodir bo'lganiga ishonish qiyin.

Agar siz PostfixAdmin pochta qutilaridagi "Kimga" ustunini hurmat qilsangiz, iRedAdmin va PostfixAdmin-da yaratilgan pochta qutilari orasidagi farqni belgilashingiz mumkin. IRedAdmin-da yaratilgan skrinshotlar " sifatida belgilangan. faqat oldinga", lekin PostfixAdmin-da -" sifatida yaratilgan Pochta qutisi Men uzoq vaqtdan beri nima uchun bunchalik boshqacha ekanligini va ular o'rtasida qanday farq borligini tushunolmadim va bir misraga duch keldim. IRedAdmin-dagi qutilar taxalluslarsiz, PostfixAdmin-dagi qutilar esa taxallus bilan yaratilgan.

Agar siz taxalluslarni ko'rsangiz, pochta qutilari xuddi iRedAdmin-da yaratilgandek ko'rsatiladi. faqat oldinga".

Vydalennya aliasiv

Taxallus olib tashlandi. PostfixAdmin-ni tekshiring.

Yak bachimo barcha qutilar "Faqat oldinga" bo'ldi. Shunday qilib, faqat iRedAdmin taxallusda yaratilgan qutida yaratish uchun siz "Pochta qutisi" bo'lasiz. Aslida, biz amaliylik haqida qayg'urmaymiz. PostfixAdmin-da yaratilgan pochta qutisida taxallus yarata olmaysiz. Taxallusni yaratish uchun almashtirish allaqachon qayta ishlab chiqilishi kerak. Taxallus haqida gapirishdan oldin, iRedMail-ning yangi versiyasida Postfix kartalaridan biriga xuddi taxallus kabi o'zgartirish kiritish kerak. Agar siz boshqa biror narsa yaratmasangiz, taxallus yaratish ishlamaydi. Kimga fayl kerak /etc/postfix/mysql/virtual_alias_maps.cf to'g'ri:

Vikonuemo:

# nano /etc/postfix/mysql/virtual_alias_maps.cf

Men tuzataman.

Nalashtuvannya aliasiv

Postfix-ni qayta ishga tushiring:

# xizmat postfix qayta ishga tushirildi

Agar biror narsa bo'lsa, hamma narsani qilish mumkin.

Shunday qilib, keling, pochtani qayta tekshirishga o'taylik. Sandiq qiling foydalanuvchi1 biz Roundcube orqali o'tamiz va qutiga foydalanuvchi2- SOGo orqali va ekrandan varaqni to'g'rilang foydalanuvchi1 ustida foydalanuvchi2 men qaytdim.

Roundcube bilan varaqni mustahkamlash

SOGo dan barg olish

SOGo ga varaqni mustahkamlash

Roundcube'dan barglarni olib tashlash

Hamma narsa muammosiz ishlaydi. Varaq yetkazib berish ikki-besh soniya davom etadi. Shunday qilib, barglarning o'zi mo''jizaviy tarzda Yandex serveriga va mail.ru ga etkaziladi (qayta yoziladi).

Endi biz taxallusni o'zgartirishimiz mumkin. Keling, quti yasaymiz foydalanuvchi3 va skrinshotdan zrobimo taxallus foydalanuvchi1 qutida foydalanuvchi2. Skrinshotdan tuzatilgan varaq foydalanuvchi3 qutida foydalanuvchi1. Qaysi varaq bilan ekranga kelishim mumkin foydalanuvchi2.

Yaratilish taxallus

Varaqni user3 skrinshotidan user1 skrinshotiga mustahkamlash

Ekrandagi varaqni olib tashlash foydalanuvchi2

Z robot aliasiv tezh mo'ylov harazd.

Mahalliy pochta mijozi orqali pochta serveri robotiga norozilik bildiriladi. Dumbada biz Mozilla Thunderbird-ni ko'rishimiz mumkin. Keling, yana ikkita koristuvachiv qilaylik: mijoz 1і mijoz 2. Bitta ekranni IMAP orqali, aks holda POP3 orqali qo'shish mumkin va soniyada bitta skrinshot ro'yxatini qo'shish mumkin.

IMAP ulanishi

POP3 orqali ulanish

Varaqni 1-mijozdan 2-mijozga majburlash.

1-mijoz tomonidan chiqarilgan

Otrimanya 2-mijozda

Men teskari tartibda.

2-mijoz tomonidan chiqarilgan

Otrimanya 1-mijozda

Hammasi ishlaydi.

Manzilga qanday borish mumkin: https://domen/netdata, Agar posterigati grafik tizimga aylanadi mumkin.

Visnovok

Ushbu o'rnatishda iRedMail pochta tizimini sozlash va sinovdan o'tkazish tugallandi. Natijada, biz kuchli SSL sertifikati, ikki xil veb-pochta mijozi, ikkita boshqaruv paneli, shuningdek, pochtada o'rnatilgan anti-spam va virusga qarshi to'liq bepul to'liq vaqtli pochta serverini olib tashladik. Ehtiyojlaringiz uchun veb-pochta mijozlarini Microsoft Outlook yoki Mozilla Thunderbird kabi mahalliy pochta mijozlari bilan almashtirishingiz mumkin. Agar siz pochta veb-mijozlarini o'rnatishni rejalashtirmasangiz, ularni o'rnatolmaysiz, shuning uchun biz serverni o'rnatmaymiz, lekin qaysi biri ko'proq kerak bo'lsa, birini o'rnatamiz. Menga, ayniqsa, SOGo yoqadi, chunki bu mobil qurilmalar uchun optimallashtirish interfeysi, smartfondan elektron pochta orqali qo‘lda ko‘rish yaxshidir. NetData va iRedAdmin bilan ham xuddi shunday qilish kerak, agar uni tuzatishni rejalashtirmasangiz, uni o'rnatmang. Tsya pochta tizimi resurslar uchun unchalik kuchli emas. Hammasi 1024 MB operativ xotira va bitta virtual protsessorga ega VPS serverida amalga oshiriladi. Berilgan pochta tizimiga ko'ra ovqatni yo'qotganingiz uchun izohlarda yozing.

P.S. Ushbu mahsulotni 1 GB operativ xotiraga ega (Ubuntu, Debian, CentOS) turli xil operatsion tizimlarda sinovdan o'tkazishda ClamAV uchun 1 GB etarli emasligi aniqlandi. Rahm pov'yazanu z ma'lumotlar bazasi uchun xotira antivirus posilavsya vikoristanny 1 GB bilan Mayzhe zavzhd. Debian va Ubuntu operatsion tizimlarida antivirus shunchaki server orqali o'tgan pochtani skanerdan o'tkazmadi, aks holda hamma narsa yaxshi ishladi. CentOS-da vaziyat biroz boshqacha edi. Clamd xizmati tizimni yana o'chirib qo'ydi va shu bilan birga serverning normal ishlashini o'chirib qo'ydi. Veb-interfeysga kirishga urinayotganda, NGINX vaqti-vaqti bilan 502 va 504 ta avfni ko'rdi. Pochta bir vaqtning o'zida tezhni buzdi. Agar siz 2 Gb gacha RAM qo'shsangiz, virusga qarshi robot va serverning har qanday kundalik muammolari hal qilinmadi. ClamAV pochta serverini skanerlash, pochta serveridan qanday o'tish, jurnallarga yozish haqida. Sinovdan o'tkazilganda, virus depozit qutisida bloklangan. Xotirani tiklash taxminan 1,2 - 1,7 GB edi.

Ushbu maqola pochta serveri yoki tashqi pochta xizmati uchun proksi sifatida NGINX Plus yoki NGINX Open Source konfiguratsiyasi sifatida ko'rsatiladi.

Kirish

NGINX IMAP, POP3 va SMTP protokollarini bittagacha yuqoridagi pochta serverlari yoki xost pochta hisoblariga proksi-server qilishlari mumkin va elektron pochta mijozlari uchun bitta so'nggi nuqtaga ega bo'lishi mumkin. Thay bir qator foyda keltirishi mumkin, masalan:

  • pochta serverlari sonini oson o'lchash
  • turli qoidalar asosida pochta serverini tanlash, masalan, mijozning IP manzili asosida eng yaqin serverni tanlash
  • yukni pochta serverlari o'rtasida taqsimlash

Old shartlar

    NGINX Plus (proksi e-pochta trafigini oshirish uchun kengaytirilgan elektron pochtani yoqish talab qilinadi) yoki NGINX Open Source elektron pochta proksi funksiyasi uchun --with-mail parametri va SSL/TLS qoʻllab-quvvatlashi uchun --with-mail_ssl_module parametridan foydalangan holda pochta modullarini tuzdi:

    $ ./configure --with-mail --with-mail_ssl_module --with-openssl=[DIR] /openssl-1.1.1

    IMAP, POP3 va/yoki SMTP pochta serverlari yoki tashqi pochta xizmati

SMTP/IMAP/POP3 pochta proksi-serverlarini sozlash

NGINX konfiguratsiya fayli:

    pochta (#...)

    pochta (server_nomi mail.example.com; #...)

    pochta (server_name mail.example.com ; auth_http localhost : 9000 /cgi-bin/nginxauth.cgi ; #... )

    Xo'sh, ayniqsa, agar siz proksi_pass_error_message direktivasini ko'rsatib, autentifikatsiya serveri kabi kechirimlar haqida xatoga yo'l qo'ysangiz. Bu pochta qutisi xotirasi tugashi bilan qulay bo'lishi mumkin:

    pochta (server_name mail.example.com ; auth_http localhost : 9000 /cgi-bin/nginxauth.cgi ; proxy_pass_error_message on ; #... )

    Server bloklari bilan SMTP, IMAP yoki POP3 serveri bo'ladimi, Nalashtuvati. Teri serveri uchun quyidagilarni belgilang:

    • the port raqami tinglash direktivasi maxsus protokolga mos kelishi uchun nima kerak
    • the protokol protokol direktivasi bilan (agar ko'rsatilmagan bo'lsa, tinglash direktivasida ko'rsatilgan portdan avtomatik ravishda aniqlanadi)
    • ruxsat etilgan autentifikatsiya usullari imap_auth , pop3_auth va smtp_auth direktivalari bilan:

    server (tinglash 25 ; protokol smtp ; smtp_auth login plain cram-md5 ; ) server (tinglash 110 ; protokol pop3 ; pop3_auth oddiy apop cram-md5 ; ) server (tinglash 143 ; protokol imap ; )

Pochta proksi uchun autentifikatsiyani sozlash

POP3/IMAP/SMTP mijozdan avval tashqi HTTP autentifikatsiya serveri yoki autentifikatsiya skripti orqali autentifikatsiya qilishni so'raydi. NGINX pochta serveri proksi-serveri uchun autentifikatsiya serveriga ega bo'lish majburiydir. Server HTTP protokoliga asoslangan NGINX autentifikatsiya protokoli kabi qayta tiklashda yordam uchun yaratilishi mumkin.

Agar autentifikatsiya muvaffaqiyatli bo'lsa, autentifikatsiya serveri yuqori oqim serverini tanlaydi va so'rovni qayta yo'naltiradi. Sizningcha, serverning o'zgarishi oldinga siljishlardan hosil bo'ladi:

HTTP/1.0 200 OK avtorizatsiya holati: OK autentifikatsiya serveri: # pochtani qayta ishlash uchun ishlatiladigan server nomi yoki yuqori oqim serverining IP manzili Auth port: # yuqori oqim serverining porti

Agar autentifikatsiya muvaffaqiyatsiz bo'lsa, autentifikatsiya serveri xato xabarini qaytaradi. Sizningcha, serverning o'zgarishi oldinga siljishlardan hosil bo'ladi:

HTTP/1.0 200 OK autentifikatsiya holati: # mijozga qaytariladigan xato xabari, masalan "Login yoki parol noto'g'ri" Autent-kutish: # ulanish yopilgunga qadar qolgan autentifikatsiya urinishlari soni

E'tibor bering, ikkala holatda ham javob o'z ichiga oladi HTTP/1.0 200 OK bu chalkash bo'lishi mumkin.

Autentifikatsiya serverining autentifikatsiya serveri haqida koʻproq maʼlumot olish uchun NGINX Reference hujjatlaridagi ngx_mail_auth_http_module.

Pochta proksi uchun SSL/TLS sozlanmoqda

SSL/TLS orqali POP3/SMTP/IMAP-dan foydalanib, mijoz va elektron pochta serveri o'rtasida ma'lumotlar qanday o'tishini ko'rishingiz mumkin.

Elektron pochta uchun SSL/TLSni yoqish uchun:

    Buyruqlar qatoriga nginx -V buyrug'ini kiritib, so'ngra chiqishda -mail_ssl_module qatorini qidirib, NGINX SSL/TLS qo'llab-quvvatlashi bilan sozlanganligiga ishonch hosil qiling:

    $nginx -V argumentlarni sozlash: ... with-mail_ssl_module

    Server sertifikatlari va shaxsiy kalitlarni o'tkazib yuborganingizga ishonch hosil qiling va ularni serverga qo'ying. Sertifikat ishonchli sertifikat organidan (CA) olinishi yoki OpenSSL kabi qo'shimcha SSL kutubxonasi tomonidan yaratilishi mumkin.

    ssl yoqilgan;

    hayratga tushadi;

    Qo'shimcha SSL sertifikatlari: ssl_certificate direktivasidan sertifikatlarga (PEM formatidagi) yo'lni belgilang va ssl_certificate_key direktivasida shaxsiy kalitga yo'lni belgilang:

    pochta (#... ssl_certificate /etc/ssl/certs/server.crt ; ssl_certificate_key /etc/ssl/certs/server.key ; )

    Siz ssl_process va ssl_ciphers direktivalari yordamida SSL/TLS-dan faqat kuchli versiyalar va shifrlarni tvit qilishingiz mumkin yoki o'zingiz yoqtirgan protokollar va shifrlarni o'rnatishingiz mumkin:

    pochta ( #... ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ; ssl_ciphers HIGH:!aNULL:!MD5 ; )

Pochta proksi uchun SSL/TLS optimallashtirish

Ushbu maslahatlar NGINX pochta proksi-serveringizni tezroq va xavfsizroq qilishga yordam beradi:

    Pochta konteksti bilan bir xil darajada o'rnatilgan worker_processes protsessorlari sonida paydo bo'ladigan ishchi jarayon raqamlarini tering:

    worker_processes auto; pochta (#...)

    Umumiy seans keshini yoqish va o'rnatilgan seans keshini avtomatik o'chirish; pochta (server_name mail.example.com ; auth_http localhost : 9000 /cgi-bin/nginxauth.cgi ; proxy_pass_error_message yoqilgan ; ssl yoqilgan ; ssl_certificate /etc/ssl/certs/server.crt; TL1sv.crt; TL1scatelcertif; TL1sv.crt ; TL1sv.sv.tl1sv.sv. 2 ;ssl_ciphers HIGH:!aNULL:!MD5 ; ; protokol pop3 ; pop3_auth oddiy apop cram-md5 ; ) server (tinglash 143 ; protokol imap ; ) )

    Menimcha, uchta elektron proksi-server mavjud: SMTP, POP3 va IMAP. SSL va STARTTLS bilan sozlangan barcha serverlar. SSL seans parametrlari keshlanadi.

    Whip proksi-server HTTP autentifikatsiya serveri – bu konfiguratsiya ushbu maqola doirasidan tashqarida. Serverga xabar qilingan barcha signallar mijozlarga xabar qilinadi.

© 2022 androidas.ru - Android haqida hamma narsa