Paglabas ng Postfix 3.6.0 mail server

Pagkatapos ng isang taon ng pag-unlad, isang bagong matatag na sangay ng Postfix mail server ang inilabas - 3.6.0. Kasabay nito, inihayag nito ang pagtatapos ng suporta para sa sangay ng Postfix 3.2, na inilabas noong unang bahagi ng 2017. Ang Postfix ay isa sa mga bihirang proyekto na pinagsasama ang mataas na seguridad, pagiging maaasahan at pagganap sa parehong oras, na nakamit salamat sa isang pinag-isipang mabuti na arkitektura at isang medyo mahigpit na patakaran para sa disenyo ng code at pag-audit ng patch. Ang code ng proyekto ay ipinamamahagi sa ilalim ng EPL 2.0 (Eclipse Public License) at IPL 1.0 (IBM Public License).

Ayon sa isang awtomatikong survey ng Abril ng halos 600 libong mail server, ang Postfix ay ginagamit sa 33.66% (isang taon na ang nakalipas 34.29%) ng mga mail server, ang bahagi ng Exim ay 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%).

Mga pangunahing inobasyon:

  • Dahil sa mga pagbabago sa mga panloob na protocol na ginagamit para sa pakikipag-ugnayan sa pagitan ng mga bahagi ng Postfix, ang pagpapahinto sa mail server gamit ang command na "postfix stop" ay kinakailangan bago mag-update. Kung hindi, maaaring may mga pagkabigo kapag nakikipag-ugnayan sa mga proseso ng pickup, qmgr, verify, tlsproxy, at postscreen, na maaaring magresulta sa pagkaantala sa pagpapadala ng mga email hanggang sa ma-restart ang Postfix.
  • Ang mga pagbanggit ng mga salitang "puti" at "itim," na itinuturing ng ilang miyembro ng komunidad bilang diskriminasyon sa lahi, ay nalinis. Sa halip na "whitelist" at "blacklist", "allowlist" at "denylist" ang dapat na ngayong gamitin (halimbawa, ang mga parameter na postscreen_allowlist_interfaces, postscreen_denylist_action at postscreen_dnsbl_allowlist_threshold). Ang mga pagbabago ay nakakaapekto sa dokumentasyon, mga setting ng proseso ng postscreen (built-in na firewall) at pagmuni-muni ng impormasyon sa mga log. postfix/postscreen[pid]: ALLOWLIST VETO [address]:port postfix/postscreen[pid]: ALLOWLISTED [address]:port postfix/postscreen[pid]: DENYLISTED [address]:port

    Upang mapanatili ang mga nakaraang termino sa mga log, ibinigay ang parameter na "respectful_logging = no", na dapat tukuyin sa main.cf bago ang "compatibility_level = 3.6". Ang suporta para sa mga lumang pangalan ng mga setting ng postscreen ay napanatili para sa pabalik na pagkakatugma. Gayundin, ang configuration file na "master.cf" ay nanatiling hindi nagbabago sa ngayon.

  • Sa mode na "compatibility_level = 3.6", ang default na switch ay ginawa upang gamitin ang SHA256 hash function sa halip na MD5. Kung nagtakda ka ng mas naunang bersyon sa compatibility_level na parameter, patuloy na gagamitin ang MD5, ngunit para sa mga setting na nauugnay sa paggamit ng mga hash kung saan hindi malinaw na tinukoy ang algorithm, may ipapakitang babala sa log. Ang suporta para sa bersyon ng pag-export ng Diffie-Hellman key exchange protocol ay hindi na ipinagpatuloy (ang halaga ng tlsproxy_tls_dh512_param_file na parameter ay binabalewala na ngayon).
  • Pinasimpleng diagnosis ng mga problemang nauugnay sa pagtukoy ng maling programa ng handler sa master.cf. Upang matukoy ang mga naturang error, ang bawat serbisyo ng backend, kabilang ang postdrop, ay ina-advertise na ngayon ang pangalan ng protocol bago simulan ang komunikasyon, at ang bawat proseso ng kliyente, kabilang ang sendmail, ay nagsusuri kung ang ina-advertise na pangalan ng protocol ay tumutugma sa sinusuportahang variant.
  • Nagdagdag ng bagong uri ng pagmamapa na "local_login_sender_maps" para sa kakayahang umangkop na kontrol sa pagtatalaga ng address ng envelope ng nagpadala (ibinigay sa command na "MAIL FROM" sa panahon ng SMTP session) sa mga proseso ng sendmail at postdrop. Halimbawa, upang payagan ang mga lokal na user, maliban sa root at postfix, na tukuyin lamang ang kanilang mga login sa sendmail, gamit ang UID binding sa pangalan, maaari mong gamitin ang mga sumusunod na setting: /etc/postfix/main.cf: local_login_sender_maps = inline :{ { root = *} , { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # Ang pagtukoy sa parehong mga login at ang login@domain form ay pinapayagan. /(.+)/ $1 $1…@example.com
  • Idinagdag at pinagana bilang default ang setting na "smtpd_relay_before_recipient_restrictions=yes", kung saan susuriin ng SMTP server ang smtpd_relay_restrictions bago ang smtpd_recipient_restrictions, at hindi ang kabaligtaran, gaya ng dati.
  • Idinagdag ang parameter na "smtpd_sasl_mechanism_list", na nagde-default sa "!external, static:rest" upang maiwasan ang mga nakalilitong error sa kaso kung saan inaangkin ng backend ng SASL na sinusuportahan ang "EXTERNAL" na mode, na hindi sinusuportahan sa Postfix.
  • Kapag niresolba ang mga pangalan sa DNS, isang bagong API na sumusuporta sa multithreading (threadsafe) ay pinagana bilang default. Upang bumuo gamit ang lumang API, dapat mong tukuyin ang "makefiles CCARGS="-DNO_RES_NCALLS..." kapag gumagawa.
  • Idinagdag ang mode na "enable_threaded_bounces = yes" upang palitan ang mga abiso tungkol sa mga problema sa paghahatid, naantala na paghahatid o pagkumpirma sa paghahatid na may parehong ID ng talakayan (ang abiso ay ipapakita ng mail client sa parehong thread, kasama ang iba pang mga mensahe ng sulat).
  • Bilang default, ang database ng /etc/services system ay hindi na ginagamit upang matukoy ang mga numero ng TCP port para sa SMTP at LMTP. Sa halip, kino-configure ang mga numero ng port sa pamamagitan ng parameter na known_tcp_ports (default lmtp=24, smtp=25, smtps=submissions=465, submission=587). Kung may nawawalang serbisyo mula sa known_tcp_ports, patuloy na gagamitin ang /etc/services.
  • Ang antas ng compatibility ("compatibility_level") ay itinaas sa "3.6" (ang parameter ay binago nang dalawang beses sa nakaraan, maliban sa 3.6 ang mga sinusuportahang halaga ay 0 (default), 1 at 2). Mula ngayon, ang "compatibility_level" ay magbabago sa numero ng bersyon kung saan ginawa ang mga pagbabago na lumalabag sa compatibility. Upang suriin ang mga antas ng compatibility, idinagdag ang mga hiwalay na operator ng paghahambing sa main.cf at master.cf, gaya ng β€œ<=level” at β€œ<level” (hindi angkop ang mga operator ng karaniwang paghahambing, dahil isasaalang-alang nila ang 3.10 na mas mababa sa 3.9).

Pinagmulan: opennet.ru

Magdagdag ng komento