Π ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Exim ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ (), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π° Π² Π²Π΅ΡΡΠΈΡΡ Ρ 4.87 ΠΏΠΎ 4.91 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ EXPERIMENTAL_EVENT.
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ACL Β«verify = recipientΒ», Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ². Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠΎΠ»ΠΈ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ MX Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ACL Β«verify = recipientΒ» ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ Π² local_part_suffix). Π£Π΄Π°Π»ΡΠ½Π½Π°Ρ Π°ΡΠ°ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π΅ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΠΊΡΡΡΡΠΌ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 7 Π΄Π½Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π±Π°ΠΉΡΡ Π² ΠΌΠΈΠ½ΡΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ). ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ Π°ΡΠ°ΠΊΠΈ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ deliver_message(), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π² ΡΠ°ΠΉΠ»Π΅ /src/deliver.c. Π§Π΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ° Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²ΠΎΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ execv() Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root. ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
deliver_localpart = expand_string(
string_sprintf(Β«${local_part:%s}Β», new->address));
deliver_domain = expand_string(
string_sprintf(Β«${domain:%s}Β», new->address));
Π€ΡΠ½ΠΊΡΠΈΡ expand_string() ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΎΠΆΠ½ΡΠ½Π½ΡΠΌ ΠΊΠΎΠΌΠ±Π°ΠΉΠ½ΠΎΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«${run{ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ}Β», ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ Π·Π°ΠΏΡΡΠΊΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ Π°ΡΠ°ΠΊΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ SMTP-ΡΠ΅Π°Π½ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΠΈΠ΄Π° βRCPT TO Β«username+${run{β¦}}@localhostΒ»β, Π³Π΄Π΅ localhost ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ ΠΎΡΡΠΎΠ² ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° local_domains, Π° username ΠΈΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π»Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ βRCPT TO Β«${run{β¦}}@relaydomain.comΒ»β, Π³Π΄Π΅ relaydomain.com ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ ΠΎΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ relay_to_domains. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² exim Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (deliver_drop_privilege = false), ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· Β«${run{β¦}}Β» ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π±ΡΠ»Π° Π² Π²ΡΡΠ΅Π΄ΡΠ΅ΠΌ Π² ΡΠ΅Π²ΡΠ°Π»Π΅ Π²ΡΠΏΡΡΠΊΠ΅ 4.92 Π±Π΅Π· Π°ΠΊΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ. ΠΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π»ΠΎ ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΊΡΡΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Exim, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² Ρ ΠΎΠ΄Π΅ ΡΠ±ΠΎΡ , Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ², Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π±ΡΠ»Π° Π²ΡΡΠ²Π»Π΅Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Qualys ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π°ΡΠ΄ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Exim.
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡ Π²Π΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ , ΠΏΠΎΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ . ΠΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡ Π²Π΅ΡΠΎΠΊ Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° 11 ΠΈΡΠ½Ρ. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ , , . ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ Π²Π΅ΡΡΠΈΡ 4.92, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. RHEL ΠΈ CentOS ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Exim Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΈΡ ΡΡΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
