рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╣реБрдЖ рд╣реИ рдХрд┐ рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдореЗрд▓ рдореЗрдВ рд╕реНрдкреИрдо рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдореЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдореЗрд▓ рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ рдХреМрди "рд╕реНрдкреВрдлрд┐рдВрдЧ" рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрддреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд┐рдП рдЧрдП рд╣реИрдВред рд╕реНрдкреИрдордЕрд╕рдореИрди рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЕрднреА рддрдХ) рдХреНрдпреЛрдВрдХрд┐ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд╕реНрдкреИрдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдкреИрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХрдо рд░реЗрдЯрд┐рдВрдЧ рд╣реИред
рдФрд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрдЯ рдХреЗ рддрд╣рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛрдЧрд╛:
- рдмрд┐рд▓рд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ: Abills ред рд▓реЗрдХрд┐рди рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХрд┐рд╕реА рднреА рдмрд┐рд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- Mysql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХреНрдЬрд╝рд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- рджрд░рдЕрд╕рд▓ DBMS MySQLред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ 2 рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдереЗред рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓рд┐рдВрдЧ 2 рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд┐рд╕реЗ рд╣рдо рдПрдХрддреНрд░ рдХрд░реЗрдВрдЧреЗ
рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреМрди рд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рд╕реНрдкреИрдорд┐рдВрдЧ" рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП
- рдореЗрд▓ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
- рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рд╕реЗ рд╣рдо рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ
- рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрд╛рдж рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рд▓реЙрдЧрд┐рди, рдЖрдИрдкреА, email_from, email_to, email_time, spam_score)
рддреЛ рдЕрдВрдХ рдкрд░:
- рд╣рдо рдПрдХреНрдЬрд╝рд┐рдо рд╡реИрд░рд┐рдПрдмрд▓ - $ рдкреНрд░реЗрд╖рдХ_рд╣реЛрд╕реНрдЯ_рдбреНрд░реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ
- рдЪреВрдВрдХрд┐ рдЕрдмрд┐рд▓реНрд╕ рдЯреЗрдмрд▓ рдореЗрдВ DV_calls рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдСрдирд▓рд╛рдЗрди рд╕рддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдкрддрд╛ рд▓рд┐рдпрд╛ рд╣реИ:
SELECT concat("login=",user_name) FROM dv_calls WHERE INET_NTOA(framed_ip_address)='${quote_mysql:$sender_host_address}';
рдкреИрд░рд╛рдореАрдЯрд░ = рдорд╛рди рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдЯрд░реНрди рдкрд░рд┐рдгрд╛рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
ред рдПрдХреНрдЬрд╝рд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
GET_LOGIN = SELECT concat("login=",user_name) FROM dv_calls WHERE INET_NTOA(framed_ip_address)='${quote_mysql:$sender_host_address}';
- рдпрд╣ рдПрдХ рдореИрдХреНрд░реЛ рд╣реИ рдЬреЛ рд╣рдо рд╕рдВрджреЗрд╢ рдХреЗ рдПрдВрдЯреА-рд╕реНрдкреИрдо рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЪрд▓рд╛рдПрдВрдЧреЗред
- рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рднреА рд╕реНрдкреИрдо-рд╡рд┐рд░реЛрдзреА рдЬрд╛рдБрдЪ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
ADD_STATISTICS = INSERT INTO statistics VALUES ('$acl_m1','${quote_mysql:$sender_host_address}',\
'${quote_mysql:$sender_address}','${quote_mysql:$acl_m4}',NOW(),$spam_score_int);
рдПрдЧреНрдЬрд┐рдо
рдЖрдЗрдП рдПрдХреНрдЬрд╝рд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ:
- 2 рдореИрдХреНрд░реЛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛:
ADD_STATISTICS = INSERT INTO statistics VALUES ('$acl_m1','${quote_mysql:$sender_host_address}',\
'${quote_mysql:$sender_address}','${quote_mysql:$acl_m4}',NOW(),$spam_score_int);
GET_LOGIN = SELECT concat("login=",user_name) FROM dv_calls WHERE INET_NTOA(framed_ip_address)='${quote_mysql:$sender_host_address}';
- Acl_smtp_rcpt рдореЗрдВ, рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЬреЛрдбрд╝реЗрдВ:
warn
hosts = LOCAL_NETS
set acl_m4 = $local_part@$domain
- рдпрд╣ рдХреБрдЫ рд╣реИрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░реЗрд╖рдХ рдХреЗ рдкрддреЗ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЗ рдкрддреЗ рджреЛрдиреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╣рдо рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ, рдЪрд░ $ рд╕реНрдерд╛рдиреАрдп_рдкрд╛рд░реНрдЯ рдФрд░ $ рдбреЛрдореЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдВрдЧреЗ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╡реИрд╕реЗ рднреА рдпрд╛ рдПрдХреНрдЬрд┐рдо рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред
- рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ acl_smtp_data рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
warn
hosts = LOCAL_NETS
set acl_m0 = ${lookup mysql{GET_LOGIN}{$value}{login=unknown}}
set acl_m1 = ${extract{login}{$acl_m0}{$value}{unknown}}
warn
hosts = LOCAL_NETS
spam = nobody:true
set acl_m2 = ${lookup mysql{servers=localhost; ADD_STATISTICS}{$value}{0}}
рдпрд╣рд╛рдВ рдХреЛрдб рдХреЗ 1 рднрд╛рдЧ рдореЗрдВ - рд╣рдо рдкреНрд░реЗрд╖рдХ рдкрддреЗ рдкрд░ рд▓реЙрдЧрд┐рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ acl_m1 рдЪрд░ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓реЙрдЧрд┐рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдЬреНрдЮрд╛рдд рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рд╕рд░реНрд╡рд░ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢ рд╣реЛрдВрдЧреЗ)ред
рджреВрд╕рд░реА рдЫрдорд╛рд╣реА рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдВрдЯреА-рд╕реНрдкреИрдо рдореЗрд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдкреНрд░рд╡реЗрд╢ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ = рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ; ADD_STATISTICS рдпрд╣рд╛рдБ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рди рдХрд┐ рдмрд┐рд▓рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХрд╛ Exim рд░рд┐рдХреЙрд░реНрдб рдЖрдкрдХреЛ DBMS рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдо рдПрдХреНрдЬрд╝рд┐рдо рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рдо рдХреЗ рджрд┐рди рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ 2 рд╕реНрдкреИрдо рдкреНрд░рдЬрдирди рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд┐рд▓реЗред рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ 24 рдХреЗ рдФрд╕рдд рд╕реНрдкреИрдо рдЕрдиреБрдкрд╛рдд (рд╣рдорд╛рд░реЗ рдПрдВрдЯреА-рд╕реНрдкреИрдо рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░) рдХреЗ рд╕рд╛рде рдирдХрд▓реА рдкрддреЛрдВ рд╕реЗ 181 рдкрддреНрд░ рднреЗрдЬреЗред рдФрд░ рдЬрдм рд╕реЗ рд╣рдорд╛рд░реЗ рдПрдВрдЯреАрд╕реНрдкреИрдо рдХреЛ рд░реЗрдЯрд┐рдВрдЧреНрд╕ (50 - рдЪреЗрддрд╛рд╡рдиреА) (70 - рдХрдЯрд┐рдВрдЧ) рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдирд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред
рдЕрдВрдд рдореЗрдВред рд╕рдВрдЧрдардирд╛рддреНрдордХ рдирд┐рд╖реНрдХрд░реНрд╖ рдмрдирд╛рдП рдЧрдП рдереЗ, рджреЛрд╖рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг (рдЬреБрд░реНрдорд╛рдирд╛, рдЕрд╡рд░реБрджреНрдз, рдирд░рд╕рдВрд╣рд╛рд░, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреБрдирд╢реНрдЪ
рд╣рдо
рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЦреАрдВрдЪрддреЗ рд╣реИрдВ
рдпрд╣ рдиреЛрдЯ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ - рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ greylisting рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ