Postfix 3.6.0 мэйл серверийн хувилбар

Жилийн турш хөгжүүлсний дараа Postfix мэйл серверийн шинэ тогтвортой салбар гарсан - 3.6.0. Үүний зэрэгцээ 3.2 оны эхээр гаргасан Postfix 2017 салбарыг дэмжихээ мэдэгдэв. Postfix бол өндөр хамгаалалт, найдвартай байдал, гүйцэтгэлийг нэгэн зэрэг хослуулсан ховор төслүүдийн нэг бөгөөд үүнийг сайтар бодож боловсруулсан архитектур, кодын дизайн, засварын аудитын нэлээд хатуу бодлогын ачаар олж авсан. Төслийн кодыг EPL 2.0 (Eclipse Public License) болон IPL 1.0 (IBM Public License) дагуу тараадаг.

Дөрөвдүгээр сард 600 мянга орчим мэйл серверийн автоматжуулсан судалгаагаар Postfix нь шуудангийн серверүүдийн 33.66% (жилийн өмнө 34.29%), Exim-ийн эзлэх хувь 59.14% (57.77%), Sendmail - 3.6% (3.83) дээр ашиглагддаг. %), MailEnable - 2.02% (2.12%), MDaemon - 0.60% (0.77%), Microsoft Exchange - 0.32% (0.47%).

Гол инноваци:

  • Postfix бүрэлдэхүүн хэсгүүдийн хоорондын харилцан үйлчлэлийн дотоод протоколд өөрчлөлт орсон тул шинэчлэлт хийхийн өмнө шуудангийн серверийг "postfix stop" командаар зогсоох шаардлагатай. Үгүй бол пикап, qmgr, шалгах, tlsproxy болон дэлгэцийн дараах процессуудтай ажиллахад алдаа гарч болзошгүй бөгөөд энэ нь Postfix-ийг дахин эхлүүлэх хүртэл имэйл илгээхэд саатахад хүргэж болзошгүй юм.
  • Нийгэмлэгийн зарим гишүүд арьс өнгөөр ​​ялгаварлан гадуурхах гэж ойлгодог "цагаан", "хар" гэсэн үгсийг арилгасан. "Цагаан жагсаалт" болон "хар жагсаалт"-ын оронд "зөвшөөрөгдсөн жагсаалт" болон "хэрэглэх жагсаалт"-ыг одоо ашиглах хэрэгтэй (жишээ нь, postscreen_allowlist_interfaces, postscreen_deylist_action болон postscreen_dnsbl_allowlist_threshold параметрүүд). Өөрчлөлтүүд нь баримт бичиг, дэлгэцийн дараах үйл явцын тохиргоо (суулгасан галт хана) болон бүртгэл дэх мэдээллийн тусгалд нөлөөлдөг. postfix/postscreen[pid]: ЗӨВШӨӨРӨГДСӨН ЖАГСААЛТ [хаяг]:портын postfix/postscreen[pid]: ALLOWLISTED [хаяг]:портын postfix/postscreen[pid]: DENYLISTED [хаяг]:порт

    Бүртгэлд өмнөх нөхцлүүдийг хадгалахын тулд "хүндэтгэсэн_бүртгүүлэх = үгүй" гэсэн параметрийг өгсөн бөгөөд үүнийг main.cf-д "compatibility_level = 3.6"-аас өмнө зааж өгөх ёстой. Дэлгэцийн дараах тохиргооны нэрсийн дэмжлэгийг буцааж нийцүүлэх үүднээс хадгалсан. Мөн "master.cf" тохиргооны файл одоогоор өөрчлөгдөөгүй байна.

  • "Compatibility_level = 3.6" горимд MD256-ийн оронд SHA5 хэш функцийг ашиглахаар анхдагч шилжүүлэгч хийсэн. Хэрэв та compatibility_level параметрт өмнөх хувилбарыг тохируулсан бол MD5-г үргэлжлүүлэн ашиглах боловч алгоритм нь тодорхой тодорхойлогдоогүй хэш ашиглахтай холбоотой тохиргооны хувьд бүртгэлд анхааруулга гарч ирнэ. Diffie-Hellman түлхүүр солилцооны протоколын экспортын хувилбарын дэмжлэгийг зогсоосон (tlsproxy_tls_dh512_param_file параметрийн утгыг одоо хэрэгсэхгүй болгосон).
  • master.cf-д буруу зохицуулагч програмыг зааж өгсөнтэй холбоотой асуудлыг хялбаршуулсан оношилгоо. Ийм алдааг илрүүлэхийн тулд postdrop зэрэг арын үйлчилгээ бүр харилцаа холбоо эхлэхээс өмнө протоколын нэрийг сурталчлах ба sendmail зэрэг үйлчлүүлэгчийн процесс бүр сурталчилсан протоколын нэр дэмжигдсэн хувилбартай таарч байгаа эсэхийг шалгадаг.
  • Илгээгчийн дугтуйны хаягийг (SMTP сессийн үед "MAIL FROM" командад өгсөн) илгээх шуудан болон шуудангийн дараах процесст хуваарилах уян хатан хяналт тавих "local_login_sender_maps" зураглалын шинэ төрлийг нэмсэн. Жишээлбэл, root болон postfix-ээс бусад локал хэрэглэгчдэд UID-ийн нэрээр холбохыг ашиглан sendmail-д зөвхөн нэвтрэх эрхээ зааж өгөхийг зөвшөөрөхийн тулд та дараах тохиргоог ашиглаж болно: /etc/postfix/main.cf: local_login_sender_maps = inline :{ { root = *} , { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # Нэвтрэх болон login@domain маягтыг хоёуланг нь зааж өгөхийг зөвшөөрнө. /(.+)/ $1 $1…@example.com
  • "smtpd_relay_before_recipient_restrictions=yes" тохиргоог анхдагчаар нэмж идэвхжүүлсэн бөгөөд SMTP сервер нь smtpd_relay_restrictions-ийг smtpd_recipient_restrictions-ээс өмнө шалгах ба эсрэгээр нь өмнөх шигээ шалгахгүй.
  • SASL арын хэсэг нь Postfix-д дэмжигддэггүй "ГАДААД" горимыг дэмждэг гэж мэдэгдсэн тохиолдолд төөрөгдүүлэхээс сэргийлэхийн тулд "!external, static:rest" гэсэн үндсэн тохиргоотой "smtpd_sasl_mechanism_list" параметрийг нэмсэн.
  • DNS-д нэрийг шийдвэрлэх үед олон урсгалыг дэмждэг шинэ API (threadsafe) анхдагчаар идэвхждэг. Хуучин API ашиглан бүтээхийн тулд та бүтээхдээ “makefiles CCARGS=”-DNO_RES_NCALLS…” гэж зааж өгөх хэрэгтэй.
  • "Enable_threaded_bounces = yes" горимыг нэмсэн бөгөөд хүргэлтийн асуудал, саатсан хүргэлт эсвэл хүргэлтийн баталгаажуулалтын талаарх мэдэгдлийг ижил хэлэлцүүлгийн ID-аар солих боломжтой (мэдэгдэлийг ижил хэлхээнд шуудангийн үйлчлүүлэгч бусад захидал харилцааны мессежийн хамт харуулах болно).
  • Анхдагч байдлаар /etc/services системийн мэдээллийн санг SMTP болон LMTP-ийн TCP портын дугаарыг тодорхойлоход ашиглахаа больсон. Үүний оронд портын дугаарыг мэдэгдэж буй_tcp_ports параметрээр тохируулдаг (өгөгдмөл lmtp=24, smtp=25, smtps=submissions=465, submission=587). Хэрэв мэдэгдэж байгаа_tcp_port-д зарим үйлчилгээ байхгүй бол /etc/services-ийг үргэлжлүүлэн ашигла.
  • Тохиромжтой байдлын түвшин ("нийцтэй_түвшин") "3.6" хүртэл нэмэгдсэн (өмнө нь параметрийг хоёр удаа өөрчилсөн, 3.6-аас бусад дэмжигдсэн утгууд нь 0 (анхдагч), 1 ба 2). Одооноос "нийцтэй_түвшин" нь нийцтэй байдлыг зөрчсөн өөрчлөлт оруулсан хувилбарын дугаар болж өөрчлөгдөх болно. Тохиромжтой байдлын түвшинг шалгахын тулд main.cf болон master.cf дээр “<=level” болон “<level” зэрэг тусдаа харьцуулах операторуудыг нэмсэн (стандарт харьцуулах операторууд тохирохгүй, учир нь 3.10-ыг 3.9-ээс бага гэж үзнэ).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх