Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-Interfaces + SpamAssassin-Learn + Bind

ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ ืึท ืžืึธื“ืขืจืŸ ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจ.
ืคึผืึธืกื˜ืคื™ืงืก + ื“ืึธื•ื•ืขืงืึธื˜. ืกืคึผืฃ + DKIM + ืจื“ื ืก. ืžื™ื˜ IPv6.
ืžื™ื˜ TSL ืขื ืงืจื™ืคึผืฉืึทืŸ. ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงื™ื™ืคืœ ื“ืึธื•ืžื™ื™ื ื– - ื˜ื™ื™ืœ ืžื™ื˜ ืึท ืคืึทืงื˜ื™ืฉ SSL ื‘ืึทื•ื•ื™ื™ึทื–ืŸ.
ืžื™ื˜ ืึทื ื˜ื™-ืกืคึผืึทื ืฉื•ืฅ ืื•ืŸ ืึท ื”ื•ื™ืš ืึทื ื˜ื™-ืกืคึผืึทื ืจืึทื ื’ ืคื•ืŸ ืื ื“ืขืจืข ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจืก.
ืฉื˜ื™ืฆื˜ ืงื™ื™ืคืœ ื’ืฉืžื™ื•ืช ื™ื ื˜ืขืจืคื™ื™ืกื™ื–.
ืžื™ื˜ OpenVPN, ื“ื™ ืงืฉืจ ืฆื• ื•ื•ืึธืก ืื™ื– ื“ื•ืจืš IPv4 ืื•ืŸ ื•ื•ืึธืก ื’ื™ื˜ IPv6.

ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ืœืขืจื ืขืŸ ืึทืœืข ื“ื™ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื–, ืึธื‘ืขืจ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึทื–ืึท ืึท ืกืขืจื•ื•ืขืจ, ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ืคึฟืึทืจ ืื™ืจ.

ื“ืขืจ ืึทืจื˜ื™ืงืœ ืžืื›ื˜ ืงื™ื™ืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ื“ืขืจืงืœืขืจืŸ ื™ืขื“ืขืจ ื“ืขื˜ืึทืœ. ื“ื™ ื“ืขืจืงืœืขืจื•ื ื’ ื’ื™ื™ื˜ ืฆื• ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืงืึทื ืคื™ื’ื™ืขืจื“ ื•ื•ื™ ื ืึธืจืžืึทืœ ืึธื“ืขืจ ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืคึฟื•ืŸ ื“ื™ ืงืึธื ืกื•ืžืขืจ ืก ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’.

ื“ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืฆื• ืฉื˜ืขืœืŸ ืึท ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ ืžื™ื™ืŸ ืœืึทื ื’-ื˜ืขืจืžื™ืŸ ื—ืœื•ื. ื“ืึธืก ืงืขืŸ ื’ืขื–ื•ื ื˜ ื ืึทืจื™ืฉ, ืึธื‘ืขืจ IMHO, ืขืก ืื™ื– ืคื™ืœ ื‘ืขืกืขืจ ื•ื•ื™ ื“ืจื™ืžื™ื ื’ ืคื•ืŸ ืึท ื ื™ื™ึท ืžืึทืฉื™ืŸ ืคื•ืŸ ื“ื™ื™ืŸ ื‘ืึทืœื™ื‘ืกื˜ืข ืกืึธืจื˜.

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ IPv6. ืึทืŸ IT ืžื•ืžื›ืข ื“ืึทืจืฃ ืงืขืกื™ื™ื“ืขืจ ืœืขืจื ืขืŸ ื ื™ื™ึทืข ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ืฆื• ื‘ืœื™ื™ึทื‘ื  ืœืขื‘ืŸ. ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืžืึทื›ืŸ ืžื™ื™ืŸ ื‘ืึทืฉื™ื™ื“ืŸ ืฆื•ืฉื˜ื™ื™ึทืขืจ ืฆื• ื“ืขื ืงืึทืžืฃ ืงืขื’ืŸ ืฆืขื ื–ื•ืจ.

ื“ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ OpenVPN ืื™ื– ื ืึธืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ IPv6 ืืจื‘ืขื˜ืŸ ืื•ื™ืฃ ื“ื™ ื”ื™ื’ืข ืžืึทืฉื™ืŸ.
ื“ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืขื˜ืœืขื›ืข ื’ืฉืžื™ื•ืช ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืื™ื– ืึทื– ืื•ื™ืฃ ืžื™ื™ืŸ ืกืขืจื•ื•ืขืจ ืื™ืš ื”ืึธื‘ืŸ ืื™ื™ืŸ ืฆื•ื‘ื™ื ื“ "ืคึผืึทืžืขืœืขืš ืึธื‘ืขืจ ืึทื ืœื™ืžืึทื˜ืึทื“" ืื•ืŸ ืื ื“ืขืจืŸ "ืฉื ืขืœ ืึธื‘ืขืจ ืžื™ื˜ ืึท ืฆืึธืœ".

ื“ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื‘ื™ื ื“ ืกืขื˜ื˜ื™ื ื’ืก ืื™ื– ืึทื– ืžื™ื™ืŸ ื™ืกืคึผ ื’ื™ื˜ ืึทืŸ ืึทื ืกื˜ื™ื™ื‘ืึทืœ ื“ื ืก ืกืขืจื•ื•ืขืจ, ืื•ืŸ Google ืื•ื™ืš ืžืืœ ืคื™ื™ืœื–. ืื™ืš ื•ื•ื™ืœืŸ ืึท ืกื˜ืึทื‘ื™ืœ ื“ื ืก ืกืขืจื•ื•ืขืจ ืคึฟืึทืจ ืคึผืขืจื–ืขื ืœืขืš ื ื•ืฆืŸ.

ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืŸ ืึทืจื˜ื™ืงืœ - ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืึท ืคึผืœืึทืŸ 10 ื—ื“ืฉื™ื ืฆื•ืจื™ืง, ืื•ืŸ ืื™ืš ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขืงื•ืงื˜ ืื•ื™ืฃ ืขืก ืฆื•ื•ื™ื™ ืžืึธืœ. ืืคื™ืœื• ืื•ื™ื‘ ื“ืขืจ ืžื—ื‘ืจ ื“ืึทืจืฃ ืขืก ืงืขืกื™ื™ื“ืขืจ, ืขืก ืื™ื– ืึท ื”ื•ื™ืš ืžืึทืฉืžืึธืขืก ืึทื– ืื ื“ืขืจืข ื•ื•ืขืœืŸ ืื•ื™ืš ื“ืึทืจืคึฟืŸ ืขืก.

ืขืก ืื™ื– ืงื™ื™ืŸ ื•ื ื™ื•ื•ืขืจืกืึทืœ ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ืึท ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจ. ืึธื‘ืขืจ ืื™ืš ื•ื•ืขืœ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืขืคึผืขืก ื•ื•ื™ "ื˜ืึธืŸ ื“ืึธืก ืื•ืŸ ื“ืึทืŸ, ื•ื•ืขืŸ ืึทืœืฅ ืึทืจื‘ืขื˜ ื•ื•ื™ ืขืก ื–ืึธืœ, ื•ื•ืึทืจืคืŸ ืื•ื™ืก ื“ื™ ืขืงืกื˜ืจืข ืฉื˜ืึธืคึผืŸ."

ื“ื™ ืคื™ืจืžืข tech.ru ื”ืื˜ ืึท ืงืึธืœืึธืงืึทื˜ื™ืึธืŸ ืกืขืจื•ื•ืขืจ. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืคืึทืจื’ืœื™ื™ึทื›ืŸ ืžื™ื˜ OVH, Hetzner, AWS. ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ืงื•ื•ืึทืคึผืขืจื™ื™ืฉืึทืŸ ืžื™ื˜ tech.ru ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ืœ ืžืขืจ ืขืคืขืงื˜ื™ื•ื•.

ื“ืขื‘ื™ืึทืŸ 9 ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ.

ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืื˜ 2 ื™ื ื˜ืขืจืคื™ื™ืกื™ื– `eno1` ืื•ืŸ `eno2`. ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืึทื ืœื™ืžืึทื˜ืึทื“, ืื•ืŸ ื“ื™ ืจื’ืข ืื™ื– ืฉื ืขืœ, ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™.

ืขืก ื–ืขื ืขืŸ 3 ืกื˜ืึทื˜ื™ืง IP ืึทื“ืจืขืกืขืก, XX.XX.XX.X0 ืื•ืŸ XX.XX.XX.X1 ืื•ืŸ XX.XX.XX.X2 ืื•ื™ืฃ ื“ื™ 'eno1' ืฆื•ื‘ื™ื ื“ ืื•ืŸ XX.XX.XX.X5 ืื•ื™ืฃ ื“ื™ 'eno2' ืฆื•ื‘ื™ื ื“ .

ื‘ื ื™ืžืฆื XXXX:XXXX:XXXX:XXXX::/64 ืึท ื‘ืขืงืŸ ืคื•ืŸ IPv6 ืึทื“ืจืขืกืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทืกื™ื™ื ื“ ืฆื• ื“ื™ 'eno1' ืฆื•ื‘ื™ื ื“ ืื•ืŸ ืคึฟื•ืŸ ืขืก XXXX:XXXX:XXXX:XXXX:1:2::/96 ืื™ื– ืึทืกื™ื™ื ื“ ืฆื• 'eno2' ืื•ื™ืฃ ืžื™ื™ืŸ ื‘ืงืฉื”.

ืขืก ื–ืขื ืขืŸ 3 ื“ืึธื•ืžื™ื™ื ื– `domain1.com`, `domain2.com`, `domain3.com`. ืขืก ืื™ื– ืึทืŸ SSL ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืคึฟืึทืจ `domain1.com` ืื•ืŸ `domain3.com`.

ืื™ืš ื”ืึธื‘ืŸ ืึท Google ื—ืฉื‘ื•ืŸ ืฆื• ื•ื•ืึธืก ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืžื™ื™ืŸ ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]` (ื‘ืึทืงื•ืžืขืŸ ืคึผืึธืกื˜ ืื•ืŸ ืฉื™ืงืŸ ืคึผืึธืกื˜ ื’ืœื™ื™ืš ืคึฟื•ืŸ ื“ื™ Gmail ืฆื•ื‘ื™ื ื“).
ืขืก ืžื•ื– ื–ื™ื™ืŸ ืึท ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ`[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]`, ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ E- ื‘ืจื™ื•ื• ืคื•ืŸ ื•ื•ืึธืก ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื–ืขืŸ ืื™ืŸ ืžื™ื™ืŸ Gmail. ืื•ืŸ ืขืก ืื™ื– ื–ืขืœื˜ืŸ ืฆื• ืงืขื ืขืŸ ืฆื• ืฉื™ืงืŸ ืขืคึผืขืก ืื•ื™ืฃ ื‘ื™ื›ืึทืฃ ืคื•ืŸ `[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]`ื“ื•ืจืš ื“ื™ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“.

ืขืก ืžื•ื– ื–ื™ื™ืŸ ืึท ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ`[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]`, ื•ื•ืึธืก ื™ื•ื•ืึทื ืึธื•ื• ื•ื•ืขื˜ ื ื•ืฆืŸ ืคึฟื•ืŸ ื–ื™ื™ืŸ iPhone.

ื’ืขืฉื™ืงื˜ ื™ืžื™ื™ืœื– ืžื•ื–ืŸ ื ืึธื›ืงื•ืžืขืŸ ืžื™ื˜ ืึทืœืข ืžืึธื“ืขืจืŸ ืึทื ื˜ื™ืกืคึผืึทื ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ.
ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื“ื™ ื”ืขื›ืกื˜ืŸ ืฉื˜ืึทืคึผืœ ืคื•ืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ืฆื™ื‘ื•ืจ ื ืขื˜ื•ื•ืึธืจืงืก.
ืขืก ื–ืึธืœ ื–ื™ื™ืŸ IPv6 ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืฉื™ืงื˜ ืื•ืŸ ืจื™ืกื™ื•ื•ื™ื ื’ ืื•ืชื™ื•ืช.
ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืึท SpamAssassin ื•ื•ืึธืก ื•ื•ืขื˜ ืงื™ื™ื ืžืึธืœ ื•ื™ืกืžืขืงืŸ ื™ืžื™ื™ืœื–. ืื•ืŸ ืขืก ื•ื•ืขื˜ ืึธืคึผืฉืคึผืจื•ื ื’ ืึธื“ืขืจ ื”ืึธืคึผืงืขืŸ ืึธื“ืขืจ ืฉื™ืงืŸ ืฆื• ื“ื™ IMAP "ืกืคึผืึทื" ื˜ืขืงืข.
ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ ืึทื•ื˜ืึธ-ืœืขืจื ืขืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืงืึทื ืคื™ื’ื™ืขืจื“: ืื•ื™ื‘ ืื™ืš ืžืึทืš ืึท ื‘ืจื™ื•ื• ืฆื• ื“ื™ ืกืคึผืึทื ื˜ืขืงืข, ืขืก ื•ื•ืขื˜ ืœืขืจื ืขืŸ ืคื•ืŸ ื“ืขื; ืื•ื™ื‘ ืื™ืš ืžืึทืš ืึท ื‘ืจื™ื•ื• ืคื•ืŸ ื“ื™ ืกืคึผืึทื ื˜ืขืงืข, ืขืก ื•ื•ืขื˜ ืœืขืจื ืขืŸ ืคื•ืŸ ื“ืขื. ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ื“ื™ SpamAssassin ื˜ืจื™ื™ื ื™ื ื’ ื–ืึธืœ ื”ืฉืคึผืขื” ืฆื™ ื“ืขืจ ื‘ืจื™ื•ื• ืขื ื“ืก ืื™ืŸ ื“ื™ ืกืคึผืึทื ื˜ืขืงืข.
ืคืคึผ ืกืงืจื™ืคึผืก ืžื•ื–ืŸ ืงืขื ืขืŸ ืฆื• ืฉื™ืงืŸ ืคึผืึธืกื˜ ืื•ื™ืฃ ื‘ื™ื›ืึทืฃ ืคื•ืŸ ืงื™ื™ืŸ ืคืขืœื“ ืื•ื™ืฃ ืึท ื’ืขื’ืขื‘ืŸ ืกืขืจื•ื•ืขืจ.
ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืึทืŸ openvpn ื“ื™ื ืกื˜, ืžื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ IPv6 ืื•ื™ืฃ ืึท ืงืœื™ืขื ื˜ ื•ื•ืึธืก ื”ืื˜ ื ื™ืฉื˜ IPv6.

ืขืจืฉื˜ืขืจ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืื•ืŸ ืจื•ื˜ื™ื ื’, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ IPv6.
ื“ืขืจื ืึธืš ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ OpenVPN, ื•ื•ืึธืก ื•ื•ืขื˜ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš IPv4 ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ื“ืขื ืงืœื™ืขื ื˜ ืึท ืกื˜ืึทื˜ื™ืง-ืคืึทืงื˜ื™ืฉ IPv6 ืึทื“ืจืขืก. ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึทืงืกืขืก ืฆื• ืึทืœืข IPv6 ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืึทืงืกืขืก ืฆื• ืงื™ื™ืŸ IPv6 ืจืขืกื•ืจืกืŸ ืื•ื™ืฃ ื“ืขืจ ืื™ื ื˜ืขืจื ืขืฅ.
ื“ืขืจื ืึธืš ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืคึผืึธืกื˜ืคื™ืงืก ืฆื• ืฉื™ืงืŸ ืื•ืชื™ื•ืช + SPF + DKIM + rDNS ืื•ืŸ ืื ื“ืขืจืข ืขื ืœืขืš ืงืœื™ื™ืŸ ื˜ื™ื ื’ื–.
ื“ืขืจื ืึธืš ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื“ืึธื•ื•ืขืงืึธื˜ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืžื•ืœื˜ื™ื“ืึธืžืึทื™ืŸ.
ื“ืขืจื ืึธืš ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ SpamAssassin ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ื˜ืจื™ื™ื ื™ื ื’.
ืฆื•ื ืกื•ืฃ, ื™ื ืกื˜ืึทืœื™ืจืŸ Bind.

============= ืžื•ืœื˜ื™ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ==============

ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื™ื ื˜ืขืจืคื™ื™ืกื™ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืื™ืŸ "/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 (ืžื™ื˜ ืึท ื‘ื™ืกืœ ืงืึธื•ืึธืจื“ืึทื ื™ื™ืฉืึทืŸ ืžื™ื˜ ืฉื˜ื™ืฆืŸ) ืื•ืŸ ืขืก ื•ื•ืขื˜ ื’ืœื™ื™ืš ืึทืจื‘ืขื˜ ื•ื•ื™ ืขืก ื–ืึธืœ.

ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื“ืขืจืคืึทืจื•ื ื’ ืžื™ื˜ ืกืขื˜ืึทืคึผ ืขื ืœืขืš ื˜ื™ื ื’ื– ืคึฟืึทืจ Hetzner, OVH, ื“ืึธืก ืื™ื– ืึทื ื“ืขืจืฉ. ืฉื•ื•ืขืจืขืจ.

eno1 ืื™ื– ื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ื ืขืฅ ืงืึธืจื˜ #1 (ืคึผืึทืžืขืœืขืš ืึธื‘ืขืจ ืึทื ืœื™ืžืึทื˜ืึทื“).
eno2 ืื™ื– ื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ื ืขืฅ ืงืึธืจื˜ #2 (ืฉื ืขืœ, ืึธื‘ืขืจ ืžื™ื˜ ืึท ืฆืึธืœ).
tun0 ืื™ื– ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื ืขืฅ ืงืึธืจื˜ ืคึฟื•ืŸ OpenVPN.
XX.XX.XX.X0 - IPv4 #1 ืื•ื™ืฃ ืขื ืึธ1.
XX.XX.XX.X1 - IPv4 #2 ืื•ื™ืฃ ืขื ืึธ1.
XX.XX.XX.X2 - IPv4 #3 ืื•ื™ืฃ ืขื ืึธ1.
XX.XX.XX.X5 - IPv4 #1 ืื•ื™ืฃ ืขื ืึธ2.
XX.XX.XX.1 - IPv4 ื’ื™ื™ื˜ื•ื•ื™ื™.
XXXX:XXXX:XXXX:XXXX::/64 - IPv6 ืคึฟืึทืจ ื“ื™ ื’ืื ืฆืข ืกืขืจื•ื•ืขืจ.
XXXX:XXXX:XXXX:XXXX:1:2::/96 - IPv6 ืคึฟืึทืจ ืขื ืึธ2, ืึทืœืฅ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืึทืจื•ื™ืก ื’ื™ื™ื˜ ืื™ืŸ ืขื ืึธ1.
XXXX:XXXX:XXXX:XXXX::1 โ€” IPv6 ื’ื™ื™ื˜ื•ื•ื™ื™ (ืขืก ืื™ื– ื›ื“ืื™ ืฆื• ื‘ืืžืขืจืงืŸ ืึทื– ื“ืึธืก ืงืขืŸ / ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื“ื™ืคืขืจืขื ื˜ืœื™. ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ IPv6 ื‘ืึทืฉื˜ื™ืžืขืŸ).
dns-nameservers - 127.0.0.1 ืื™ื– ืื ื’ืขื•ื•ื™ื–ืŸ (ื•ื•ื™ื™ึทืœ ื‘ื™ื ื“ืŸ ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืœืึธื•ืงืึทืœื™) ืื•ืŸ 213.248.1.6 (ื“ืึธืก ืื™ื– ืคึฟื•ืŸ tech.ru).

"ื˜ื™ืฉ ืขื ืึธ1ื˜" ืื•ืŸ "ื˜ื™ืฉ ืขื ืึธ2ื˜" - ื“ื™ ื˜ื™ื™ึทื˜ืฉ ืคื•ืŸ ื“ื™ ืžืึทืจืฉืจื•ื˜ ื›ึผืœืœื™ื ืื™ื– ืึทื– ืคืึทืจืงืขืจ ืงื•ืžื˜ ื“ื•ืจืš ืขื ืึธ1 -> ื•ื•ืึธืœื˜ ืœืึธื–ืŸ ื“ื•ืจืš ืขืก, ืื•ืŸ ืคืึทืจืงืขืจ ื•ื•ืึธืก ืงื•ืžื˜ ื“ื•ืจืš ืขื ืึธ2 -> ื•ื•ืึธืœื˜ ืœืึธื–ืŸ ื“ื•ืจืš ืขืก. ืื•ืŸ ืื•ื™ืš ืงืึทื ืขืงืฉืึทื ื– ื™ื ื™ืฉื™ื™ื™ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ืึธืœื˜ ื’ื™ื™ืŸ ื“ื•ืจืš ืขื ืึธ1.

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

ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ ืžื™ืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึทื– ืงื™ื™ืŸ ื™ื ื’ืงืึทืžืคึผืจืึทื›ืขื ืกื™ื‘ืึทืœ ืคืึทืจืงืขืจ ื•ื•ืึธืก ืคืืœืŸ ืื•ื ื˜ืขืจ ืงื™ื™ืŸ ื”ืขืจืฉืŸ ืื ื’ืขืฆื™ื™ื›ื ื˜ "ื˜ื™ืฉ ืขื ืึธ1ื˜" -> ื•ื•ืขืจืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืขื ืึธ1 ืฆื•ื‘ื™ื ื“.

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

ื“ืขืจ ื‘ืœืึธืง ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ืึท ืฆื•ื•ื™ื™ื˜ IPv4 ืคึฟืึทืจ ื“ื™ eno1 ืฆื•ื‘ื™ื ื“.

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

ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ ืžื™ืจ ืฉื˜ืขืœืŸ ื“ื™ ืžืึทืจืฉืจื•ื˜ ืคื•ืŸ OpenVPN ืงืœื™ื™ืึทื ืฅ ืฆื• ื”ื™ื’ืข IPv4 ืึทื—ื•ืฅ XX.XX.XX.X0.
ืื™ืš ื ืึธืš ื˜ืึธืŸ ื ื™ื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ื“ืขื ื‘ืึทืคึฟืขืœ ืื™ื– ื’ืขื ื•ื’ ืคึฟืึทืจ ืึทืœืข 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 - ื“ื™ ืกื•ื‘ื ืขื˜ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืจืขืกืขืจ ื•ื•ื™ ืขื ืึธ1. ืึทื ื“ืขืจืฉ, ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืึทืŸ IPv6 ื’ื™ื™ื˜ื•ื•ื™ื™ ืคึฟืึทืจ OpenVPN ืงืœื™ื™ืึทื ืฅ.
eno2 - ื“ื™ ืกื•ื‘ื ืขื˜ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืจืขืกืขืจ ื•ื•ื™ tun0. ืึทื ื“ืขืจืฉ, OpenVPN ืงืœื™ื™ืึทื ืฅ ืงืขื ืขืŸ ื ื™ืฉื˜ ืึทืงืกืขืก ื”ื™ื’ืข IPv6 ืึทื“ืจืขืกืขืก.
ืคึฟืึทืจ ืงืœืขืจื™ื˜ื™, ืื™ืš ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ืึท ืกื•ื‘ื ืขื˜ ืฉืจื™ื˜ ืคื•ืŸ 16, ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœื˜, ืื™ืจ ืงืขื ืขืŸ ืืคื™ืœื• ื˜ืึธืŸ "1" ืฉืจื™ื˜.
ืึทืงืงืึธืจื“ื™ื ื’ืœื™, 64+16 = 80, ืื•ืŸ 80+16 = 96.

ืคึฟืึทืจ ืืคื™ืœื• ืžืขืจ ืงืœืึธืจืงื™ื™ื˜:
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYYY ื–ืขื ืขืŸ ืึทื“ืจืขืกืขืก ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ืึทืกื™ื™ื ื“ ืฆื• ืกืคึผืขืฆื™ืคื™ืฉ ื–ื™ื™ื˜ืœืขืš ืึธื“ืขืจ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ื™ืฃ ื“ื™ ืขื ืึธ1 ืฆื•ื‘ื™ื ื“.
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYYY ื–ืขื ืขืŸ ืึทื“ืจืขืกืขืก ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ืึทืกื™ื™ื ื“ ืฆื• ืกืคึผืขืฆื™ืคื™ืฉ ื–ื™ื™ื˜ืœืขืš ืึธื“ืขืจ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ื™ืฃ ื“ื™ ืขื ืึธ2 ืฆื•ื‘ื™ื ื“.
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 =============

OpenVPN IPv4 ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ ืึธืŸ ื™ืคึผื˜ืึทื‘ืœืขืก.

ืžื™ื™ึทืŸ ื™ืคึผื˜ืึทื‘ืœืขืก ื–ืขื ืขืŸ ื•ื•ื™ ื“ืึธืก ืคึฟืึทืจ VPN:

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 - IPv4 openvpn ื ืขืฅ. IPv4 ืึทื“ืจืขืกื– ืคึฟืึทืจ ืึธืคึผืขื ื•ื•ืคึผืŸ ืงืœื™ื™ืึทื ืฅ.
ื“ื™ ืงืึธื ืกื™ืกื˜ืขื ืกื™ ืคื•ืŸ ื“ื™ ื›ึผืœืœื™ื ืื™ื– ื•ื•ื™ื›ื˜ื™ืง.

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

ื“ืึธืก ืื™ื– ืึท ื‘ืึทื’ืจืขื ืขืฆื•ื ื’ ืึทื–ื•ื™ ืึทื– ื‘ืœื•ื™ื– ืื™ืš ืงืขื ืขืŸ ื ื•ืฆืŸ OpenVPN ืคึฟื•ืŸ ืžื™ื™ืŸ ืกื˜ืึทื˜ื™ืง IP.

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

ืฆื• ืคึฟืึธืจื•ื•ืขืจื˜ืก IPv4 ืคึผืึทืงื™ืฅ ืฆื•ื•ื™ืฉืŸ OpenVPN ืงืœื™ื™ืึทื ืฅ ืื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื’ื™ืกื˜ืจื™ืจืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืึทืžืึทื ื“ื–.

ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ืงืึทืกืขืก, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึธืคึผืฆื™ืขืก ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง.
ื‘ื™ื™ื“ืข ืงืึทืžืึทื ื“ื– ื–ืขื ืขืŸ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืžื™ื™ืŸ ืคืึทืœ.
ื ืึธืš ืœื™ื™ืขื ืขืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืื™ืš ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ื“ืขืจ ืขืจืฉื˜ืขืจ ืึธืคึผืฆื™ืข ื•ื•ื™ื™ึทืœ ืขืก ื ื™ืฆื˜ ื•ื•ื™ื™ื ื™ืงืขืจ ืงืคึผื•.

ื›ึผื“ื™ ืึทืœืข ื™ืคึผื˜ืึทื‘ืœืขืก ืกืขื˜ื˜ื™ื ื’ืก ื–ืึธืœ ื–ื™ื™ืŸ ืคึผื™ืงื˜ ื–ื™ืš ื ืึธืš ืจืขื‘ืึธืึธื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ื–ื™ื™ ืขืจื’ืขืฅ.

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

ืœืึธืžื™ืจ ืฆื•ื’ืจื™ื™ื˜ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉืึทืคึฟืŸ ื“ื™ ืœืขืฆื˜ "ืงืœื™ืขื ื˜-ื ืึทืžืข.ืึธืคึผื•ื•ืŸ" ื˜ืขืงืขืก:

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" ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ื“ืขื ืงืœื™ืขื ื˜ ืก ืžื™ื˜ืœ.

ืคึฟืึทืจ ื™ืึธืก ืงืœื™ื™ืึทื ืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ืจื™ืง:
ื“ืขืจ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ "tls-auth" ืงื•ื•ื™ื˜ืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึธืŸ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.
ืื•ืŸ ืื•ื™ืš ืฉื˜ืขืœืŸ "ืฉืœื™ืกืœ-ืจื™ื›ื˜ื•ื ื’ 1" ื’ืœื™ื™ืš ืื™ื™ื“ืขืจ ื“ื™ "tls-auth" ืงื•ื•ื™ื˜ืœ.

ืœืึธืžื™ืจ ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ 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 ื™ืึธืจ ื ืึธืš ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืžื™ื™ืŸ ืงืึทืจื™ืขืจืข ืื™ืš ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ SSL ืึทืจื‘ืขื˜.

ื“ืขืจื™ื‘ืขืจ, ืื™ืš ื•ื•ืขืœ ื ืขืžืขืŸ ื“ื™ ืคืจื™ื™ื”ื™ื™ื˜ ืคื•ืŸ ื“ื™ืกืงืจื™ื™ื‘ื™ื ื’ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ SSL (ืึธืŸ ืขื ื˜ืคึฟืขืจืŸ ื“ื™ ืคืจืื’ืขืก "ื•ื•ื™ ื˜ื•ื˜ ืขืก ืึทืจื‘ืขื˜?" ืื•ืŸ "ืคืืจื•ื•ืืก ื˜ื•ื˜ ืขืก ืึทืจื‘ืขื˜?").

ื“ื™ ื™ืงืขืจ ืคื•ืŸ ืžืึธื“ืขืจืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืื™ื– ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืึท ืฉืœื™ืกืœ ืคึผืึธืจ (ืฆื•ื•ื™ื™ ื–ื™ื™ืขืจ ืœืึทื ื’ ืกื˜ืจื™ื ื’ืก ืคื•ืŸ ืื•ืชื™ื•ืช).

ืื™ื™ืŸ "ืฉืœื™ืกืœ" ืื™ื– ืคึผืจื™ื•ื•ืึทื˜, ื“ื™ ืื ื“ืขืจืข ืฉืœื™ืกืœ ืื™ื– "ืฆื™ื‘ื•ืจ". ืžื™ืจ ื”ืึทืœื˜ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ื–ื™ื™ืขืจ ืงืขืจืคืึทืœื™ ืกื•ื“. ืžื™ืจ ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืฆื• ืึทืœืขืžืขืŸ.

ื ื™ืฆืŸ ืึท ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ, ืื™ืจ ืงืขื ืขืŸ ืขื ืงืจื™ืคึผื˜ ืึท ืฉื˜ืจื™ืงืœ ืคื•ืŸ ื˜ืขืงืกื˜ ืึทื–ื•ื™ ืึทื– ื‘ืœื•ื™ื– ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืงืขื ืขืŸ ื“ืขืงืจื™ืคึผื˜ ืขืก.
ื ื•, ื“ืึธืก ืื™ื– ื“ื™ ื’ืื ืฆืข ื™ืงืขืจ ืคื•ืŸ ื“ื™ ื˜ืขื›ื ืึธืœืึธื’ื™ืข.

ืฉืจื™ื˜ #1 - ื”ื˜ื˜ืคึผืก ื–ื™ื™ื˜ืœืขืš.
ื•ื•ืขืŸ ืึทืงืกืขืกื™ื ื’ ืึท ืคึผืœืึทืฅ, ื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ ืœืขืจื ื˜ ืคื•ืŸ ื“ื™ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืึทื– ื“ื™ ืคึผืœืึทืฅ ืื™ื– https ืื•ืŸ ื“ืขืจื™ื‘ืขืจ ืจื™ืงื•ื•ืขืก ืึท ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ื“ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ื’ื™ื˜ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ. ื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ ื ื™ืฆื˜ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืฆื• ืขื ืงืจื™ืคึผื˜ ื“ื™ ื”ื˜ื˜ืคึผ-ื‘ืขื˜ืŸ ืื•ืŸ ืฉื™ืงืŸ ืขืก.
ื“ืขืจ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืึท ื”ื˜ื˜ืคึผ-ื‘ืขื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ืขื ืขืŸ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ื™ ื•ื•ืืก ื”ืึธื‘ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ, ื“ืึธืก ืื™ื– ื‘ืœื•ื™ื– ื“ื™ ืกืขืจื•ื•ืขืจ ืฆื• ื•ื•ืึธืก ื“ื™ ื‘ืงืฉื” ืื™ื– ื’ืขืžืื›ื˜.
ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ ื›ึผื•ืœืœ ืœืคึผื—ื•ืช ืึท URI. ื“ืขืจื™ื‘ืขืจ, ืื•ื™ื‘ ืึท ืžื“ื™ื ื” ืื™ื– ื˜ืจื™ื™ื ื’ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ืึทืงืกืขืก ื ื™ืฉื˜ ืฆื• ื“ื™ ื’ืื ืฆืข ืคึผืœืึทืฅ, ืึธื‘ืขืจ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืœืึทื˜, ื“ืึธืก ืื™ื– ืื•ืžืžืขื’ืœืขืš ืฆื• ื˜ืึธืŸ ืคึฟืึทืจ https ื–ื™ื™ื˜ืœืขืš.

ืฉืจื™ื˜ #2 - ื™ื ืงืจื™ืคึผื˜ื™ื“ ืขื ื˜ืคืขืจ.
ื“ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ื’ื™ื˜ ืึทืŸ ืขื ื˜ืคืขืจ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ื›ื˜ ืœื™ื™ืขื ืขืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’.
ื“ื™ ืœื™ื™ื–ื•ื ื’ ืื™ื– ื’ืึธืจ ืคึผืฉื•ื˜ - ื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ ืœืึธื•ืงืึทืœื™ ื“ื–ืฉืขื ืขืจื™ื™ืฅ ื“ื™ ื–ืขืœื‘ืข ืคึผืจื™ื•ื•ืึทื˜-ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคึผืึธืจ ืคึฟืึทืจ ื™ืขื“ืขืจ https ืคึผืœืึทืฅ.
ืื•ืŸ ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ื“ื™ ื‘ืขื˜ืŸ ืคึฟืึทืจ ื“ื™ ืคึผืœืึทืฅ ืก ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ, ืขืก ืกืขื ื“ื– ื–ื™ื™ืŸ ื”ื™ื’ืข ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ื“ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ื’ืขื“ืขื ืงื˜ ืขืก ืื•ืŸ, ื•ื•ืขืŸ ืฉื™ืงื˜ ื”ื˜ื˜ืคึผ-ืขื ื˜ืคืขืจ, ืขื ืงืจื™ืคึผื˜ ืขืก ืžื™ื˜ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคื•ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืงืœื™ืขื ื˜.
ืื™ืฆื˜ http-ืขื ื˜ืคืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ืขืงืจื™ืคึผื˜ื™ื“ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืก ื‘ืœืขื˜ืขืจืขืจ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ (ื“ืึธืก ืื™ื–, ื“ืขืจ ืงืœื™ืขื ื˜ ื–ื™ืš).

ืฉืจื™ื˜ ื ื•ืž 3 - ื’ืจื™ื ื“ืŸ ืึท ื–ื™ื›ืขืจ ืงืฉืจ ื“ื•ืจืš ืึท ืฆื™ื‘ื•ืจ ืงืึทื ืึทืœ.
ืขืก ืื™ื– ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื‘ื™ื™ึทืฉืคึผื™ืœ ื ื•ืž 2 - ื’ืึธืจื ื™ืฉื˜ ืคึผืจื™ื•ื•ืขื ืฅ ื’ืขื–ื•ื ื˜-ื•ื•ื™ืฉืขืจื– ืคื•ืŸ ื™ื ื˜ืขืจืกืขืคึผื˜ื™ื ื’ ืึท ื”ื˜ื˜ืคึผ-ื‘ืขื˜ืŸ ืื•ืŸ ืจืขื“ืึทื’ื™ืจืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ืื–ื•ื™, ื“ื™ ื™ื ื˜ืขืจืžื™ื“ื™ืขืจื™ ื•ื•ืขื˜ ืงืœืืจ ื–ืขืŸ ืึทืœืข ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื’ืขืฉื™ืงื˜ ืื•ืŸ ื‘ืืงื•ืžืขืŸ ืึทืจื˜ื™ืงืœืขืŸ ื‘ื™ื– ื“ื™ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ.
ื“ื™ ื”ืึทื ื“ืœื™ื ื’ ืžื™ื˜ ื“ืขื ืื™ื– ื’ืึธืจ ืคึผืฉื•ื˜ - ื ืึธืจ ืฉื™ืงืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ืก ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ื•ื•ื™ ืึท ืึธื ื–ืึธื’ ื™ื ืงืจื™ืคึผื˜ื™ื“ ืžื™ื˜ ื“ื™ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืก ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ื“ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืขืจืฉื˜ืขืจ ืกืขื ื“ื– ืึท ืขื ื˜ืคืขืจ ื•ื•ื™ "ื“ื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืื™ื– ื•ื•ื™ ื“ืึธืก" ืื•ืŸ ืขื ืงืจื™ืคึผื˜ ื“ืขื ืึธื ื–ืึธื’ ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ ืงื•ืงื˜ ืื•ื™ืฃ ื“ืขื ืขื ื˜ืคืขืจ - ืื•ื™ื‘ ื“ืขืจ ืึธื ื–ืึธื’ "ื“ื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืื™ื– ื•ื•ื™ ื“ืึธืก" ืื™ื– ื‘ืืงื•ืžืขืŸ - ื“ืึธืก ืื™ื– ืึท 100% ื’ืึทืจืึทื ื˜ื™ืจืŸ ืึทื– ื“ืขืจ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืื™ื– ื–ื™ื›ืขืจ.
ื•ื•ื™ ื–ื™ื›ืขืจ ืื™ื– ืขืก?
ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืึทื–ืึท ืึท ื–ื™ื›ืขืจ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืึทืงืขืจื– ืžื™ื˜ ืึท ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ืคึผื™ื ื’ * 2. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ 20ms.
ื“ืขืจ ืึทื˜ืึทืงืขืจ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืคื•ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืจื˜ื™ืขืก ืื™ืŸ ืฉื˜ื™ื™ึทื’ืŸ. ืึธื“ืขืจ ื’ืขืคึฟื™ื ืขืŸ ืึท ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืื™ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืžื™ืœื™ืกืขืงืึทื ื“ื–.
ื›ืึทืงื™ื ื’ ืื™ื™ืŸ ืžืึธื“ืขืจืŸ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ื•ื•ืขื˜ ื ืขืžืขืŸ ื“ืขืงืึทื“ืขืก ืื•ื™ืฃ ืึท ืกื•ืคึผืขืจืงืึทืžืคึผื™ื•ื˜ืขืจ.

ืฉืจื™ื˜ #4 - ืขืคื ื˜ืœืขืš ื“ืึทื˜ืึทื‘ื™ื™ืก ืคื•ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ.
ื“ืึธืš, ืื™ืŸ ื“ืขืจ ื’ืื ืฆืขืจ ื’ืขืฉื™ื›ื˜ืข ืขืก ืื™ื– ืึท ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืคึฟืึทืจ ืึท ืึทื˜ืึทืงืขืจ ืฆื• ื–ื™ืฆืŸ ืื•ื™ืฃ ื“ื™ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืฆื•ื•ื™ืฉืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ.
ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขื ืขืŸ ืคืึทืจื”ื™ื˜ืŸ ืฆื• ื–ื™ื™ืŸ ื“ืขืจ ืกืขืจื•ื•ืขืจ, ืื•ืŸ ื“ืขืจ ืกืขืจื•ื•ืขืจ ืงืขืŸ ืคืึทืจื”ื™ื˜ืŸ ืฆื• ื–ื™ื™ืŸ ื“ืขืจ ืงืœื™ืขื ื˜. ืื•ืŸ ืขืžื™ืึทืœื™ื™ื˜ ืึท ืคึผืึธืจ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื‘ื™ื™ื“ืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก.
ื“ืขืจื ืึธืš ื“ืขืจ ืึทื˜ืึทืงืขืจ ื•ื•ืขื˜ ื–ืขืŸ ืึทืœืข ื“ื™ ืคืึทืจืงืขืจ ืื•ืŸ ืงืขื ืขืŸ "ืจืขื“ืึทื’ื™ืจืŸ" ื“ืขื ืคืึทืจืงืขืจ.
ืœืžืฉืœ, ื˜ื•ื™ืฉืŸ ื“ื™ ืึทื“ืจืขืก ื•ื•ื• ืฆื• ืฉื™ืงืŸ ื’ืขืœื˜ ืึธื“ืขืจ ื ืึธื›ืžืึทื›ืŸ ื“ื™ ืคึผืึทืจืึธืœ ืคื•ืŸ ืึธื ืœื™ื™ืŸ ื‘ืึทื ืงื™ื ื’ ืึธื“ืขืจ ืคืึทืจืฉืคึผืึทืจืŸ "ืึทื‘ื“ื–ืฉืขืงืฉืึทื ืึทื‘ืึทืœ" ืื™ื ื”ืึทืœื˜.
ืฆื• ืงืึทืžื‘ืึทื˜ ืึทื–ืึท ืึทื˜ืึทืงืขืจื–, ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ืขืคื ื˜ืœืขืš ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื˜ ืขืคื ื˜ืœืขืš ืฉืœื™ืกืœืขืŸ ืคึฟืึทืจ ื™ืขื“ืขืจ https ืคึผืœืึทืฅ.
ื™ืขื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ "ื•ื•ื™ืกืŸ" ื•ื•ืขื’ืŸ ื“ื™ ืขืงื–ื™ืกื˜ืขื ืฅ ืคื•ืŸ ื•ื•ืขื’ืŸ 200 ืึทื–ืึท ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–. ื“ืึธืก ืื™ื– ืคืึทืจ-ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ื™ืขื“ืขืจ ื‘ืœืขื˜ืขืจืขืจ.
"ื•ื•ื™ืกืŸ" ืื™ื– ื‘ืึทืงื˜ ื“ื•ืจืš ืึท ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคื•ืŸ ื™ืขื“ืขืจ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. ืึทื– ืื™ื–, ื“ื™ ืงืฉืจ ืฆื• ื™ืขื“ืขืจ ืกืคึผืขืฆื™ืคื™ืฉ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืคื™ื™ื™ืง.

ืื™ืฆื˜ ืขืก ืื™ื– ืึท ืคึผืฉื•ื˜ ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ SSL ืคึฟืึทืจ https.
ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ื™ื™ืŸ ืžืึทืจืš, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืœืึธืจ ื•ื•ื™ ื“ื™ ืกืคึผืขืฆื™ืขืœ ืกืขืจื•ื•ื™ืกืขืก ืงืขื ืขืŸ ื›ืึทืง ืขืคึผืขืก ืื™ืŸ ื“ืขื ืกื˜ืจื•ืงื˜ื•ืจ. ืื‘ืขืจ ืขืก ื•ื•ืขื˜ ืงืึธืกื˜ืŸ ื–ื™ื™ ืžืึทื ืกื˜ืจืึทืก ื”ืฉืชื“ืœื•ืช.
ืื•ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ื– ืงืœืขื ืขืจืขืจ ื•ื•ื™ ื“ื™ NSA ืึธื“ืขืจ CIA - ืขืก ืื™ื– ื›ึผืžืขื˜ ืื•ืžืžืขื’ืœืขืš ืฆื• ื›ืึทืง ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืžื“ืจื’ื” ืคื•ืŸ ืฉื•ืฅ, ืืคื™ืœื• ืคึฟืึทืจ ื•ื•ื™ืคึผืก.

ืื™ืš ื•ื•ืขื˜ ืื•ื™ืš ืœื™ื™ื’ืŸ ื•ื•ืขื’ืŸ ssh ืงืึทื ืขืงืฉืึทื ื–. ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ ื“ืึธืจื˜, ืึทื–ื•ื™ ื•ื•ืึธืก ืงืขื ืขืŸ ืื™ืจ ื˜ืึธืŸ? ื“ืขืจ ืขื ื™ืŸ ืื™ื– ืกืึทืœื•ื•ื“ ืื™ืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ.
ืึธืคึผืฆื™ืข ssh-by-password:
ื‘ืขืฉืึทืก ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืฉืจ, ื“ืขืจ ssh ืงืœื™ืขื ื˜ ื–ืึธืœ ื•ื•ืึธืจืขื ืขืŸ ืึทื– ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื ื™ื™ึทืข ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคึฟื•ืŸ ื“ื™ ssh ืกืขืจื•ื•ืขืจ.
ืื•ืŸ ื‘ืขืฉืึทืก ื•ื•ื™ื™ึทื˜ืขืจ ืงืึทื ืขืงืฉืึทื ื–, ืื•ื™ื‘ ื“ื™ ื•ื•ืืจืขื ื•ื ื’ "ื ื™ื™ึทืข ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคึฟื•ืŸ ื“ื™ ssh ืกืขืจื•ื•ืขืจ" ืื™ื– ืืจื•ื™ืก, ื“ืึธืก ื•ื•ืขื˜ ืžื™ื™ื ืขืŸ ืึทื– ื–ื™ื™ ื–ืขื ืขืŸ ื˜ืจื™ื™ื ื’ ืฆื• ืขื•ื–ื“ืจืึธืคึผ ืื•ื™ืฃ ืื™ืจ.
ืึธื“ืขืจ ืื™ืจ ื–ืขื ืขืŸ ื™ื•ื•ื–ื“ืจืึทืคึผื˜ ืื•ื™ืฃ ื“ื™ื™ืŸ ืขืจืฉื˜ืขืจ ืงืฉืจ, ืึธื‘ืขืจ ืื™ืฆื˜ ืื™ืจ ื™ื‘ืขืจื’ืขื‘ืŸ ืžื™ื˜ ื“ื™ ืกืขืจื•ื•ืขืจ ืึธืŸ ื™ื ืขืจืžื™ื“ื™ืขืจื™ื–.
ืึทืงื˜ื•ืึทืœืœื™, ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื“ืขืจ ืคืึทืงื˜ ืคื•ืŸ ื•ื•ื™ืจืขื˜ืึทืคึผื™ื ื’ ืื™ื– ืœื™ื™ื›ื˜, ื’ืขืฉื•ื•ื™ื ื“ ืื•ืŸ ืขืคืขืจื˜ืœืึทืกืœื™ ื’ื™ืœื•ื™, ื“ืขื ื‘ืึทืคืึทืœืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ื‘ืœื•ื™ื– ืื™ืŸ ืกืคึผืขืฆื™ืขืœ ืงืึทืกืขืก ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืงืœื™ืขื ื˜.

ืึธืคึผืฆื™ืข ssh-by-key:
ืžื™ืจ ื ืขืžืขืŸ ืึท ื‘ืœื™ืฅ ืคืึธืจ, ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืคึฟืึทืจ ื“ื™ ssh ืกืขืจื•ื•ืขืจ ืื•ื™ืฃ ืขืก (ืขืก ื–ืขื ืขืŸ ื˜ืขืจืžื™ื ืขืŸ ืื•ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื•ื•ื™ื›ื˜ื™ืง ื ื•ืึทื ืกื™ื– ืคึฟืึทืจ ื“ืขื, ืึธื‘ืขืจ ืื™ืš ืฉืจื™ื™ึทื‘ืŸ ืึท ื‘ื™ืœื“ื•ื ื’ืงืจื™ื™ื– ืคึผืจืึธื’ืจืึทื, ื ื™ืฉื˜ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ื ื•ืฆืŸ).
ืžื™ืจ ืœืึธื–ืŸ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืื•ื™ืฃ ื“ื™ ืžืึทืฉื™ืŸ ื•ื•ื• ื“ืขืจ ssh ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ืŸ ืžื™ืจ ืื•ื™ืš ื”ืึทืœื˜ืŸ ืขืก ืกื•ื“.
ืžื™ืจ ื‘ืจืขื ื’ืขืŸ ื“ื™ ื‘ืœื™ืฅ ืคืึธืจ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ, ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืขืก, ื ืึธื›ืžืึทื›ืŸ ื“ื™ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ, ืื•ืŸ ืคืึทืจื‘ืจืขื ืขืŸ ื“ื™ ื‘ืœื™ืฅ ืคืึธืจ ืื•ืŸ ืฆืขื•ื•ืึทืจืคืŸ ื“ื™ ืืฉ ืฆื• ื“ื™ ื•ื•ื™ื ื˜ (ืึธื“ืขืจ ืœืคึผื—ื•ืช ืคึฟืึธืจืžืึทื˜ ืขืก ืžื™ื˜ ื–ืขืจืึธืก).
ืึทื– ืก ืึทืœืข - ื ืึธืš ืึทื–ืึท ืึท ืึธืคึผืขืจืึทืฆื™ืข ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ืžืžืขื’ืœืขืš ืฆื• ื›ืึทืง ืึทื–ืึท ืึท ืกืฉ ืงืฉืจ. ื“ืึธืš, ืื™ืŸ 10 ื™ืึธืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื–ืขืŸ ืคืึทืจืงืขืจ ืื•ื™ืฃ ืึท ืกื•ืคึผืขืจืงืึทืžืคึผื™ื•ื˜ืขืจ - ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืึท ืึทื ื“ืขืจืฉ ื’ืขืฉื™ื›ื˜ืข.

ืื™ืš ื‘ื™ืŸ ืึทื ื˜ืฉื•ืœื“ื™ืงื˜ ืคึฟืึทืจ ื“ื™ ืึธืคื˜ืึธืคึผื™ืง.

ืึทื–ื•ื™ ืื™ืฆื˜ ืึทื– ื“ื™ ื˜ืขืึธืจื™ืข ืื™ื– ื‘ืืงืื ื˜. ืื™ืš ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ืขื’ืŸ ื“ื™ ืœื•ื™ืคืŸ ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท SSL ื‘ืึทื•ื•ื™ื™ึทื–ืŸ.

ื ื™ืฆืŸ "ืึธืคึผืขื ืกืกืœ ื’ืขื ืจืกืึท" ืžื™ืจ ืžืึทื›ืŸ ืึท ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืื•ืŸ "ื‘ืœืึทื ืงืก" ืคึฟืึทืจ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ.
ืžื™ืจ ืฉื™ืงืŸ ื“ื™ "ื‘ืœืึทื ืงืก" ืฆื• ืึท ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืคื™ืจืžืข, ืฆื• ื•ื•ืึธืก ืžื™ืจ ื‘ืึทืฆืึธืœืŸ ื‘ืขืขืจืขืš $ 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.chained.crt
domain1.com - ืคืขืœื“ ื ืึธืžืขืŸ.
2018 ืื™ื– ื“ื™ ื™ืึธืจ ืคื•ืŸ ืฉืœื™ืกืœ ืฉืึทืคื•ื ื’.
chained - ื‘ืึทืฆื™ื™ื›ืขื ื•ื ื’ ืึทื– ืขืก ืื™ื– ืึท ืงื™ื™ื˜ ืคื•ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ (ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืื•ื ื“ื–ืขืจ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืื•ืŸ ื“ื™ ืžื ื•ื—ื” ื–ืขื ืขืŸ ื•ื•ืึธืก ื’ืขืงื•ืžืขืŸ ืคื•ืŸ ื“ื™ ืคื™ืจืžืข ื•ื•ืึธืก ืืจื•ื™ืก ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ).
crt - ื‘ืึทืฆื™ื™ื›ืขื ื•ื ื’ ืึทื– ืขืก ืื™ื– ืึท ืคืึทืจื˜ื™ืง ื‘ืึทื•ื•ื™ื™ึทื–ืŸ (ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืžื™ื˜ ื˜ืขื›ื ื™ืฉ ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ).

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

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืคึผืœื•ื’ื™ืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ SPF ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ืื•ืชื™ื•ืช.

# 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 ืกืงืจื™ืคึผืก ืื™ืŸ ื“ื™ ืึทืœื˜ ืงืึธื“. ื“ืขืจื ืึธืš ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื ืึธืžืขืŸ ืงื•ืžื˜ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ.

ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ืฉื•ื™ืŸ ื‘ืจื™ื™ื˜ - ืื™ืš ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื–ื™ื™ืŸ ื“ื™ืกื˜ืจืึทืงื˜ืึทื“ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ nginx + fpm.

ื‘ืขืงื™ืฆืขืจ, ืคึฟืึทืจ ื™ืขื“ืขืจ ืคึผืœืึทืฅ ืžื™ืจ ืฉื˜ืขืœืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืœื™ื ื•ืงืก ื‘ืึทื ื™ืฆืขืจ ื‘ืึทื–ื™ืฆืขืจ. ืื•ืŸ ืึทืงืึธืจื“ื™ื ื’ืœื™ ื“ื™ื™ืŸ fpm-ื‘ืขืงืŸ.

Fpm-pool ื ื™ืฆื˜ ืงื™ื™ืŸ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹php (ืขืก ืื™ื– ื’ืจื•ื™ืก ื•ื•ืขืŸ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกืขืจื•ื•ืขืจ ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ php ืื•ืŸ ืืคื™ืœื• ืคืึทืจืฉื™ื“ืขื ืข php.ini ืคึฟืึทืจ ืืจื•ืžื™ืงืข ื–ื™ื™ื˜ืœืขืš ืึธืŸ ืคืจืื‘ืœืขืžืขืŸ).

ืึทื–ื•ื™, ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืœื™ื ื•ืงืก ื‘ืึทื ื™ืฆืขืจ "ื•ื•ื•ื•ื•ื•-ื“ืึธืžืึทื™ืŸ2" ื”ืื˜ ืึท ื•ื•ืขื‘ื–ื™ื™ื˜ืœ 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

ื’ืขื‘ืŸ SPF ื˜ืฉืขืง.

apt-get install postfix-policyd-spf-python

ืœืึธืžื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืขื ืคึผืขืงืœ ืคึฟืึทืจ SPF ื˜ืฉืขืงืก ืื•ื™ื‘ืŸ.

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 ืื™ื– ื“ืขืจ ืคึผืจืึธืฆืขืก ืคื•ืŸ ืจื™ืกื™ื•ื•ื™ื ื’ ืึท ืฉื˜ืจื™ืงืœ ื“ื•ืจืš IP ืึทื“ืจืขืก.
ืื•ืŸ ืคึฟืึทืจ ืคึผืึธืกื˜, ื“ืขื ืฉื˜ืจื™ืš ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทื– ื“ื™ ื”ืขืœืึธ ืคึผื•ื ืงื˜ ืฉื•ื•ืขื‘ืขืœืขืš ื“ื™ ืจื“ื ืก ืคื•ืŸ ื“ื™ ืึทื“ืจืขืก ืคึฟื•ืŸ ื•ื•ืึธืก ื“ื™ E- ื‘ืจื™ื•ื• ืื™ื– ื’ืขืฉื™ืงื˜.

ืื•ื™ื‘ ื“ื™ ื”ืขืœืึธ ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ื‘ืœื™ืฆืคึผืึธืกื˜ ืคืขืœื“ ืื•ื™ืฃ ื‘ื™ื›ืึทืฃ ืคื•ืŸ ื•ื•ืขืžืขืŸ ื“ืขืจ ื‘ืจื™ื•ื• ืื™ื– ื’ืขืฉื™ืงื˜, ืกืคึผืึทื ืคื•ื ืงื˜ืŸ ื–ืขื ืขืŸ ืึทื•ื•ืึธืจื“ื™ื“.

ื”ืขืœืึธ ืงืขืŸ ื ื™ืฉื˜ ื’ืœื™ื™ึทื›ืŸ ืจื“ื ืก - ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืกืคึผืึทื ืคื•ื ืงื˜ืŸ ื–ืขื ืขืŸ ืึทื•ื•ืึธืจื“ื™ื“.
ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ื™ืขื“ืขืจ ืคืขืœื“ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข IP ืึทื“ืจืขืก.
ืคึฟืึทืจ OVH - ืื™ืŸ ื“ื™ ืงืึทื ืกืึธื•ืœ ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืจื“ื ืก.
ืคึฟืึทืจ tech.ru - ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื™ื– ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืฉื˜ื™ืฆืŸ.
ืคึฟืึทืจ AWS, ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื™ื– ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืฉื˜ื™ืฆืŸ.
"inet_protocols" ืื•ืŸ "smtp_bind_address6" - ืžื™ืจ ื’ืขื‘ืŸ IPv6 ืฉื˜ื™ืฆืŸ.
ืคึฟืึทืจ IPv6 ืื™ืจ ืื•ื™ืš ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื’ื™ืกื˜ืจื™ืจืŸ ืจื“ื ืก.
"syslog_name" - ืื•ืŸ ื“ืึธืก ืื™ื– ืคึฟืึทืจ ื™ื– ืคื•ืŸ ืœื™ื™ืขื ืขืŸ ืœืึธื’ืก.

ืงื•ื™ืคืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื“ืึธ.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืคึผืึธืกื˜ืคื™ืงืก + ื“ืึธื•ื•ืขืงืึธื˜ ืœื™ื ืง ื“ืึธ.

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ SPF.

================================

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
}

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ssl. ืžื™ืจ ืึธื ื•ื•ื™ื™ึทื–ืŸ ืึทื– ssl ืื™ื– ืคืืจืœืื ื’ื˜.
ืื•ืŸ ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ื–ื™ืš. ืื•ืŸ ืึท ื•ื•ื™ื›ื˜ื™ืง ื“ืขื˜ืึทืœ ืื™ื– ื“ื™ "ื”ื™ื’ืข" ื“ื™ืจืขืงื˜ื™ื•ื•. ื™ื ื“ื™ืงื™ื™ืฅ ื•ื•ืึธืก ssl ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ื ื•ืฆืŸ ื•ื•ืขืŸ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• ื•ื•ืึธืก ื”ื™ื’ืข IPv4.

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, IPv6 ืื™ื– ื ื™ืฉื˜ ืงืึทื ืคื™ื’ื™ืขืจื“ ื“ืึธ, ืื™ืš ื•ื•ืขื˜ ืคืึทืจืจื™ื›ื˜ืŸ ื“ืขื ืึธื•ืžื™ืฉืึทืŸ ืฉืคึผืขื˜ืขืจ.
XX.XX.XX.X5 (Domain2) - ืงื™ื™ืŸ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืงืœื™ื™ืึทื ืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ 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
}

ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ sql ื˜ืขืงืขืก ืคึฟืึทืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.
ืื•ืŸ ื“ืขืจ ื˜ืขืงืข ื–ื™ืš ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ื™ ืึท ืื•ืคึฟืŸ ืคื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

ื˜ืขืงืข "/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

ืžื™ืจ ื’ืขื‘ืŸ ืึทื•ื˜ืึธ-ืœืึธื•ื“ื™ื ื’ ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ ื“ื™ื ืกื˜ ื‘ื™ื™ ืœืึธื•ื“ื™ื ื’.

ื˜ืขืงืข "/etc/default/spamassassin":

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 ืžื™ื˜ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ "ืกืึท" ืžื™ื˜ ื“ื™ ืคึผืึทืจืึธืœ "ืคึผืึทืจืึธืœ" (ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืžื™ื˜ ืขืคึผืขืก ื˜ื•ื™ื’ืŸ).

report_safe - ื“ืึธืก ื•ื•ืขื˜ ืฉื™ืงืŸ ืึท ื‘ืึทืจื™ื›ื˜ ืคื•ืŸ ืกืคึผืึทื ื‘ืœื™ืฆืคึผืึธืกื˜ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืึท ื‘ืจื™ื•ื•.
use_bayes ื–ืขื ืขืŸ ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ ืกืขื˜ื˜ื™ื ื’ืก ืคึฟืึทืจ ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ.

ื“ื™ ืจื•ืขืŸ ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ ืกืขื˜ื˜ื™ื ื’ืก ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืคืจื™ืขืจ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ.

ืึทืœื’ืขืžื™ื™ื ืข ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ "ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ".
ื•ื•ืขื’ืŸ ืžืึธื•ื•ื™ื ื’ ื ื™ื™ึท ืกืคึผืึทื ื™ืžื™ื™ืœื– ืฆื• ื“ื™ IMAP "ืกืคึผืึทื" ื˜ืขืงืข.
ื•ื•ืขื’ืŸ ืึท ืคึผืฉื•ื˜ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืึธื•ื•ืขืงืึธื˜ + ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ.
ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืœื™ื™ืขื ืขืŸ ื“ื™ ืกืคึผืึทืžืึทืกืึทืกืกื™ืŸ ืœืขืจื ืขืŸ ื˜ืขืึธืจื™ืข ื•ื•ืขืŸ ืžืึธื•ื•ื™ื ื’ ืื•ืชื™ื•ืช ืื™ืŸ ื™ืžืึทืคึผ ืคืึธืœื“ืขืจืก (ืื•ืŸ ืื™ืš ื˜ืึธืŸ ื ื™ืฉื˜ ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืฆื• ื ื•ืฆืŸ ืขืก).

============= ืึทืคึผืขืœื™ืจืŸ ืฆื• ื“ื™ ืงื”ืœ =============

ืื™ืš ื•ื•ืึธืœื˜ ืื•ื™ืš ื•ื•ื™ ืฆื• ื•ื•ืึทืจืคืŸ ืึท ื’ืขื“ืึทื ืง ืื™ืŸ ื“ื™ ืงื”ืœ ื•ื•ื™ ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžื“ืจื’ื” ืคื•ืŸ ืคืึธืจื•ื•ืขืจื“ื™ื“ ื‘ืจื™ื•ื•. ื–ื™ื ื˜ ืื™ืš ื‘ื™ืŸ ืึทื–ื•ื™ ื˜ื™ืฃ ืคืึทืจื˜ื™ืคื˜ ืื™ืŸ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ืคึผืึธืกื˜.

ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื•ื™ืฃ ื–ื™ื™ืŸ ืงืœื™ืขื ื˜ (ืึทื•ื˜ืœื•ืง, ื˜ืึทื ื“ืขืจื‘ื™ืจื“, ื‘ืœืขื˜ืขืจืขืจ-ืคึผืœื•ื’ื™ืŸ, ...). ืฆื™ื‘ื•ืจ ืื•ืŸ ืคึผืจื™ื•ื•ืึทื˜. ืฆื™ื‘ื•ืจ - ืฉื™ืงืŸ ืฆื• ื“ื ืก. ืคึผืจื™ื•ื•ืึทื˜ - ืจืึทื˜ืขื•ื•ืขืŸ ืื•ื™ืฃ ื“ืขื ืงืœื™ืขื ื˜. ืžืขื™ืœ ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืœื˜ ืงืขื ืขืŸ ืฆื• ื ื•ืฆืŸ ืึท ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืฆื• ืฉื™ืงืŸ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืึทืงื•ืžืขืจ.

ืื•ืŸ ืฆื• ื‘ืึทืฉื™ืฆืŸ ืงืขื’ืŸ ืกืคึผืึทื ืžื™ื˜ ืึทื–ืึท ืื•ืชื™ื•ืช (ื™ืึธ, ื“ื™ ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ื–ืขืŸ ื“ื™ ืื™ื ื”ืึทืœื˜) - ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืงืขื ืขืŸ 3 ื›ึผืœืœื™ื:

  1. ืžืึทื ื“ืึทื˜ืึธืจื™ ืคืึทืงื˜ื™ืฉ DKIM ื›ืกื™ืžืข, ืžืึทื ื“ืึทื˜ืึธืจื™ ืกืคึผืฃ, ืžืึทื ื“ืึทื˜ืึธืจื™ ืจื“ื ืก.
  2. ื ื ืขื•ืจืึทืœ ื ืขืฅ ืื•ื™ืฃ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ืึทื ื˜ื™ืกืคึผืึทื ื˜ืจื™ื™ื ื™ื ื’ + ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืขืก ืื•ื™ืฃ ื“ืขืจ ืงืœื™ืขื ื˜ ื–ื™ื™ึทื˜.
  3. ื“ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึทื–ื•ื™ ืึทื– ื“ื™ ืฉื™ืงื˜ ื–ื™ื™ึทื˜ ืžื•ื–ืŸ ืคืึทืจื‘ืจืขื ื’ืขืŸ 100 ืžืืœ ืžืขืจ ืงืคึผื• ืžืึทื›ื˜ ืื•ื™ืฃ ืขื ืงืจื™ืคึผืฉืึทืŸ ื•ื•ื™ ื“ื™ ืจื™ืกื™ื•ื•ื™ื ื’ ื–ื™ื™ึทื˜.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืฆื™ื‘ื•ืจ ื‘ืจื™ื•ื•, ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึท ื ืึธืจืžืึทืœ ืคืึธืจืฉืœืึธื’ ื‘ืจื™ื•ื• "ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ื–ื™ื›ืขืจ ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ." ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื‘ืื ื•ืฆืขืจ ( ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ ) ืฉื™ืงื˜ ืึท ื‘ืจื™ื•ื• ืžื™ื˜ ืึท ืึทื˜ืึทื˜ืฉืžืึทื ื˜ ืฆื• ืืŸ ืื ื“ืขืจ ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ. ื“ืขืจ ื‘ืจื™ื•ื• ื›ึผื•ืœืœ ืึท ื˜ืขืงืกื˜ ืคืึธืจืฉืœืึธื’ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืึท ื–ื™ื›ืขืจ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืคึฟืึทืจ ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ ืื•ืŸ ื“ืขืจ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคื•ืŸ ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ื“ื™ ื‘ืจื™ื•ื•ืงืึทืกื˜ืŸ (ืžื™ื˜ ืึท ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืื•ื™ืฃ ื“ื™ ืงืœื™ืขื ื˜ ื–ื™ื™ึทื˜).

ืื™ืจ ืงืขื ืขืŸ ืืคื™ืœื• ืžืึทื›ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืกืคึผืึทืกื™ืคื™ืงืœื™ ืคึฟืึทืจ ื™ืขื“ืขืจ ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ. ื“ืขืจ ื‘ืึทืงื•ืžืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึธื ื ืขืžืขืŸ ื“ืขื ืคืึธืจืฉืœืึธื’ ืื•ืŸ ืฉื™ืงืŸ ื–ื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ (ืื•ื™ืš ื’ืขืžืื›ื˜ ืกืคึผืึทืกื™ืคื™ืงืœื™ ืคึฟืึทืจ ื“ืขื ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ). ื•ื•ื™ื™ึทื˜ืขืจ, ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทื ื™ืฆืขืจ ืกืขื ื“ื– ืึท ืกืขืจื•ื•ื™ืก ืงืึธื ื˜ืจืึธืœ ื‘ืจื™ื•ื• (ืขื ืงืจื™ืคึผื˜ื™ื“ ืžื™ื˜ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืคื•ืŸ ื“ื™ ืจื’ืข ื‘ืึทื ื™ืฆืขืจ) - ืื•ื™ืฃ ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก ื“ื™ ืจื’ืข ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื’ืขื’ืจื™ื ื“ืขื˜ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ ืคืึทืจืœืึธื–ืœืขืš. ื“ืขืจื ืึธืš, ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ ื‘ืึทื ื™ืฆืขืจ ืกืขื ื“ื– ืึท ืงืึธื ื˜ืจืึธืœ ื‘ืจื™ื•ื• - ืื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืื•ื™ืš ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื’ืขืฉืืคืŸ ืงืึทื ืึทืœ ื–ื™ื›ืขืจ.

ืฆื• ืงืึทืžื‘ืึทื˜ ื“ื™ ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’, ื“ืขืจ ืคึผืจืึธื˜ืึธืงืึธืœ ืžื•ื–ืŸ ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืžื™ื˜ ืึท ื‘ืœื™ืฅ ืคืึธืจ.

ืื•ืŸ ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ื–ืึทืš ืื™ื– ืึทื– ืึทืœืฅ ืึทืจื‘ืขื˜ (ื“ื™ ืงืฉื™ื ืื™ื– "ื•ื•ืขืจ ื•ื•ืขื˜ ื‘ืึทืฆืึธืœืŸ ืคึฟืึทืจ ืขืก?"):
ืึทืจื™ื™ึทืŸ ืคึผืึธื•ืกื˜ืึทืœ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืกื˜ืึทืจื˜ื™ื ื’ ื‘ื™ื™ึท $ 10 ืคึฟืึทืจ 3 ื™ืึธืจ. ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ื“ื™ ืกืขื ื“ืขืจ ืฆื• ืึธื ื•ื•ื™ื™ึทื–ืŸ ืื™ืŸ ื“ื™ ื“ื ืก ืึทื– "ืžื™ื™ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ื“ืึธืจื˜." ืื•ืŸ ื–ื™ื™ ื•ื•ืขืœืŸ ื’ืขื‘ืŸ ืื™ืจ ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืึท ื–ื™ื›ืขืจ ืงืฉืจ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ึทื˜, ืึทืงืกืขืคึผื˜ื™ื ื’ ืึทื–ืึท ืงืึทื ืขืงืฉืึทื ื– ืื™ื– ืคืจื™ื™.
Gmail ืื™ื– ืœืขืกืึธืฃ ืžืึธื ืขื˜ื™ื–ื™ื ื’ ื–ื™ื™ืŸ ื™ื•ื–ืขืจื–. ืคึฟืึทืจ $ 10 ืคึผืขืจ 3 ื™ืึธืจ - ื“ื™ ืจืขื›ื˜ ืฆื• ืฉืึทืคึฟืŸ ื–ื™ื›ืขืจ ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ ื˜ืฉืึทื ืึทืœื–.

============= ืžืกืงื ื =============

ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ื’ืื ืฆืข ืึทืจื˜ื™ืงืœ, ืื™ืš ื’ืขื’ืื ื’ืขืŸ ืฆื• ื“ื™ื ื’ืขืŸ ืึท ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืกืขืจื•ื•ืขืจ ืคึฟืึทืจ ืึท ื—ื•ื“ืฉ ืื•ืŸ ืงื•ื™ืคืŸ ืึท ืคืขืœื“ ืžื™ื˜ ืึท SSL ื‘ืึทื•ื•ื™ื™ึทื–ืŸ.

ืึธื‘ืขืจ ืœืขื‘ืŸ ืฆื•ืฉื˜ืื ื“ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืึทื–ื•ื™ ื“ืขื ืึทืจื•ื™ืกื’ืขื‘ืŸ ื“ืจืึทื’ื“ ืื•ื™ืฃ ืคึฟืึทืจ 2 ื—ื“ืฉื™ื.
ืื•ืŸ ื“ืขืจืคืืจ, ื•ื•ืขืŸ ืื™ืš ื”ืื‘ ื•ื•ื™ื“ืขืจ ื’ืขื”ืื˜ ืคืจื™ื™ืข ืฆื™ื™ื˜, ื”ืื‘ ืื™ืš ื‘ืืฉืœืืกืŸ ืฆื• ืคืืจืขืคื ื˜ืœืขื›ืŸ ื“ืขื ืืจื˜ื™ืงืœ ืื–ื•ื™ ื•ื•ื™ ืขืก ืื™ื–, ื ื™ืฉื˜ ืฆื• ืจื™ื–ื™ืงื™ืจืŸ ืื– ื“ื™ ืืจื•ื™ืกื’ืขื‘ืŸ ื•ื•ืขื˜ ื–ื™ืš ืฉืœืขืคืŸ ื ืืš ื ื™ืืจ.

ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ื’ืึทื ืฅ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืคืจืื’ืขืก ื•ื•ื™ "ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื’ืขื ื•ื’ ื“ืขื˜ืึทืœ", ืขืก ื•ื•ืขื˜ ืžื™ืกื˜ืึธืžืข ื–ื™ื™ืŸ ืฉื˜ืึทืจืงื™ื™ื˜ ืฆื• ื ืขืžืขืŸ ืึท ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ืึท ื ื™ื™ึทืข ืคืขืœื“ ืื•ืŸ ืึท ื ื™ื™ึทืข SSL ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื•ืŸ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืขืก ืื™ืŸ ืืคื™ืœื• ืžืขืจ ื“ืขื˜ืึทืœ ืื•ืŸ, ืจื•ื‘ึฟ ื™ืžืคึผืึธืจื˜ืึทื ื˜ืœื™, ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืึทืœืข ื“ื™ ืคืขืœื ื“ื™ืง ื•ื•ื™ื›ื˜ื™ืง ื“ืขื˜ืึทื™ืœืก.

ืื™ืš ื•ื•ืึธืœื˜ ืื•ื™ืš ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืื•ื™ืฃ ื’ืขื“ืื ืงืขืŸ ื•ื•ืขื’ืŸ ืคึผืึธื•ืกื˜ืึทืœ ืกืขืจื˜ื™ืคื™ืงืึทืฅ. ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ ื“ืขืจ ื’ืขื“ืึทื ืง, ืื™ืš ื•ื•ืขื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืฉื˜ืึทืจืงื™ื™ื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืคึผืœืึทืŸ ืคึฟืึทืจ rfc.

ื•ื•ืขืŸ ืงืึทืคึผื™ื™ื ื’ ื’ืจื•ื™ืก ื˜ื™ื™ืœืŸ ืคื•ืŸ ืึทืŸ ืึทืจื˜ื™ืงืœ, ืฆื•ืฉื˜ืขืœืŸ ืึท ืœื™ื ืง ืฆื• ื“ืขื ืึทืจื˜ื™ืงืœ.
ื•ื•ืขืŸ ืื™ื‘ืขืจื–ืขืฆืŸ ืื™ืŸ ืงื™ื™ืŸ ืื ื“ืขืจืข ืฉืคึผืจืึทืš, ืฆื•ืฉื˜ืขืœืŸ ืึท ืœื™ื ืง ืฆื• ื“ืขื ืึทืจื˜ื™ืงืœ.
ืื™ืš ื•ื•ืขืœ ืืœื™ื™ืŸ ืคืจื•ื‘ื™ืจืŸ ืขืก ืื™ื‘ืขืจืฆื•ื–ืขืฆืŸ ืื•ื™ืฃ ืขื ื’ืœื™ืฉ ืื•ืŸ ืื™ื‘ืขืจืœืื–ืŸ ืงืจื™ื™ื–-ืจืขืคืขืจืขื ืฆืŸ.


ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’