рдбреЗрдмрд┐рдпрди + рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ + рдбрд╡рдХреЛрдЯ + рдорд▓реНрдЯреАрдбреЛрдореЗрди + рдПрд╕рдПрд╕рдПрд▓ + рдЖрдИрдкреАрд╡реА 6 + рдУрдкрдирд╡реАрдкреАрдПрди + рдорд▓реНрдЯреА-рдЗрдВрдЯрд░рдлреЗрд╕ + рд╕реНрдкреИрдордПрд╕рд╛рд╕рд┐рди-рд▓рд░реНрди + рдмрд╛рдЗрдВрдб

рдпрд╣ рдЖрд▓реЗрдЦ рдПрдХ рдЖрдзреБрдирд┐рдХ рдореЗрд▓ рд╕рд░реНрд╡рд░ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ + рдбрд╡рдХреЛрдЯред рдПрд╕рдкреАрдПрдлрд╝ + рдбреАрдХреЗрдЖрдИрдПрдо + рдЖрд░рдбреАрдПрдирдПрд╕ред IPv6 рдХреЗ рд╕рд╛рде.
рдЯреАрдПрд╕рдПрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде. рдПрдХрд╛рдзрд┐рдХ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде - рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рднрд╛рдЧред
рдПрдВрдЯреАрд╕реНрдкреИрдо рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЕрдиреНрдп рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдЙрдЪреНрдЪ рдПрдВрдЯреАрд╕реНрдкреИрдо рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред
рдПрдХрд╛рдзрд┐рдХ рднреМрддрд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
OpenVPN рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕рдХрд╛ рдХрдиреЗрдХреНрд╢рди IPv4 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ, рдФрд░ рдЬреЛ IPv6 рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрди рд╕рднреА рддрдХрдиреАрдХреЛрдВ рдХреЛ рд╕реАрдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдРрд╕рд╛ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред

рд▓реЗрдЦ рд╣рд░ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЙрд╕ рдЪреАрдЬрд╝ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ рдпрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдореЗрд░рд╛ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕рдкрдирд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдИрдПрдордПрдЪрдУ, рдпрд╣ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдмреНрд░рд╛рдВрдб рдХреА рдирдИ рдХрд╛рд░ рдХрд╛ рд╕рдкрдирд╛ рджреЗрдЦрдиреЗ рд╕реЗ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рд╣реИред

IPv6 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рджреЛ рдкреНрд░реЗрд░рдгрд╛рдПрдБ рд╣реИрдВред рдПрдХ рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЛ рдЬреАрд╡рд┐рдд рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдирдИ рддрдХрдиреАрдХреЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореИрдВ рд╕реЗрдВрд╕рд░рд╢рд┐рдк рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдЕрдкрдирд╛ рдорд╛рдореВрд▓реА рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдУрдкрдирд╡реАрдкреАрдПрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рд╕рд┐рд░реНрдл рдЖрдИрдкреАрд╡реА6 рдХреЛ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░рд╛рдирд╛ рд╣реИред
рдХрдИ рднреМрддрд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ "рдзреАрдорд╛ рд▓реЗрдХрд┐рди рдЕрд╕реАрдорд┐рдд" рдФрд░ рджреВрд╕рд░рд╛ "рддреЗрдЬрд╝ рд▓реЗрдХрд┐рди рдЯреИрд░рд┐рдл рдХреЗ рд╕рд╛рде" рд╣реИред

рдмрд╛рдЗрдВрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЖрдИрдПрд╕рдкреА рдПрдХ рдЕрд╕реНрдерд┐рд░ рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ Google рднреА рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ DNS рд╕рд░реНрд╡рд░ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ - рдореИрдВрдиреЗ 10 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдПрдХ рдорд╕реМрджрд╛ рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рджреЛ рдмрд╛рд░ рджреЗрдЦ рдЪреБрдХрд╛ рд╣реВрдБред рднрд▓реЗ рд╣реА рд▓реЗрдЦрдХ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЗрд╕ рдмрд╛рдд рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреЛ рднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореЗрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ "рдРрд╕рд╛ рдХрд░реЛ рдФрд░ рдлрд┐рд░, рдЬрдм рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реЛ рдЬрд╛рдП рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдорд╛рди рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЛред"

рдХрдВрдкрдиреА tech.ru рдХреЗ рдкрд╛рд╕ рдПрдХ рдХреЛрд▓реЛрдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╣реИред рдЗрд╕рдХреА рддреБрд▓рдирд╛ OVH, Hetzner, AWS рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tech.ru рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛ред

рдбреЗрдмрд┐рдпрди 9 рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

рд╕рд░реНрд╡рд░ рдореЗрдВ 2 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ `eno1` рдФрд░ `eno2` рд╣реИрдВред рдкрд╣рд▓рд╛ рдХреНрд░рдорд╢рдГ рдЕрд╕реАрдорд┐рдд рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рддреЗрдЬрд╝ рд╣реИред

`eno3` рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ 0 рд╕реНрдерд┐рд░ IP рдкрддреЗ, XX.XX.XX.X1 рдФрд░ XX.XX.XX.X2 рдФрд░ XX.XX.XX.X1 рдФрд░ `eno5` рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ XX.XX.XX.X2 рд╣реИрдВ .

рдЙрдкрд▓рдмреНрдз XXXX:XXXX:XXXX:XXXX::/64 IPv6 рдкрддреЛрдВ рдХрд╛ рдПрдХ рдкреВрд▓ рдЬреЛ `eno1` рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрд╕рдореЗрдВ рд╕реЗ XXXX:XXXX:XXXX:XXXX:1:2::/96 рдореЗрд░реЗ рдЕрдиреБрд░реЛрдз рдкрд░ `eno2` рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛ред

3 рдбреЛрдореЗрди рд╣реИрдВ `domain1.com`, `domain2.com`, `domain3.com`. `domain1.com` рдФрд░ `domain3.com` рдХреЗ рд▓рд┐рдП рдПрдХ SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Google рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЕрдкрдирд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]` (рдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕реАрдзреЗ рдЬреАрдореЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдореЗрд▓ рднреЗрдЬрдирд╛)ред
рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдЕрд╡рд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП'[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]`, рдЙрд╕ рдИрдореЗрд▓ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдЬреАрдореЗрд▓ рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдФрд░ `рдХреА рдУрд░ рд╕реЗ рдХреБрдЫ рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рджреБрд░реНрд▓рдн рд╣реИ[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]`рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдЕрд╡рд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП'[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]`, рдЬрд┐рд╕реЗ рдЗрд╡рд╛рдиреЛрд╡ рдЕрдкрдиреЗ iPhone рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рднреЗрдЬреЗ рдЧрдП рдИрдореЗрд▓ рдХреЛ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдПрдВрдЯреАрд╕реНрдкреИрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдХрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкрддреНрд░ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП IPv6 рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ SpamAssassin рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдИрдореЗрд▓ рдХрднреА рдирд╣реАрдВ рд╣рдЯрд╛рдПрдЧрд╛ред рдФрд░ рдпрд╣ рдпрд╛ рддреЛ рдмрд╛рдЙрдВрд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рд╕реНрдХрд┐рдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ IMAP "рд╕реНрдкреИрдо" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
SpamAssassin рдСрдЯреЛ-рд▓рд░реНрдирд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдореИрдВ рдХрд┐рд╕реА рдкрддреНрд░ рдХреЛ рд╕реНрдкреИрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЗрд╕рд╕реЗ рд╕реАрдЦреЗрдЧрд╛; рдпрджрд┐ рдореИрдВ рд╕реНрдкреИрдо рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдХреЛрдИ рдкрддреНрд░ рд╣рдЯрд╛рддрд╛ рд╣реВрдВ, рддреЛ рд╡рд╣ рдЗрд╕рд╕реЗ рд╕реАрдЦ рд▓реЗрдЧрд╛ред SpamAssassin рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрддреНрд░ рд╕реНрдкреИрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдбреЛрдореЗрди рдХреА рдУрд░ рд╕реЗ рдореЗрд▓ рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдУрдкрдирд╡реАрдкреАрдПрди рд╕реЗрд╡рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЖрдИрдкреАрд╡реА6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЖрдИрдкреАрд╡реА6 рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ IPv6 рд╕рд╣рд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдлрд┐рд░ рдЖрдкрдХреЛ OpenVPN рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ IPv4 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рд╕реНрдерд┐рд░-рд╡рд╛рд╕реНрддрд╡рд┐рдХ IPv6 рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА IPv6 рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд┐рд╕реА рднреА IPv6 рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред
рдлрд┐рд░ рдЖрдкрдХреЛ рдкрддреНрд░ + рдПрд╕рдкреАрдПрдлрд╝ + рдбреАрдХреЗрдЖрдИрдПрдо + рдЖрд░рдбреАрдПрдирдПрд╕ рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдлрд┐рд░ рдЖрдкрдХреЛ Dovecot рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдорд▓реНрдЯреАрдбреЛрдореЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдлрд┐рд░ рдЖрдкрдХреЛ SpamAssassin рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЕрдВрдд рдореЗрдВ, рдмрд╛рдЗрдВрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

============= рдорд▓реНрдЯреА-рдЗрдВрдЯрд░рдлрд╝реЗрд╕ =============

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ "/etc/network/interfaces" рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eno1
iface eno1 inet static
        address XX.XX.XX.X0/24
        gateway XX.XX.XX.1
        dns-nameservers 127.0.0.1 213.248.1.6
        post-up ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t
        post-up ip route add default via XX.XX.XX.1 table eno1t
        post-up ip rule add table eno1t from XX.XX.XX.X0
        post-up ip rule add table eno1t to XX.XX.XX.X0

auto eno1:1
iface eno1:1 inet static
address XX.XX.XX.X1
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X1
        post-up ip rule add table eno1t to XX.XX.XX.X1
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:1:1:2/64 dev $IFACE

# The secondary network interface
allow-hotplug eno2
iface eno2 inet static
        address XX.XX.XX.X5
        netmask 255.255.255.0
        post-up   ip route add XX.XX.XX.0/24 dev eno2 src XX.XX.XX.X5 table eno2t
        post-up   ip route add default via XX.XX.XX.1 table eno2t
        post-up   ip rule add table eno2t from XX.XX.XX.X5
        post-up   ip rule add table eno2t to XX.XX.XX.X5
        post-up   ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t
        post-down ip route del 10.8.0.0/24 dev tun0 src XX.XX.XX.X5 table eno2t

iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        up   ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:1/64 dev $IFACE
        down ip -6 addr del XXXX:XXXX:XXXX:XXXX:1:2:1:2/64 dev $IFACE

# OpenVPN network
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ tech.ru рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдереЛрдбрд╝реЗ рд╕реЗ рд╕рдордиреНрд╡рдп рдХреЗ рд╕рд╛рде) рдФрд░ рдпрд╣ рддреБрд░рдВрдд рд╡реИрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реЗрдЯреНрдЬрд╝рдирд░, рдУрд╡реАрдПрдЪ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╣рд╛рдВ рдЕрд▓рдЧ рд╣реИред рдЕрдзрд┐рдХ рдореБрд╢реНрдХрд┐рд▓ред

eno1 рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб #1 (рдзреАрдорд╛ рд▓реЗрдХрд┐рди рдЕрд╕реАрдорд┐рдд) рдХрд╛ рдирд╛рдо рд╣реИред
eno2 рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб #2 рдХрд╛ рдирд╛рдо рд╣реИ (рддреЗрдЬрд╝, рд▓реЗрдХрд┐рди рдЯреИрд░рд┐рдл рдХреЗ рд╕рд╛рде)ред
tun0 OpenVPN рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХрд╛ рдирд╛рдо рд╣реИред
XX.XX.XX.X0 - eno4 рдкрд░ IPv1 #1ред
XX.XX.XX.X1 - eno4 рдкрд░ IPv2 #1ред
XX.XX.XX.X2 - eno4 рдкрд░ IPv3 #1ред
XX.XX.XX.X5 - eno4 рдкрд░ IPv1 #2ред
XX.XX.XX.1 - IPv4 рдЧреЗрдЯрд╡реЗред
XXXX:XXXX:XXXX:XXXX::/64 - рд╕рдВрдкреВрд░реНрдг рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП IPv6.
XXXX:XXXX:XXXX:XXXX:1:2::/96 - eno6 рдХреЗ рд▓рд┐рдП IPv2, рдмрд╛рд╣рд░ рд╕реЗ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ eno1 рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
XXXX:XXXX:XXXX:XXXX::1 - IPv6 рдЧреЗрдЯрд╡реЗ (рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ/рдЪрд╛рд╣рд┐рдПред IPv6 рд╕реНрд╡рд┐рдЪ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ)ред
рдбреАрдПрдирдПрд╕-рдиреЗрдорд╕рд░реНрд╡рд░ - 127.0.0.1 рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдЗрдВрдб рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ) рдФрд░ 213.248.1.6 (рдпрд╣ tech.ru рд╕реЗ рд╣реИ)ред

"рдЯреЗрдмрд▓ eno1t" рдФрд░ "рдЯреЗрдмрд▓ eno2t" - рдЗрди рдорд╛рд░реНрдЧ-рдирд┐рдпрдореЛрдВ рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ eno1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ -> рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛, рдФрд░ eno2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ -> рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдХрдиреЗрдХреНрд╢рди рднреА eno1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВрдЧреЗред

ip route add default via XX.XX.XX.1 table eno1t

рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рднреА рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЬреЛ "рддрд╛рд▓рд┐рдХрд╛ eno1t" -> рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рд╕реА рднреА рдирд┐рдпрдо рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ, eno1 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред

ip route add XX.XX.XX.0/24 dev eno1 src XX.XX.XX.X0 table eno1t

рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ eno1 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

ip rule add table eno1t from XX.XX.XX.X0
ip rule add table eno1t to XX.XX.XX.X0

рдЗрд╕ рдЖрджреЗрд╢ рд╕реЗ рд╣рдо рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

auto eno1:2
iface eno1:2 inet static
address XX.XX.XX.X2
netmask 255.255.255.0
        post-up ip rule add table eno1t from XX.XX.XX.X2
        post-up ip rule add table eno1t to XX.XX.XX.X2

рдпрд╣ рдмреНрд▓реЙрдХ eno4 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ IPv1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

ip route add 10.8.0.0/24 dev tun0 src XX.XX.XX.X1 table eno1t

рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣рдо XX.XX.XX.X4 рдХреЛ рдЫреЛрдбрд╝рдХрд░ OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕реНрдерд╛рдиреАрдп IPv0 рддрдХ рдХрд╛ рд░реВрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рдХрдорд╛рдВрдб рд╕рднреА IPv4 рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХреНрдпреЛрдВ рд╣реИред

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
        gateway XXXX:XXXX:XXXX:XXXX::1

рдпрд╣реАрдВ рдкрд░ рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдЗрд╕реЗ "рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ" рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рджреЛрдмрд╛рд░рд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

":1:1::" рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдХреНрдпреЛрдВ рд╣реИ? рддрд╛рдХрд┐ OpenVPN рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗред рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред

рдЧреЗрдЯрд╡реЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ - рдпрд╣ рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЙрд╕ рд╕реНрд╡рд┐рдЪ рдХрд╛ IPv6 рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдП рдЬрд┐рд╕рд╕реЗ рд╕рд░реНрд╡рд░ рдЬреБрдбрд╝рд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБ рддреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ IPv6 рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА tech.ru рд╕рдорд╕реНрдпрд╛ рд╣реИред

ip -6 addr add XXXX:XXXX:XXXX:XXXX:1:1:1:1/64 dev $IFACE

рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ IPv6 рдкрддрд╛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд╕реМ рдкрддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реМ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВред

iface eno1 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:1::/64
...
iface eno2 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:2::/96
...
iface tun0 inet6 static
        address XXXX:XXXX:XXXX:XXXX:1:3::/80

рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкрддреЗ рдФрд░ рд╕рдмрдиреЗрдЯ рдиреЛрдЯ рдХрд░ рд▓рд┐рдПред
eno1 - рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "/64"- рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдкрддреЛрдВ рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдкреВрд▓ рд╣реИред
tun0 - рд╕рдмрдиреЗрдЯ eno1 рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП IPv6 рдЧреЗрдЯрд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
eno2 - рд╕рдмрдиреЗрдЯ tun0 рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдиреАрдп IPv6 рдкрддреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдПрдВрдЧреЗред
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 16 рдХрд╛ рд╕рдмрдиреЗрдЯ рдЪрд░рдг рдЪреБрдирд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк "1" рдЪрд░рдг рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, 64+16 = 80, рдФрд░ 80+16 = 96ред

рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП:
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYYY рдРрд╕реЗ рдкрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ eno1 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдЗрдЯреЛрдВ рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYYY рдРрд╕реЗ рдкрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ eno2 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдЗрдЯреЛрдВ рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
XXXX:XXXX:XXXX:XXXX:1:3:YYYY:YYYY рдРрд╕реЗ рдкрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ OpenVPN рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ OpenVPN рд╕реЗрд╡рд╛ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ IPv4 рдкрд░рд┐рд╡рд░реНрддрди рдЙрдард╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ - рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХрдорд╛рдВрдб рд╕рд░реНрд╡рд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрдЧрд╛):

/etc/init.d/networking restart

рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ "/etc/iproute2/rt_tables":

100 eno1t
101 eno2t

рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдЖрдк "/etc/network/interfaces" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╕реНрдЯрдо рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ 65535 рд╕реЗ рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

IPv6 рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рддреАрди рдХрдорд╛рдВрдб рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

ip -6 addr ...
ip -6 route ...
ip -6 neigh ...

рд╕реЗрдЯрд┐рдВрдЧ "/etc/sysctl.conf"

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward = 1

# Do not accept ICMP redirects (prevent MITM attacks)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Do not send ICMP redirects (we are not a router)
net.ipv4.conf.all.send_redirects = 0

# For receiving ARP replies
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.arp_filter = 0

# For sending ARP
net.ipv4.conf.all.arp_announce = 0
net.ipv4.conf.default.arp_announce = 0

# Enable IPv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

# IPv6 configuration
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.accept_ra = 0

# For OpenVPN
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

# For nginx on boot
net.ipv6.ip_nonlocal_bind = 1

рдпреЗ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреА "sysctl" рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред рдореБрдЭреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдмрддрд╛рдиреЗ рджреАрдЬрд┐рдП.

net.ipv4.ip_forward = 1

рдЗрд╕рдХреЗ рдмрд┐рдирд╛ OpenVPN рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛.

net.ipv6.ip_nonlocal_bind = 1

рдЬреЛ рдХреЛрдИ рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж IPv6 (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП nginx) рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛, рдЙрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рдХрд┐ рдпрд╣ рдкрддрд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ.

рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИ.

net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1

рдЗрди IPv6 рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛, OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╛ рддреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рд▓рд┐рдП рд╣реИрдВред
рд▓реЗрдХрд┐рди рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ "рдЬреИрд╕рд╛ рд╣реИ" рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдБред

рд╕рд░реНрд╡рд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

sysctl -p

"рддрд╛рд▓рд┐рдХрд╛" рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг: habr.com/post/108690

============= рдУрдкрдирд╡реАрдкреАрдПрди =============

OpenVPN IPv4 iptables рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╡реАрдкреАрдПрди рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдЖрдИрдкреАрдЯреЗрдмрд▓реНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
##iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

YY.YY.YY.YY рдореЗрд░реА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХрд╛ рд╕реНрдерд┐рд░ IPv4 рдкрддрд╛ рд╣реИред
10.8.0.0/24 - рдЖрдИрдкреАрд╡реА4 рдУрдкрдирд╡реАрдкреАрдПрди рдиреЗрдЯрд╡рд░реНрдХред рдУрдкрдирд╡реАрдкреАрдПрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреАрд╡реА4 рдкрддреЗред
рдирд┐рдпрдореЛрдВ рдХреА рдПрдХрд░реВрдкрддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ.

iptables -A INPUT -p udp -s YY.YY.YY.YY --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno1 -j ACCEPT
...
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j DROP
iptables -A FORWARD -p udp --dport 1194 -j DROP

рдпрд╣ рдПрдХ рд╕реАрдорд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдореИрдВ рд╣реА рдЕрдкрдиреЗ рд╕реНрдерд┐рд░ рдЖрдИрдкреА рд╕реЗ рдУрдкрдирд╡реАрдкреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВред

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
  -- ╨╕╨╗╨╕ --
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE

OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдмреАрдЪ IPv4 рдкреИрдХреЗрдЯ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрдорд╛рдВрдб рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рджреЛрдиреЛрдВ рдЖрджреЗрд╢ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо CPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд░реАрдмреВрдЯ рдХреЗ рдмрд╛рдж рд╕рднреА iptables рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЙрдард╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред

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

рдРрд╕реЗ рдирд╛рдо рдпреВрдВ рд╣реА рдирд╣реАрдВ рдЪреБрдиреЗ рдЧрдП. рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ "iptables-persistent" рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

apt-get install iptables-persistent

рдореБрдЦреНрдп OpenVPN рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛:

apt-get install openvpn easy-rsa

рдЖрдЗрдП рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ (рдЕрдкрдиреЗ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ):

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
ln -s openssl-1.0.0.cnf openssl.cnf

рдЖрдЗрдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯрд┐рдВрдЧ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

mcedit vars

...
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Krasnodar"
export KEY_CITY="Dinskaya"
export KEY_ORG="Own"
export KEY_EMAIL="[email protected]"
export KEY_OU="VPN"

# X509 Subject Field
export KEY_NAME="server"
...

рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдПрдВ:

cd ~/openvpn-ca
source vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/ta.key

рдЖрдЗрдП рдЕрдВрддрд┐рдо "client-name.opvn" рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ:

mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
mcedit ~/client-configs/base.conf

# Client mode
client

# Interface tunnel type
dev tun

# TCP protocol
proto tcp-client

# Address/Port of VPN server
remote XX.XX.XX.X0 1194

# Don't bind to local port/address
nobind

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Remote peer must have a signed certificate
remote-cert-tls server
ns-cert-type server

# Enable compression
comp-lzo

# Custom
ns-cert-type server
tls-auth ta.key 1
cipher DES-EDE3-CBC

рдЖрдЗрдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдПрдХрд▓ рдУрдкреАрд╡реАрдПрди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд░реНрдЬ рдХрд░ рджреЗрдЧреАред

mcedit ~/client-configs/make_config.sh
chmod 700 ~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} 
    <(echo -e '<ca>') 
    ${KEY_DIR}/ca.crt 
    <(echo -e '</ca>n<cert>') 
    ${KEY_DIR}/.crt 
    <(echo -e '</cert>n<key>') 
    ${KEY_DIR}/.key 
    <(echo -e '</key>n<tls-auth>') 
    ${KEY_DIR}/ta.key 
    <(echo -e '</tls-auth>') 
    > ${OUTPUT_DIR}/.ovpn

рдкрд╣рд▓рд╛ OpenVPN рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдирд╛:

cd ~/openvpn-ca
source vars
./build-key client-name
cd ~/client-configs
./make_config.sh client-name

рдлрд╝рд╛рдЗрд▓ "~/client-configs/files/client-name.ovpn" рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред

iOS рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреНрд░рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
"tls-auth" рдЯреИрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдФрд░ "tls-auth" рдЯреИрдЧ рдХреЗ рдареАрдХ рдкрд╣рд▓реЗ "key-direction 1" рднреА рд▓рдЧрд╛рдПрдВред

рдЖрдЗрдП OpenVPN рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

cd ~/openvpn-ca/keys
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | tee /etc/openvpn/server.conf
mcedit /etc/openvpn/server.conf

# Listen port
port 1194

# Protocol
proto tcp-server

# IP tunnel
dev tun0
tun-ipv6
push tun-ipv6

# Master certificate
ca ca.crt

# Server certificate
cert server.crt

# Server private key
key server.key

# Diffie-Hellman parameters
dh dh2048.pem

# Allow clients to communicate with each other
client-to-client

# Client config dir
client-config-dir /etc/openvpn/ccd

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

# Server mode and client subnets
server 10.8.0.0 255.255.255.0
server-ipv6 XXXX:XXXX:XXXX:XXXX:1:3::/80
topology subnet

# IPv6 routes
push "route-ipv6 XXXX:XXXX:XXXX:XXXX::/64"
push "route-ipv6 2000::/3"

# DNS (for Windows)
# These are OpenDNS
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# Configure all clients to redirect their default network gateway through the VPN
push "redirect-gateway def1 bypass-dhcp"
push "redirect-gateway ipv6" #For iOS

# Don't need to re-read keys and re-create tun at restart
persist-key
persist-tun

# Ping every 10s. Timeout of 120s.
keepalive 10 120

# Enable compression
comp-lzo

# User and group
user vpn
group vpn

# Log a short status
status openvpn-status.log

# Logging verbosity
##verb 4

# Custom config
tls-auth ta.key 0
cipher DES-EDE3-CBC

рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рдкрддрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ):

# Client config dir
client-config-dir /etc/openvpn/ccd

рд╕рдмрд╕реЗ рдХрдард┐рди рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг.

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, OpenVPN рдЕрднреА рддрдХ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП IPv6 рдЧреЗрдЯрд╡реЗ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП "рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ" рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

# Run client-specific script on connection and disconnection
script-security 2
client-connect "/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh"
client-disconnect "/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh"

рдлрд╝рд╛рдЗрд▓ "/etc/openvpn/server-clientconnect.sh":

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
        echo $ipv6
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Create proxy rule
/sbin/ip -6 neigh add proxy $ipv6 dev eno1

рдлрд╝рд╛рдЗрд▓ "/etc/openvpn/server-clientdisconnect.sh":

#!/bin/sh

# Check client variables
if [ -z "$ifconfig_pool_remote_ip" ] || [ -z "$common_name" ]; then
        echo "Missing environment variable."
        exit 1
fi

# Load server variables
. /etc/openvpn/variables

ipv6=""

# Find out if there is a specific config with fixed IPv6 for this client
if [ -f "/etc/openvpn/ccd/$common_name" ]; then
        # Get fixed IPv6 from client config file
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ t]+([0-9a-fA-F:]+).*$/1/p' "/etc/openvpn/ccd/$common_name")
fi

# Get IPv6 from IPv4
if [ -z "$ipv6" ]; then
        ipp=$(echo "$ifconfig_pool_remote_ip" | cut -d. -f4)
        if ! [ "$ipp" -ge 2 -a "$ipp" -le 254 ] 2>/dev/null; then
                echo "Invalid IPv4 part."
                exit 1
        fi
        hexipp=$(printf '%x' $ipp)
        ipv6="$prefix$hexipp"
fi

# Delete proxy rule
/sbin/ip -6 neigh del proxy $ipv6 dev eno1

рджреЛрдиреЛрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ "/etc/openvpn/variables" рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ:

# Subnet
prefix=XXXX:XXXX:XXXX:XXXX:2:
# netmask
prefixlen=112

рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд▓рд┐рдЦрд╛ рд╣реИред

рдЕрдм рдиреЗрдЯрдорд╛рд╕реНрдХ = 112 рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ (рдпрд╣ рд╡рд╣реАрдВ 96 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдФрд░ рдЙрдкрд╕рд░реНрдЧ рдЕрдЬреАрдм рд╣реИ, рдпрд╣ tun0 рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред
рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред

cipher DES-EDE3-CBC

рдпрд╣ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ - рдореИрдВрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдЪреБрдирд╛ рд╣реИред

OpenVPN IPv4 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВред

OpenVPN IPv6 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВред

============= рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ =============

рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛:

apt-get install postfix

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп, "рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рд╛рдЗрдЯ" рдЪреБрдиреЗрдВред

рдореЗрд░рд╛ "/etc/postfix/main.cf" рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

smtp_tls_security_level = may
smtp_tls_ciphers = export
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_loglevel = 1

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = domain1.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = domain1.com
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4

internal_mail_filter_classes = bounce

# Storage type
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        permit_mynetworks,
        #reject_invalid_hostname,
        #reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_rbl_client sbl.spamhaus.org,
        check_policy_service unix:private/policyd-spf

smtpd_helo_restrictions =
        #reject_invalid_helo_hostname,
        #reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname

smtpd_client_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_helo_hostname,
        permit

# SPF
policyd-spf_time_limit = 3600

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

рдЖрдЗрдП рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВред

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ "рдЧрд▓рдд рд╕реВрдЪрдирд╛ рдФрд░ рдЧрд▓рдд рдереАрд╕рд┐рд╕" рд╣реИрдВредрдЕрдкрдиреЗ рдХрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ 8 рд╕рд╛рд▓ рдмрд╛рдж рд╣реА рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рд▓рдЧрд╛ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд▓реВрдВрдЧрд╛ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП ("рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?" рдФрд░ "рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?" рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдП рдмрд┐рдирд╛)ред

рдЖрдзреБрдирд┐рдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рдЖрдзрд╛рд░ рдПрдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА (рд╡рд░реНрдгреЛрдВ рдХреА рджреЛ рдмрд╣реБрдд рд▓рдВрдмреА рд╢реНрд░реГрдВрдЦрд▓рд╛) рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИред

рдПрдХ "рдХреБрдВрдЬреА" рдирд┐рдЬреА рд╣реИ, рджреВрд╕рд░реА рдХреБрдВрдЬреА "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ" рд╣реИред рд╣рдо рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЧреБрдкреНрдд рд░рдЦрддреЗ рд╣реИрдВред рд╣рдо рд╕рднреА рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкрд╛рда рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реА рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХреЗред
рдЦрд╝реИрд░, рдпрд╣реА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рд╕рдВрдкреВрд░реНрдг рдЖрдзрд╛рд░ рд╣реИред

рдЪрд░рдг #1 - https рд╕рд╛рдЗрдЯреЗрдВред
рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реАрдЦрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ https рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рджреЗрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ http-рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
http-рдЕрдиреБрд░реЛрдз рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рд╡реЗ рд╣реА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реИ, рдпрд╛рдиреА рдХреЗрд╡рд▓ рд╡рд╣ рд╕рд░реНрд╡рд░ рдЬрд┐рд╕рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Http-рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ URI рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рджреЗрд╢ рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдЗрдЯ рддрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ https рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдЪрд░рдг #2 - рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдПрдХ рдЙрддреНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдбрд╝рдХ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ https рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд┐рдЬреА-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдФрд░ рд╕рд╛рдЗрдЯ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рдпрд╣ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рднреЗрдЬрддрд╛ рд╣реИред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ рдФрд░ http-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддреЗ рд╕рдордп рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред
рдЕрдм http-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдирд┐рдЬреА рдХреБрдВрдЬреА (рдЕрд░реНрдерд╛рдд рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрд╡рдпрдВ) рдХреЗ рд╕реНрд╡рд╛рдореА рджреНрд╡рд╛рд░рд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЪрд░рдг рд╕рдВрдЦреНрдпрд╛ 3 - рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 2 рдореЗрдВ рдПрдХ рднреЗрджреНрдпрддрд╛ рд╣реИ - рд╢реБрднрдЪрд┐рдВрддрдХреЛрдВ рдХреЛ http-рдЕрдиреБрд░реЛрдз рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдмрджрд▓рдиреЗ рддрдХ рдордзреНрдпрд╕реНрде рднреЗрдЬреЗ рдЧрдП рдФрд░ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦреЗрдЧрд╛ред
рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ - рдмрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬреЗрдВред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ рдЬреИрд╕реЗ "рдЖрдкрдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдЗрд╕ рддрд░рд╣ рд╣реИ" рдФрд░ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдЙрд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ - рдпрджрд┐ рд╕рдВрджреЗрд╢ "рдЖрдкрдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдЗрд╕ рддрд░рд╣ рд╣реИ" рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ - рддреЛ рдпрд╣ 100% рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдпрд╣ рдХрд┐рддрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ?
рдРрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкрд┐рдВрдЧ*2 рдХреА рдЧрддрд┐ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 20ms.
рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрдХреНрд╖ рдХреА рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╛ рдХреБрдЫ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдвреВрдВрдвреЗрдВред
рдПрдХ рдЖрдзреБрдирд┐рдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рджрд╢рдХреЛрдВ рд▓рдЧ рдЬрд╛рдПрдВрдЧреЗред

рдЪрд░рдг #4 - рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдкреВрд░реА рдХрд╣рд╛рдиреА рдореЗрдВ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдкрд░ рдмреИрдардиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВред
рддрдм рд╣рдорд▓рд╛рд╡рд░ рд╕рд╛рд░рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ "рд╕рдВрдкрд╛рджрд┐рдд" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрд╕реЗ рднреЗрдЬрдиреЗ рдХрд╛ рдкрддрд╛ рдмрджрд▓реЗрдВ рдпрд╛ рдСрдирд▓рд╛рдЗрди рдмреИрдВрдХрд┐рдВрдЧ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрдкреА рдХрд░реЗрдВ рдпрд╛ "рдЖрдкрддреНрддрд┐рдЬрдирдХ" рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВред
рдРрд╕реЗ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ https рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЗрдХрд░ рдЖрдПред
рдкреНрд░рддреНрдпреЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓рдЧрднрдЧ 200 рдРрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рдЬрд╛рдирддрд╛" рд╣реИред рдпрд╣ рд╣рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдЖрддрд╛ рд╣реИред
"рдЬреНрдЮрд╛рди" рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реЗ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд╛рд░реА рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдирдХрд▓реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред

рдЕрдм https рдХреЗ рд▓рд┐рдП SSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕рдХреА рдПрдХ рд╕рд░рд▓ рд╕рдордЭ рд╣реИред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛рдПрдБ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдХреИрд╕реЗ рд╣реИрдХ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рднрд╛рд░реА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдХреАрдордд рдЪреБрдХрд╛рдиреА рдкрдбрд╝реЗрдЧреАред
рдФрд░ рдПрдирдПрд╕рдП рдпрд╛ рд╕реАрдЖрдИрдП рд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрдЧрдардиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдореМрдЬреВрджрд╛ рд╕реНрддрд░ рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реАрдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рднреАред

рдореИрдВ ssh рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рд╡рд╣рд╛рдВ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡рд┐рдХрд▓реНрдк рдПрд╕рдПрд╕рдПрдЪ-рдмрд╛рдп-рдкрд╛рд╕рд╡рд░реНрдб:
рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рджреМрд░рд╛рди, ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ssh рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдирдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣реИред
рдФрд░ рдЖрдЧреЗ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рджреМрд░рд╛рди, рдпрджрд┐ рдЪреЗрддрд╛рд╡рдиреА "рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рд╕реЗ рдирдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА" рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рдЖрдкрдХреА рдЬрд╛рд╕реВрд╕реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрд╛ рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрд╕реЗ рдХреБрдЫ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдк рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рджрд░рдЕрд╕рд▓, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡рд╛рдпрд░рдЯреИрдкрд┐рдВрдЧ рдХрд╛ рддрдереНрдп рдЖрд╕рд╛рдиреА рд╕реЗ, рдЬрд▓реНрджреА рдФрд░ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд╕рд╛рдордиреЗ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╣рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рдХрд▓реНрдк ssh-рджрд░-рдХреБрдВрдЬреА:
рд╣рдо рдПрдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрд╕ рдкрд░ рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдХреБрдВрдЬреА рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЗрдВ рдФрд░ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ)ред
рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рдорд╢реАрди рдкрд░ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрд╕рдПрд╕рдПрдЪ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдо рдЗрд╕реЗ рдЧреБрдкреНрдд рднреА рд░рдЦрддреЗ рд╣реИрдВред
рд╣рдо рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдЬрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд░рд╛рдЦ рдХреЛ рд╣рд╡рд╛ рдореЗрдВ рдмрд┐рдЦреЗрд░ рджреЗрддреЗ рд╣реИрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред
рдмрд╕ рдЗрддрдирд╛ рд╣реА - рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдРрд╕реЗ ssh рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, 10 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╕реБрдкрд░рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред

рдореИрдВ рдЕрдкрдорд╛рдирдЬрдирдХ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред

рддреЛ рдЕрдм рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬреНрдЮрд╛рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред

"openssl genrsa" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП "рд░рд┐рдХреНрдд рд╕реНрдерд╛рди" рдмрдирд╛рддреЗ рд╣реИрдВред
рд╣рдо "рд░рд┐рдХреНрдд рд╕реНрдерд╛рди" рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдВрдкрдиреА рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ $9 рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЗрд╕ рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдВрдкрдиреА рд╕реЗ рд╣рдорд╛рд░реА "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ" рдХреБрдВрдЬреА рдФрд░ рдХрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдВрдкрдиреА рдХреЛ рдореЗрд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╢реНрди рд╣реИ, рд╣рдо рдпрд╣рд╛рдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ:

smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key

"/etc/ssl" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ SSL рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Domain1.com - рдбреЛрдореЗрди рдирд╛рдо.
2018 рдкреНрд░рдореБрдЦ рд╕реГрдЬрди рдХрд╛ рд╡рд░реНрд╖ рд╣реИред
"рдХреБрдВрдЬреА" - рдкрджрдирд╛рдо рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реИред

рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрд░реНрде:

smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.рдЪреЗрдирдб.crt
Domain1.com - рдбреЛрдореЗрди рдирд╛рдо.
2018 рдкреНрд░рдореБрдЦ рд╕реГрдЬрди рдХрд╛ рд╡рд░реНрд╖ рд╣реИред
рдЬрдВрдЬреАрд░ - рдкрджрдирд╛рдо рдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ (рдкрд╣рд▓реА рд╣рдорд╛рд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣реИ рдФрд░ рдмрд╛рдХреА рд╡рд╣ рдХрдВрдкрдиреА рд╣реИ рдЬрд┐рд╕рдиреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдЬрд╛рд░реА рдХреА рд╣реИ)ред
рд╕реАрдЖрд░рдЯреА - рдкрджрдирд╛рдо рдХрд┐ рдПрдХ рддреИрдпрд╛рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИ (рддрдХрдиреАрдХреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА)ред

smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1

рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ (рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдмрд┐рдирд╛) рд╕реНрдкреИрдо рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред

рдлрд┐рд░ рд╕рдмрдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░реЛ рдХрд┐ рддреБрдо рджреЛрд╖реА рдирд╣реАрдВ рд╣реЛред

recipient_delimiter = +

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдИрдореЗрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рд╡рд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдореЗрд▓ рд╕рд░реНрд╡рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рд╣реИ "[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ"[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]"- рджреЗрдЦреЛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

inet_protocols = ipv4

рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ.

рд▓реЗрдХрд┐рди рдпреЗ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рд╣реИ. рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рдбреЛрдореЗрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ IPv4 рд╣реИ, рдлрд┐рд░ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ IPv6 рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдБред

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

рдпрд╣рд╛рдВ рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдореЗрд▓ рдбрд╡рдХреЙрдЯ рдХреЛ рдЬрд╛рддреА рд╣реИрдВред
рдФрд░ рдбреЛрдореЗрди, рдореЗрд▓рдмреЙрдХреНрд╕, рдЙрдкрдирд╛рдо рдХреЗ рдирд┐рдпрдо - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреЗрдЦреЗрдВред

/etc/postfix/mysql-virtual-mailbox-domains.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_domains WHERE name='%s'

/etc/postfix/mysql-virtual-mailbox-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT 1 FROM virtual_users WHERE email='%s'

/etc/postfix/mysql-virtual-alias-maps.cf

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = servermail
query = SELECT destination FROM virtual_aliases WHERE source='%s'

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

рдЕрдм рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдореЗрд▓ рдХреЛ рдЖрдЧреЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╡рдХреЙрдЯ рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рд╣реА рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдХреНрдпреЛрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ "рд╡рд░реНрдЪреБрдЕрд▓_рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ" рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд▓реЗрдХрд┐рди рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА рдмрд╣реБрдд рдкреБрд░рд╛рдиреА рд╣реИ - рд╢рд╛рдпрдж рдпрд╣ рдкреБрд░рд╛рдиреЗ рджрд┐рдиреЛрдВ рдХреА рдпрд╛рдж рд╣реИред

smtpd_recipient_restrictions =
        ...

smtpd_helo_restrictions =
        ...

smtpd_client_restrictions =
        ...

рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ 3 рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╣реИрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реИрдВред

рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЕрдиреНрдпрдерд╛ рд╕реНрдкреИрдо рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ - рд╕реНрдкреИрдо рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред

# SPF
policyd-spf_time_limit = 3600

рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрддреНрд░реЛрдВ рдХреЗ рдПрд╕рдкреАрдПрдлрд╝ рдХреА рдЬрд╛рдБрдЪ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдкреНрд▓рдЧрдЗрди рдХреА рд╕реНрдерд╛рдкрдирд╛ред

# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock

рд╕реЗрдЯрд┐рдВрдЧ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдИрдореЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ DKIM рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre

PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрддреНрд░ рднреЗрдЬрддреЗ рд╕рдордп рд▓реЗрдЯрд░ рд░реВрдЯрд┐рдВрдЧ рдореЗрдВ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рд╣реИред

рдлрд╝рд╛рдЗрд▓ "/etc/postfix/sdd_transport.pcre":

/^[email protected]$/ domain1:
/^[email protected]$/ domain2:
/^[email protected]$/ domain3:
/@domain1.com$/             domain1:
/@domain2.com$/             domain2:
/@domain3.com$/             domain3:

рдмрд╛рдИрдВ рдУрд░ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╣реИрдВ. рджрд╛рдИрдВ рдУрд░ рдПрдХ рд▓реЗрдмрд▓ рд╣реИ рдЬреЛ рдЕрдХреНрд╖рд░ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдмрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдЧрд╛ред

рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ "master.cf" рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкрдВрдХреНрддрд┐рдпрд╛рдБ 4, 5, 6 рдореБрдЦреНрдп рд╣реИрдВред рд╣рдо рдХрд┐рд╕ рдбреЛрдореЗрди рдХреА рдУрд░ рд╕реЗ рдкрддреНрд░ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд▓реЗрдмрд▓ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ "from" рдлрд╝реАрд▓реНрдб рд╣рдореЗрд╢рд╛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред

рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реНрдпрд╛рдкрдХ рд╣реИ - рдореИрдВ nginx+fpm рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓рд┐рдирдХреНрд╕-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рд╛рдореА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЖрдкрдХрд╛ рдПрдлрдкреАрдПрдо-рдкреВрд▓ред

рдПрдлрдкреАрдПрдо-рдкреВрд▓ php рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдк php рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрдбрд╝реЛрд╕реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ php.ini рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рддреЛ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдирдХреНрд╕-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "www-domain2" рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ Domain2.com рд╣реИред рдЗрд╕ рд╕рд╛рдЗрдЯ рдореЗрдВ 'рд╕реЗ' рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рд╣реИред

рддреЛ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА, рдкрддреНрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдХрднреА рднреА рд╕реНрдкреИрдо рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред

рдореЗрд░рд╛ "/etc/postfix/master.cf" рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

...
smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
...
policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
...
domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

domain2  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X5
   -o smtp_helo_name=domain2.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:2:1:1
   -o syslog_name=postfix-domain2

domain3  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X2
   -o smtp_helo_name=domain3
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:5:1
   -o syslog_name=postfix-domain3

рдлрд╝рд╛рдЗрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред
рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╡рд╣реА рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬреЛ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛ред

smtp      inet  n       -       y       -       -       smtpd
  -o content_filter=spamassassin
...
spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}

рдпреЗ рд╕реНрдкреИрдореИрд╕реИрд╕рд┐рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рдПрдЧреАред

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

рд╣рдо рдЖрдкрдХреЛ рдкреЛрд░реНрдЯ 587 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

рдПрд╕рдкреАрдПрдлрд╝ рдЬрд╛рдВрдЪ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ.

apt-get install postfix-policyd-spf-python

рдЖрдЗрдП рдЙрдкрд░реЛрдХреНрдд рдПрд╕рдкреАрдПрдлрд╝ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

domain1  unix -       -       n       -       -       smtp
   -o smtp_bind_address=XX.XX.XX.X1
   -o smtp_helo_name=domain1.com
   -o inet_protocols=all
   -o smtp_bind_address6=XXXX:XXXX:XXXX:XXXX:1:1:1:1
   -o syslog_name=postfix-domain1

рдФрд░ рдпреЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реИ. рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ IPv4/IPv6 рдкрддреЗ рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдпрд╣ rDNS рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. rDNS IP рдкрддреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред
рдФрд░ рдореЗрд▓ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣реЗрд▓реЛ рдЙрд╕ рдкрддреЗ рдХреЗ рдЖрд░рдбреАрдПрдирдПрд╕ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рдИрдореЗрд▓ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрджрд┐ рд╣реЗрд▓реЛ рдЙрд╕ рдИрдореЗрд▓ рдбреЛрдореЗрди рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рдЬрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдкрддреНрд░ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╕реНрдкреИрдо рдЕрдВрдХ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╣реЗрд▓реЛ rDNS рд╕реЗ тАЛтАЛрдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ - рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдкреИрдо рдЕрдВрдХ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди рдХрд╛ рдЕрдкрдирд╛ рдЖрдИрдкреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдУрд╡реАрдПрдЪ рдХреЗ рд▓рд┐рдП - рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрд░рдбреАрдПрдирдПрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
Tech.ru рдХреЗ рд▓рд┐рдП - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рдорд░реНрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
AWS рдХреЗ рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рдорд░реНрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
"inet_protocols" рдФрд░ "smtp_bind_address6" - рд╣рдо IPv6 рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред
IPv6 рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ rDNS рднреА рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
"syslog_name" - рдФрд░ рдпрд╣ рд▓реЙрдЧ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╣реИред

рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЦрд░реАрджреЗрдВ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ.

рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕+рдбрд╡рдХреЙрдЯ рд▓рд┐рдВрдХ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ.

рдПрд╕рдкреАрдПрдлрд╝ рд╕реЗрдЯ рдХрд░рдирд╛.

============= рдбрд╡рдХреЛрдЯ =============

apt-get install dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql dovecot-antispam

MySQL рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдирд╛, рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/10-auth.conf"

disable_plaintext_auth = yes
auth_mechanisms = plain login

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗрд╡рд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реИ.

рдлрд╝рд╛рдЗрд▓ тАЬ/etc/dovecot/conf.d/10-mail.confтАЭ

mail_location = maildir:/var/mail/vhosts/%d/%n

рдпрд╣рд╛рдВ рд╣рдо рдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рд╕реНрдерд╛рди рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред

рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдбреЛрдореЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/10-master.conf"

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 993
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
    port = 995
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
service imap {
}
service pop3 {
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  user = dovecot
}
service auth-worker {
  user = vmail
}
service dict {
  unix_listener dict {
  }
}

рдпрд╣ рдореБрдЦреНрдп рдбрд╡рдХреЛрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдпрд╣рд╛рдВ рд╣рдо рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддреЗ рд╣реИрдВред
рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВ.

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/10-ssl.conf"

ssl = required
ssl_cert = </etc/nginx/ssl/domain1.com.2018.chained.crt
ssl_key = </etc/nginx/ssl/domain1.com.2018.key
local XX.XX.XX.X5 {
  ssl_cert = </etc/nginx/ssl/domain2.com.2018.chained.crt
  ssl_key =  </etc/nginx/ssl/domain2.com.2018.key
}

рдПрд╕рдПрд╕рдПрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛. рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдФрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реА. рдФрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг "рд╕реНрдерд╛рдиреАрдп" рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕реНрдерд╛рдиреАрдп IPv4 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕ SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рд╡реИрд╕реЗ, IPv6 рдпрд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕ рдЪреВрдХ рдХреЛ рдмрд╛рдж рдореЗрдВ рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛ред
XX.XX.XX.X5 (рдбреЛрдореЗрди2) - рдХреЛрдИ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╣реАрдВред рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ Domain1.com рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
XX.XX.XX.X2 (domain3) - рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИ, рдЖрдк рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП Domain1.com рдпрд╛ Domain3.com рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/15-lda.conf"

protocol lda {
  mail_plugins = $mail_plugins sieve
}

рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдкреИрдореИрд╕реИрд╕рд┐рди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/20-imap.conf"

protocol imap {
  mail_plugins = $mail_plugins antispam
}

рдпрд╣ рдПрдХ рдПрдВрдЯреАрд╕реНрдкреИрдо рдкреНрд▓рдЧрдЗрди рд╣реИ. "рд╕реНрдкреИрдо" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ/рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рдордп рд╕реНрдкреИрдореИрд╕рд╛рд╕рд┐рди рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/20-pop3.conf"

protocol pop3 {
}

рдРрд╕реА рд╣реА рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ.

рдлрд╝рд╛рдЗрд▓ тАЬ/etc/dovecot/conf.d/20-lmtp.confтАЭ

protocol lmtp {
  mail_plugins = $mail_plugins sieve
  postmaster_address = [email protected]
}

рдПрд▓рдПрдордЯреАрдкреА рдХреА рд╕реНрдерд╛рдкрдирд╛.

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/90-antispam.conf"

plugin {
  antispam_backend = pipe
  antispam_trash = Trash;trash
  antispam_spam = Junk;Spam;SPAM
  antispam_pipe_program_spam_arg = --spam
  antispam_pipe_program_notspam_arg = --ham
  antispam_pipe_program = /usr/bin/sa-learn
  antispam_pipe_program_args = --username=%Lu
}

рд╕реНрдкреИрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ/рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рдордп рд╕реНрдкреИрдорд╛рд╕рд╕рд┐рди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/90-sieve.conf"

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_after = /var/lib/dovecot/sieve/default.sieve
}

рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ "/var/lib/dovecot/sieve/default.sieve"

require ["fileinto", "mailbox"];

if header :contains "X-Spam-Flag" "YES" {
        fileinto :create "Spam";
}

рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: "sievec default.sieve"ред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/conf.d/auth-sql.conf.ext"

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрд╕рдХреНрдпреВрдПрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ред
рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/dovecot-sql.conf.ext"

driver = mysql
connect = host=127.0.0.1 dbname=servermail user=usermail password=password
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

рдпрд╣ рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ "/etc/dovecot/dovecot.conf"

protocols = imap lmtp pop3
listen = *, ::
dict {
}
!include conf.d/*.conf
!include_try local.conf

рдореБрдЦреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓.
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ - рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВред

============= SpamAssassin =============

apt-get install spamassassin spamc

рдЖрдЗрдП рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

adduser spamd --disabled-login

рдЖрдЗрдП рдХрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВред

systemctl enable spamassassin.service

рд╣рдо рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдСрдЯреЛ-рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдкреИрдореИрд╕реИрд╕рд┐рди рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ "/рдЖрджрд┐/рдбрд┐рдлрд╝реЙрд▓реНрдЯ/рд╕реНрдкреИрдорд╛рд╕реИрд╕рд┐рди":

CRON=1

"рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ" рдирд┐рдпрдореЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрджреНрдпрддрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗред

рдлрд╝рд╛рдЗрд▓ "/etc/spamassassin/local.cf":

report_safe 0

use_bayes          1
bayes_auto_learn   1
bayes_auto_expire  1
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn      DBI:mysql:sa:localhost:3306
bayes_sql_username sa
bayes_sql_password password

рдЖрдкрдХреЛ MySQL рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "sa" рдХреЗ рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб "password" (рдХрд┐рд╕реА рдкрд░реНрдпрд╛рдкреНрдд рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓реЗрдВ) рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ "sa" рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд░рд┐рдкреЛрд░реНрдЯ_рд╕реЗрдл - рдпрд╣ рдПрдХ рдкрддреНрд░ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдкреИрдо рдИрдореЗрд▓ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬреЗрдЧрд╛ред
use_bayes рд╕реНрдкреИрдореИрд╕реИрд╕рд┐рди рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред

рд╢реЗрд╖ рд╕реНрдкреИрдорд╛рд╕реНрд╕реИрд╕рд┐рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧ "рд╕реНрдкреИрдорд╕реИрд╕рд┐рди".
рдирдП рд╕реНрдкреИрдо рдИрдореЗрд▓ рдХреЛ IMAP "рд╕реНрдкреИрдо" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ.
Dovecot + SpamAssassin рдХреЗ рдПрдХ рд╕рд░рд▓ рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ.
рдореИрдВ рдЖрдИрдореИрдк рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрдкреИрдореИрд╕рд╛рд╕рд┐рди рд╕реАрдЦрдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ (рдФрд░ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ).

============= рд╕рдореБрджрд╛рдп рд╕реЗ рдЕрдкреАрд▓ =============

рдореИрдВ рд╕рдореБрджрд╛рдп рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рднреА рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдкрддреНрд░реЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПред рдЪреВрдБрдХрд┐ рдореИрдВ рдореЗрд▓ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рд╕реЗ рдбреВрдмрд╛ рд╣реБрдЖ рд╣реВрдБред

рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ (рдЖрдЙрдЯрд▓реБрдХ, рдердВрдбрд░рдмрд░реНрдб, рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдкреНрд▓рдЧрдЗрди, ...) рдкрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛ рд╕рдХреЗред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреАред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ - DNS рдХреЛ рднреЗрдЬреЗрдВред рдирд┐рдЬреА - рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдмрдЪрдд рдХрд░реЗрдВред рдореЗрд▓ рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдФрд░ рдРрд╕реЗ рдкрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдкреИрдо рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП (рд╣рд╛рдБ, рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдЧрд╛) - рдЖрдкрдХреЛ 3 рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреАрдХреЗрдЖрдИрдПрдо рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЕрдирд┐рд╡рд╛рд░реНрдп рдПрд╕рдкреАрдПрдлрд╝, рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд░рдбреАрдПрдирдПрд╕ред
  2. рдПрдВрдЯреАрд╕реНрдкреИрдо рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ + рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ред
  3. рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдкрдХреНрд╖ рдХреЛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдкрдХреНрд╖ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкрд░ 100 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рд╢рдХреНрддрд┐ рдЦрд░реНрдЪ рдХрд░рдиреА рдкрдбрд╝реЗред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреНрд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рд╕реБрд░рдХреНрд╖рд┐рдд рдкрддреНрд░рд╛рдЪрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" рдПрдХ рдорд╛рдирдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ (рдореЗрд▓рдмреЙрдХреНрд╕) рджреВрд╕рд░реЗ рдореЗрд▓рдмреЙрдХреНрд╕ рдореЗрдВ рдЕрдиреБрд▓рдЧреНрдирдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкрддреНрд░ рднреЗрдЬрддрд╛ рд╣реИред рдкрддреНрд░ рдореЗрдВ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рда рдкреНрд░рд╕реНрддрд╛рд╡ рдФрд░ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА (рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде) рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рдХреБрдВрдЬрд┐рдпрд╛рдБ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ) рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрддреНрд░ (рджреВрд╕рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб) тАЛтАЛрднреЗрдЬрддрд╛ рд╣реИ - рдЬрд┐рд╕рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рджреВрд╕рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрдард┐рдд рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рди рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рджреВрд╕рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкрддреНрд░ рднреЗрдЬрддрд╛ рд╣реИ - рдФрд░ рдлрд┐рд░ рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдЧрдард┐рдд рдЪреИрдирд▓ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рди рд╕рдХрддрд╛ рд╣реИред

рд╕рдбрд╝рдХ рдкрд░ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рдЕрд╡рд░реЛрдзрди рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ "рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХреМрди рдХрд░реЗрдЧрд╛?"):
10 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП $3 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбрд╛рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рджрд░реНрдЬ рдХрд░реЗрдВред рдЬреЛ рдкреНрд░реЗрд╖рдХ рдХреЛ рдбреАрдПрдирдПрд╕ рдореЗрдВ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ "рдореЗрд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╡рд╣рд╛рдВ рдкрд░ рд╣реИрдВред" рдФрд░ рд╡реЗ рдЖрдкрдХреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдВрдЧреЗред рд╡рд╣реАрдВ, рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рд╣реИред
рдЬреАрдореЗрд▓ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдХрдорд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реИред $10 рдкреНрд░рддрд┐ 3 рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП - рд╕реБрд░рдХреНрд╖рд┐рдд рдкрддреНрд░рд╛рдЪрд╛рд░ рдЪреИрдирд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ред

============= рдирд┐рд╖реНрдХрд░реНрд╖ =============

рдкреВрд░реЗ рд▓реЗрдЦ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдиреЗ рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЛрдореЗрди рдЦрд░реАрджрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рдЬреАрд╡рди рдХреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдРрд╕реА рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдИрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ 2 рдорд╣реАрдиреЗ рддрдХ рдЦрд┐рдВрдЪ рдЧрдпрд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдЦрд╛рд▓реА рд╕рдордп рдерд╛, рддреЛ рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреЛ рд╡реИрд╕реЗ рд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдЬреЛрдЦрд┐рдо рдЙрдард╛рдпрд╛ рдЬрд╛рдП рдХрд┐ рдкреНрд░рдХрд╛рд╢рди рдПрдХ рдФрд░ рд╕рд╛рд▓ рддрдХ рдЦрд┐рдВрдЪ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬреИрд╕реЗ "рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ", рддреЛ рд╕рдВрднрд╡рддрдГ рдПрдХ рдирдП рдбреЛрдореЗрди рдФрд░ рдПрдХ рдирдП рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рд▓реЗрдиреЗ рдФрд░ рдЗрд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рддрд╛рдХрдд рд╣реЛрдЧреА рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рд╕рднреА рдЫреВрдЯреЗ рд╣реБрдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВред

рдореИрдВ рдбрд╛рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдЖрдпрд╛, рддреЛ рдореИрдВ рдЖрд░рдПрдлрд╕реА рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдлреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рддрд╛рдХрдд рдвреВрдВрдврдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдХрд┐рд╕реА рд▓реЗрдЦ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп, рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдореИрдВ рд╕реНрд╡рдпрдВ рдЗрд╕рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред


рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ