Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž”αž»αžαŸ’αžšαž‘αŸ†αž“αžΎαž”αŸ”
Postfix + Dovecot αŸ” SPF + DKIM + rDNS αŸ” αž‡αžΆαž˜αž½αž™ IPv6.
αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” TSL αŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ‚αž“αž…αŸ’αžšαžΎαž“ - αž•αŸ’αž“αŸ‚αž€αžŠαŸ‚αž›αž˜αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ”
αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžš αž“αž·αž„αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαžαŸ’αž–αžŸαŸ‹αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž”αž»αžαŸ’αžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
αž‚αžΆαŸ†αž‘αŸ’αžšαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžšαžΌαž”αžœαž“αŸ’αžαž…αŸ’αžšαžΎαž“αŸ”
αž‡αžΆαž˜αž½αž™ OpenVPN αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αžαžΆαž˜αžšαž™αŸˆ IPv4 αž“αž·αž„αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹ IPv6 αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž…αž„αŸ‹β€‹αžšαŸ€αž“β€‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆβ€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡β€‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž…αž„αŸ‹β€‹αžŠαŸ†αž‘αžΎαž„β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž”αŸ‚αž”β€‹αž“αŸαŸ‡ αž“αŸ„αŸ‡β€‹αž’αžαŸ’αžαž”αž‘β€‹αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€αŸ”

αž’αžαŸ’αžαž”αž‘αž˜αž·αž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž–αž“αŸ’αž™αž›αŸ‹αž‚αŸ’αžšαž”αŸ‹αž›αž˜αŸ’αž’αž·αžαž‘αŸαŸ” αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž‘αŸ…αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž¬αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αžΊαž‡αžΆαž€αŸ’αžαžΈαžŸαž»αž”αž·αž“αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αŸ” αž“αŸαŸ‡αž’αžΆαž…αžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ…αžŠαžΌαž…αž‡αžΆαž›αŸ’αž„αž„αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ IMHO αžœαžΆαž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αžΆαžšαžŸαŸ’αžšαž˜αŸƒαž…αž„αŸ‹αž”αžΆαž“αžšαžαž™αž“αŸ’αžαžαŸ’αž˜αžΈαž–αžΈαž˜αŸ‰αžΆαž€αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαž‘αŸ…αž‘αŸ€αžαŸ”

αž˜αžΆαž“αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ IPv6 αŸ” αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž•αŸ’αž“αŸ‚αž€αž–αŸαžαŸŒαž˜αžΆαž“αžœαž·αž‘αŸ’αž™αžΆαžαŸ’αžšαžΌαžœαžšαŸ€αž“αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžαŸ’αž˜αžΈαŸ—αž‡αžΆαž“αž·αž…αŸ’αž… αžŠαžΎαž˜αŸ’αž”αžΈαžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αžαŸ” αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž…αŸ†αžŽαŸ‚αž€β€‹αžαž·αž…αžαž½αž…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαž™αž»αž‘αŸ’αž’β€‹αž”αŸ’αžšαž†αžΆαŸ†αž„β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž…αžΆαž”αŸ‹β€‹αž–αž·αžšαž»αž‘αŸ’αž’αŸ”

αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ OpenVPN αž‚αžΊαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“ IPv6 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αŸ”
αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžšαžΌαž”αžœαž“αŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αž‚αžΊαžαžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž˜αž½αž™ "αž™αžΊαžαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹" αž“αž·αž„αž˜αž½αž™αž‘αŸ€αž "αž›αžΏαž“αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž–αž“αŸ’αž’" αŸ”

αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ Bind αž‚αžΊαžαžΆ ISP αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– αž αžΎαž™αž–αŸαž›αžαŸ’αž›αŸ‡ google αž€αŸαž”αžšαžΆαž‡αŸαž™αž•αž„αžŠαŸ‚αžšαŸ” αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ”

αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘ - αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαžŸαŸαž…αž€αŸ’αžαžΈαž–αŸ’αžšαžΆαž„αž€αžΆαž›αž–αžΈ 10 αžαŸ‚αž˜αž»αž“ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž˜αžΎαž›αžœαžΆαž–αžΈαžšαžŠαž„αžšαž½αž…αž αžΎαž™αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αž€αŸαžŠαŸ„αž™ αž€αŸαžœαžΆαž˜αžΆαž“αž”αŸ’αžšαžΌαž”αžΆαž”αŸŠαžΈαž›αžΈαžαŸαžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž•αž„αžŠαŸ‚αžšαŸ”

αž˜αž·αž“αž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŸαž€αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ†αž”αž»αžαŸ’αžšαž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αžŸαžšαžŸαŸαžšβ€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™β€‹αžŠαžΌαž…β€‹αž‡αžΆ "αž’αŸ’αžœαžΎβ€‹αž”αŸ‚αž”β€‹αž“αŸαŸ‡ αž αžΎαž™β€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€ αž“αŸ…β€‹αž–αŸαž›β€‹αž’αŸ’αžœαžΈβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžŠαžΌαž…β€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αž‚αž½αžšβ€‹αž’αŸ’αžœαžΎ αžŸαžΌαž˜β€‹αž”αŸ„αŸ‡β€‹αžšαž”αžŸαŸ‹β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž…αŸαž‰"αŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ tech.ru αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Colocation αŸ” αžœαžΆαž‚αžΊαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™ OVH, Hetzner, AWS αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž€αž·αž…αŸ’αž…αžŸαž αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž˜αž½αž™ tech.ru αž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αŸ”

Debian 9 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΆαž“ 2 αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ `eno1` αž“αž·αž„ `eno2` αŸ” αž‘αžΈαž˜αž½αž™αž‚αžΊαž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αž‘αžΈαž–αžΈαžšαž‚αžΊαž›αžΏαž“αžšαŸ€αž„αŸ—αžαŸ’αž›αž½αž“αŸ”

αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž‹αž·αžαž·αžœαž“αŸ’αžαž…αŸ†αž“αž½αž“ 3 αž‚αžΊ 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 domains `domain1.com`, `domain2.com`, `domain3.com`αŸ” αž˜αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ `domain1.com` αž“αž·αž„ `domain3.com`αŸ”

αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž‚αžŽαž“αžΈ Google αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžšαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‘αŸ…[αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]` (αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ†αž”αž»αžαŸ’αžš αž“αž·αž„αž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž–αžΈαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ gmail) αŸ”
αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš[αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]`, αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸƒαž’αŸŠαžΈαž˜αŸ‚αž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ gmail αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ” αž αžΎαž™αžœαžΆαž€αž˜αŸ’αžšαžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αž‰αžΎαž’αŸ’αžœαžΈαž˜αž½αž™αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ `[αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]` αžαžΆαž˜αžšαž™αŸˆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αŸ”

αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš[αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]` αžŠαŸ‚αž› Ivanov αž“αžΉαž„αž”αŸ’αžšαžΎαž–αžΈ iPhone αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ”

αž’αŸŠαžΈαž˜αŸ‚αž›αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎαžαŸ’αžšαžΌαžœαžαŸ‚αž‚αŸ„αžšαž–αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž‘αŸ†αž“αžΎαž”αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαž“αŸƒαž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ”
αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš IPv6 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž€αžΆαžšαž•αŸ’αž‰αžΎ αž“αž·αž„αž‘αž‘αž½αž›αžŸαŸ†αž”αž»αžαŸ’αžšαŸ”
αžœαžΆαž‚αž½αžšαžαŸ‚αž˜αžΆαž“ SpamAssassin αžŠαŸ‚αž›αž˜αž·αž“αž›αž»αž”αž’αŸŠαžΈαž˜αŸ‚αž›αŸ” αž αžΎαž™αžœαžΆαž“αžΉαž„αž›αŸ„αž αž¬αžšαŸ†αž›αž„ αž¬αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹αžαž IMAP β€œSpamβ€αŸ”
αž€αžΆαžšαžšαŸ€αž“αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· SpamAssassin αžαŸ’αžšαžΌαžœαžαŸ‚αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ– αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžŸαŸ†αž”αž»αžαŸ’αžšαž‘αŸ…αžαž Spam αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αžšαŸ€αž“αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžŸαŸ†αž”αž»αžαŸ’αžšαž–αžΈαžαž Spam αžœαžΆαž“αžΉαž„αžšαŸ€αž“αž–αžΈαž“αŸαŸ‡αŸ” αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž› SpamAssassin αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αžαžΆαžαžΎαžŸαŸ†αž”αž»αžαŸ’αžšαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαž Spam αžŠαŸ‚αžšαž¬αž‘αŸαŸ”
αžŸαŸ’αž‚αŸ’αžšαžΈαž” PHP αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžŠαŸ‚αž“αžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αŸ”
αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ openvpn αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž”αŸ’αžšαžΎ IPv6 αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“ IPv6 αŸ”

αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœ αžšαž½αž˜αž‘αžΆαŸ†αž„ IPv6 αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ OpenVPN αžŠαŸ‚αž›αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆ IPv4 αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αžαž·αžαž·αž‡αž“αž“αžΌαžœαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IPv6 αž‹αž·αžαž·αžœαž“αŸ’αžαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ IPv6 αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ IPv6 αžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Postfix αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžš + SPF + DKIM + rDNS αž“αž·αž„αžšαž”αžŸαŸ‹αžαžΌαž…αŸ—αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Dovecot αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Multidomain αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ 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 αž“αŸ…αž›αžΎ eno1αŸ”
XX.XX.XX.X1 - IPv4 #2 αž“αŸ…αž›αžΎ eno1αŸ”
XX.XX.XX.X2 - IPv4 #3 αž“αŸ…αž›αžΎ eno1αŸ”
XX.XX.XX.X5 - IPv4 #1 αž“αŸ…αž›αžΎ eno2αŸ”
XX.XX.XX.1 - αž…αŸ’αžšαž€ IPv4 αŸ”
XXXX:XXXX:XXXX:XXXX::/64 - IPv6 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ”
XXXX:XXXX:XXXX:XXXX:1:2::/96 - IPv6 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ eno2 αž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž–αžΈαžαžΆαž„αž€αŸ’αžšαŸ…αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ eno1αŸ”
XXXX:XXXX:XXXX:XXXX::1 β€” IPv6 gateway (αž‚αž½αžšαž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αžαžΆαž“αŸαŸ‡αž’αžΆαž…/αž‚αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžαž»αžŸαž‚αŸ’αž“αžΆαŸ” αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ IPv6 switch)αŸ”
dns-nameservers - 127.0.0.1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰ (αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ bind αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“) αž“αž·αž„ 213.248.1.6 (αž“αŸαŸ‡αž‚αžΊαž˜αž€αž–αžΈ tech.ru)αŸ”

"αžαžΆαžšαžΆαž„ eno1t" αž“αž·αž„ "αžαžΆαžšαžΆαž„ eno2t" - αž’αžαŸ’αžαž“αŸαž™αž“αŸƒαž•αŸ’αž›αžΌαžœ - αž…αŸ’αž”αžΆαž”αŸ‹αž“αŸαŸ‡αž‚αžΊαžαžΆαž…αžšαžΆαž…αžšαžŽαŸαžŠαŸ‚αž›αž…αžΌαž›αžαžΆαž˜αžšαž™αŸˆ eno1 -> αž“αžΉαž„αž…αžΆαž€αž…αŸαž‰αžαžΆαž˜αžšαž™αŸˆαžœαžΆαž αžΎαž™αž…αžšαžΆαž…αžšαžŠαŸ‚αž›αž…αžΌαž›αžαžΆαž˜αžšαž™αŸˆ eno2 -> αž“αžΉαž„αž…αžΆαž€αž…αŸαž‰αžαžΆαž˜αžšαž™αŸˆαžœαžΆαŸ” αž αžΎαž™αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αžΉαž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž’αŸŠαžΈαžŽαžΌαŸ‘αŸ”

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

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡ αž™αžΎαž„αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαžΆαž…αžšαžΆαž…αžšαžŽαŸαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αžŠαŸ‚αž›αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž…αŸ’αž”αžΆαž”αŸ‹αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ "table 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

αž”αŸ’αž›αž»αž€αž“αŸαŸ‡αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ 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 - αž”αžŽαŸ’αžαžΆαž‰αžšαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ†αž‡αžΆαž„ eno1 αŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸ αžœαžΆαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αŸ’αžšαž€ IPv6 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“ OpenVPN αž”αžΆαž“αž‘αŸαŸ”
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 =============

OpenVPN IPv4 αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ iptables αž‘αŸαŸ”

iptables αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαžŠαžΌαž…αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 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 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“ openvpn αŸ”
αž—αžΆαž–αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αž“αŸƒαž…αŸ’αž”αžΆαž”αŸ‹αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αŸ”

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 αž“αž·αž„αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž·αž“αžŸαž˜αžšαž˜αŸ’αž™αž‘αŸαŸ”
αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž–αžΈαžšαž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž–αžΈβ€‹αž”αžΆαž“β€‹αž’αžΆαž“β€‹αž―αž€αžŸαžΆαžšβ€‹αžšαž½αž… αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸβ€‹αž‡αž˜αŸ’αžšαžΎαžŸβ€‹αžŠαŸ†αž”αžΌαž„β€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αž”αŸ’αžšαžΎ 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

αž…αžΌαžšαž™αžΎαž„αžšαŸ€αž”αž…αŸ†αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž“αžΉαž„αž”αž‰αŸ’αž…αžΌαž›αž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš opvn αžαŸ‚αž˜αž½αž™αŸ”

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" αžαŸ’αžšαžΌαžœαžαŸ‚αž‚αŸ’αž˜αžΆαž“αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αŸ”
αž αžΎαž™αžŠαžΆαž€αŸ‹ β€œkey-direction 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

αžαŸ’αž‰αž»αŸ†αž–αž·αž”αžΆαž€αž…αžΆαŸ†αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž‚αŸαžŸαžšαžŸαŸαžšαž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡ netmask = 112 αž˜αžΎαž›αž‘αŸ…αž…αž˜αŸ’αž›αŸ‚αž€ (αžœαžΆαž‚αž½αžšαžαŸ‚αž˜αžΆαž“ 96 αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡) αŸ”
αž αžΎαž™αž”αž»αž–αŸ’αžœαž”αž‘αž‚αžΊαž…αž˜αŸ’αž›αŸ‚αž€αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž”αžŽαŸ’αžαžΆαž‰ tun0 αž‘αŸαŸ”
αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž’αžΈαž‘αŸ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž‘αž»αž€αžœαžΆαž…αŸ„αž›αžŠαžΌαž…αžŠαžΎαž˜αŸ”

cipher DES-EDE3-CBC

αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‘αŸ - αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž“αŸƒαž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸαŸ‡αŸ”

αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ OpenVPN IPv4 αŸ”

αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ OpenVPN IPv6 αŸ”

============= Postfix =============

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹αžŸαŸ†αžαžΆαž“αŸ‹αŸ–

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

αž™αŸ„αž„αžαžΆαž˜αž’αŸ’αž“αž€αžŸαŸ’αžšαž»αž€ Khabrovsk αž”αŸ’αž›αž»αž€αž“αŸαŸ‡αž˜αžΆαž“ "αž–αŸαžαŸŒαž˜αžΆαž“αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž“αž·αž„αž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ" αŸ”αžαŸ’αžšαžΉαž˜αžαŸ‚ 8 αž†αŸ’αž“αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž‡αžΈαž–αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αž‰αž»αŸ†αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› SSL αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž‘αž‘αž½αž›αž™αž€αžŸαŸαžšαžΈαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎ SSL (αžŠαŸ„αž™αž˜αž·αž“αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžš "αžαžΎαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?" αž“αž·αž„ "αž αŸαžαž»αž’αŸ’αžœαžΈαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš?") αŸ”

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αŸ†αž“αžΎαž”αž‚αžΊαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‚αžΌαžŸαŸ„αž˜αž½αž™ (αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαžœαŸ‚αž„αž”αŸ†αž•αž»αžαž–αžΈαžš) αŸ”

"αž€αžΌαž“αžŸαŸ„" αž˜αž½αž™αž‚αžΊαž―αž€αž‡αž“ αžŸαŸ„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‚αžΊ "αžŸαžΆαž’αžΆαžšαžŽαŸˆ" αŸ” αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαžŸαŸ„αž―αž€αž‡αž“αž™αŸ‰αžΆαž„αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“αž‡αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ” αž™αžΎαž„αž…αŸ‚αž€αž…αžΆαž™αž€αžΌαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαž›αŸ‹αž’αŸ’αž“αž€αžšαžΆαž›αŸ‹αž‚αŸ’αž“αžΆαŸ”

αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž’αž€αŸ’αžŸαžšαž˜αž½αž™αžƒαŸ’αž›αžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αžΆαž“αžαŸ‚αž˜αŸ’αž…αžΆαžŸαŸ‹αžŸαŸ„αž―αž€αž‡αž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αžŒαž·αž‚αŸ’αžšαžΈαž”αžœαžΆαž”αžΆαž“αŸ”
αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαŸ”

αž‡αŸ†αž αžΆαž“αž‘αžΈ 1 - αž‚αŸαž αž‘αŸ†αž–αŸαžš https αŸ”
αž“αŸ…αž–αŸαž›αž…αžΌαž›αž”αŸ’αžšαžΎαž‚αŸαž αž‘αŸ†αž–αŸαžš αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαžšαŸ€αž“αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαžαžΆαž‚αŸαž αž‘αŸ†αž–αŸαžšαž‚αžΊ https αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ”
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαž•αŸ’αžαž›αŸ‹αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžŸαŸ†αžŽαžΎαžš http αž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆαŸ”
αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαžŸαŸ†αžŽαžΎαžš http αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΌαž“αžŸαŸ„αž―αž€αž‡αž“ αž–αŸ„αž›αž‚αžΊαž˜αžΆαž“αžαŸ‚αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžŸαŸ†αžŽαžΎαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αŸ”
Http-request αž˜αžΆαž“αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ URI αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸ’αžšαž‘αŸαžŸαž˜αž½αž™αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αžšαž·αžαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž˜αž·αž“αž˜αŸ‚αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ…αž€αžΆαž“αŸ‹αž‘αŸ†αž–αŸαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸ„αŸ‡ αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš https αŸ”

αž‡αŸ†αž αžΆαž“αž‘αžΈ 2 - αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αŸ”
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαž•αŸ’αžαž›αŸ‹αž…αž˜αŸ’αž›αžΎαž™αžŠαŸ‚αž›αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž›αžΎαž•αŸ’αž›αžΌαžœαŸ”
αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αž - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‚αžΌαžŸαŸ„αž―αž€αž‡αž“-αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš https αž“αžΈαž˜αž½αž™αŸ—αŸ”
αž αžΎαž™αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš αžœαžΆαž•αŸ’αž‰αžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ”
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαž…αž„αž…αžΆαŸ†αžœαžΆ αž αžΎαž™αž“αŸ…αž–αŸαž›αž•αŸ’αž‰αžΎ http-response αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”
αž₯αž‘αžΌαžœαž“αŸαŸ‡ http-response αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŒαž·αž‚αŸ’αžšαžΈαž”αž”αžΆαž“αžαŸ‚αžŠαŸ„αž™αž˜αŸ’αž…αžΆαžŸαŸ‹αž“αŸƒ browser private key αžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“ (αž“αŸ„αŸ‡αž‚αžΊαž’αžαž·αžαž·αž‡αž“αžαŸ’αž›αž½αž“αž―αž„)αŸ”

αž‡αŸ†αž αžΆαž“αž‘αžΈ 3 - αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžαžΆαž˜αžšαž™αŸˆαž†αžΆαž“αŸ‚αž›αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ”
αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž›αŸαž 2 - αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžšαžΆαžšαžΆαŸ†αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΆαžαŸ’αž“αžΆαž›αŸ’αž’αž–αžΈαž€αžΆαžšαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αžŸαŸ†αžŽαžΎ http αž“αž·αž„αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸ„αŸ‡αž‘αŸαŸ”
αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αž“αŸ’αžαžšαž€αžΆαžšαžΈαž“αžΉαž„αžƒαžΎαž‰αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž“αžΌαžœαžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎ αž“αž·αž„αž‘αž‘αž½αž› αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αŸ”
αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αž - αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž•αŸ’αž‰αžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž‡αžΆαžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ†αž”αžΌαž„αž•αŸ’αž‰αžΎαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŠαžΌαž…αž‡αžΆ "αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αžΊαžŠαžΌαž…αž“αŸαŸ‡" αž αžΎαž™αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžŸαžΆαžšαž“αŸαŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”
αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž˜αžΎαž›αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” - αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαžΆαžš "αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αžΊαžŠαžΌαž…αž“αŸαŸ‡" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž› - αž“αŸ„αŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž’αžΆαž“αžΆ 100% αžαžΆαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž“αŸαŸ‡αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”
αžαžΎαžœαžΆαž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ‰αž»αžŽαŸ’αžŽαžΆ?
αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ‚αž”αž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž›αŸ’αž”αžΏαž“ ping*2αŸ” αž§αž‘αžΆαž αžšαžŽαŸ 20ms αŸ”
αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžŸαŸ„αž―αž€αž‡αž“αžšαž”αžŸαŸ‹αž—αžΆαž‚αžΈαžŽαžΆαž˜αž½αž™αž‡αžΆαž˜αž»αž“αŸ” αž¬αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαŸ„αž―αž€αž‡αž“αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαž”αžΈαž˜αž·αž›αŸ’αž›αžΈαžœαž·αž“αžΆαž‘αžΈαŸ”
αž€αžΆαžšαž›αž½αž…αž™αž€αžŸαŸ„αž―αž€αž‡αž“αž‘αŸ†αž“αžΎαž”αž˜αž½αž™αž“αžΉαž„αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“αž‘αžŸαžœαžαŸ’αžŸαžšαŸαž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‘αŸ†αž“αžΎαž”αŸ”

αž‡αŸ†αž αžΆαž“αž‘αžΈ 4 - αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ”
αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΏαž„αž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸαŸ‡ αž˜αžΆαž“αž±αž€αžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž’αž„αŸ’αž‚αž»αž™αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž’αžΆαž…αž’αŸ’αžœαžΎαž–αž»αžαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž αžΎαž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αžΆαž…αž’αŸ’αžœαžΎαž–αž»αžαž‡αžΆαž’αžαž·αžαž·αž‡αž“αŸ” αž αžΎαž™αžαŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜αž€αžΌαž“αžŸαŸ„αž˜αž½αž™αž‚αžΌαž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž‘αžΆαŸ†αž„αž–αžΈαžšαŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž“αžΉαž„αžƒαžΎαž‰αž…αžšαžΆαž…αžšαžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž“αžΉαž„αž’αžΆαž… "αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›" αž…αžšαžΆαž…αžšαžŽαŸαž”αžΆαž“αŸ”
αž§αž‘αžΆαž αžšαžŽαŸ αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž•αŸ’αž‰αžΎαž”αŸ’αžšαžΆαž€αŸ‹ αž¬αž…αž˜αŸ’αž›αž„αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž–αžΈαž’αž“αžΆαž‚αžΆαžšαžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž¬αžšαžΆαžšαžΆαŸ†αž„αžαŸ’αž›αžΉαž˜αžŸαžΆαžš "αž˜αž·αž“αž–αŸαž‰αž…αž·αžαŸ’αž"αŸ”
αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš https αž“αžΈαž˜αž½αž™αŸ—αŸ”
αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž“αžΈαž˜αž½αž™αŸ— "αžŠαžΉαž„" αž’αŸ†αž–αžΈαž’αžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ‚αž”αž“αŸαŸ‡αž”αŸ’αžšαž αŸ‚αž› 200 αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž‡αžΆαž˜αž»αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αž“αžΈαž˜αž½αž™αŸ—αŸ”
β€œαž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„β€ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž–αžΈαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž“αžΈαž˜αž½αž™αŸ—αŸ” αž“αŸ„αŸ‡αž‚αžΊαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αžΈαž˜αž½αž™αŸ—αž˜αž·αž“αž’αžΆαž…αž€αŸ’αž›αŸ‚αž„αž”αž“αŸ’αž›αŸ†αž”αžΆαž“αž‘αŸαŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžŸαžΆαž˜αž‰αŸ’αž‰αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎ SSL αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ https αŸ”
αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαžαž½αžšαž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžœαžΆαž“αžΉαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž·αžŸαŸαžŸαž’αžΆαž… hack αž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸαŸ‡αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž“αŸαŸ‡β€‹αž“αžΉαž„β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž–αž½αž€β€‹αž‚αŸβ€‹αž…αŸ†αžŽαžΆαž™β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„β€‹αž™αŸ‰αžΆαž„β€‹αžŸαž˜αŸ’αž”αžΎαž˜αŸ”
αž“αž·αž„αž’αž„αŸ’αž‚αž€αžΆαžšαžαžΌαž…αž‡αžΆαž„ NSA ឬ CIA - αžœαžΆαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžš hack αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚ VIPs αž€αŸαžŠαŸ„αž™αŸ”

αžαŸ’αž‰αž»αŸ†αž€αŸαž“αžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹ ssh αž•αž„αžŠαŸ‚αžšαŸ” αž˜αž·αž“αž˜αžΆαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαžΎαž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž”αžΆαž“? αž”αž‰αŸ’αž αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αž–αžΈαžšαžœαž·αž’αžΈαŸ”
αž‡αž˜αŸ’αžšαžΎαžŸ ssh-by-passwordαŸ–
αž€αŸ†αž‘αž»αž„αž–αŸαž›αž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ†αž”αžΌαž„ αž’αžαž·αžαž·αž‡αž“ ssh αž‚αž½αžšαžαŸ‚αž–αŸ’αžšαž˜αžΆαž“αžαžΆαž™αžΎαž„αž˜αžΆαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžαŸ’αž˜αžΈαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ ssh αŸ”
αž αžΎαž™αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž—αŸ’αž‡αžΆαž”αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“ "αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžαŸ’αž˜αžΈαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ ssh" αž›αŸαž…αž‘αžΎαž„ αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž“αŸαž™αžαžΆαž–αž½αž€αž‚αŸαž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž›αž½αž…αžŸαŸ’αžαžΆαž”αŸ‹αž’αŸ’αž“αž€αŸ”
αž¬αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž›αž½αž…αžŸαŸ’αžαžΆαž”αŸ‹αž“αŸ…αž›αžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αžΆαžšαžΈαŸ”
αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαž“αŸƒαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αž‚αžΊαž„αžΆαž™αžŸαŸ’αžšαž½αž› រហ័ស αž“αž·αž„αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„ αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸ ssh-by-keyαŸ–
αž™αžΎαž„αž™αž€ flash drive αžŸαžšαžŸαŸαžšαž€αžΌαž“αžŸαŸ„αž―αž€αž‡αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ ssh αž“αŸ…αž›αžΎαžœαžΆ (αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒ αž“αž·αž„αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž”αŸ‹αžšαŸ† αž˜αž·αž“αž˜αŸ‚αž“αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžΎαž‘αŸ)αŸ”
αž™αžΎαž„αž‘αž»αž€αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ ssh αž“αžΉαž„αž“αŸ… αž αžΎαž™αž™αžΎαž„αž€αŸαžšαž€αŸ’αžŸαžΆαžœαžΆαž‘αž»αž€αž‡αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹αž•αž„αžŠαŸ‚αžšαŸ”
αž™αžΎαž„αž“αžΆαŸ†αž™αž€ flash drive αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž”αž‰αŸ’αž…αžΌαž›αžœαžΆ αž…αž˜αŸ’αž›αž„αžŸαŸ„αž―αž€αž‡αž“ αž αžΎαž™αžŠαž»αž flash drive αž αžΎαž™αžαŸ’αž…αžΆαžαŸ‹αžαŸ’αž…αžΆαž™αž•αŸαŸ‡αž‘αŸ…αžαŸ’αž™αž›αŸ‹ (αž¬αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž’αŸ’αžœαžΎαž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αžœαžΆαžŠαŸ„αž™αž›αŸαžαžŸαžΌαž“αŸ’αž™)αŸ”
αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ‚αž”αž“αŸαŸ‡αžœαžΆαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžš hack αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ ssh αž”αŸ‚αž”αž“αŸαŸ‡αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 10 αž†αŸ’αž“αžΆαŸ† αžœαžΆαž“αžΉαž„αž’αžΆαž…αž˜αžΎαž›αž…αžšαžΆαž…αžšαžŽαŸαž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‘αŸ†αž“αžΎαž”αž”αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‡αžΆαžšαžΏαž„αž•αŸ’αžŸαŸαž„αŸ”

αžαŸ’αž‰αž»αŸ†αžŸαž»αŸ†αž‘αŸ„αžŸαž…αŸ†αž–αŸ„αŸ‡αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž€αŸ’αžšαŸ…αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αžαžΆβ€‹αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αžŠαžΉαž„β€‹αŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αŸ†αž–αžΈαž›αŸ†αž αžΌαžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL αŸ”

αžŠαŸ„αž™αž”αŸ’αžšαžΎ "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.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

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαžΆαžŸαŸ†αž”αž»αžαŸ’αžšαž…αžΌαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ… dovecot αŸ”
αž“αž·αž„αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ‚αž“ αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ - αžšαž€αž˜αžΎαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”

/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

αž₯αž‘αžΌαžœαž“αŸαŸ‡ postfix αžŠαžΉαž„αžαžΆαžŸαŸ†αž”αž»αžαŸ’αžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‰αžΎαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž‡αžΆαž˜αž½αž™ dovecot αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž˜αž·αž“β€‹αž™αž›αŸ‹β€‹αžαžΆβ€‹αž αŸαžαž»β€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž…αž˜αŸ’αž›αž„β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸαŸ‡αŸ” αž™αžΎαž„αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαž½αž…αž αžΎαž™αž“αžΌαžœαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ "virtual_transport"αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαž–αŸαž“αŸ’αž’ postfix αž‚αžΊαž…αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹ - αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ„αŸ‡αž…αŸ„αž›αž–αžΈαžαŸ’αž„αŸƒαž…αžΆαžŸαŸ‹αŸ”

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:

αž“αŸ…αžαžΆαž„αž†αŸ’αžœαŸαž„αž‚αžΊαž‡αžΆαž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαŸ” αž“αŸ…αžαžΆαž„αžŸαŸ’αžαžΆαŸ†αž‚αžΊαž‡αžΆαžŸαŸ’αž›αžΆαž€αžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αž€αŸ’αžŸαžšαŸ”
Postfix αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αžŸαŸ’αž›αžΆαž€ - αž“αžΉαž„αž–αž·αž…αžΆαžšαžŽαžΆαž›αžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž·αžαž·αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ”

αžšαž”αŸ€αž”αžŠαŸ‚αž› postfix αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž·αžαž·αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ "master.cf" αŸ”

αž‡αž½αžšαž‘αžΈ 4, 5, 6 αž‚αžΊαž‡αžΆαžαŸ’αžŸαŸ‚αžŸαŸ†αžαžΆαž“αŸ‹αŸ” αž€αŸ’αž“αž»αž„αž“αžΆαž˜αžŠαŸ‚αž“αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž™αžΎαž„αž€αŸ†αž–αž»αž„αž•αŸ’αž‰αžΎαž›αž·αžαž·αžαž“αŸ„αŸ‡ αž™αžΎαž„αžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž“αŸαŸ‡αŸ”
αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž› "αž–αžΈ" αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž” PHP αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž…αžΆαžŸαŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžˆαŸ’αž˜αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž˜αž€αž‡αž½αž™αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αŸ”

αž’αžαŸ’αžαž”αž‘αž‚αžΊαž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αžšαž½αž…αž αžΎαž™ - αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αž„αŸ‹αžšαŸ†αžαžΆαž“αžŠαŸ„αž™αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ nginx+fpm αž‘αŸαŸ”

αžŠαŸ„αž™αžŸαž„αŸ’αžαŸαž” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαž“αžΈαž˜αž½αž™αŸ— αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ linux αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ” αž αžΎαž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜ fpm-pool αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

Fpm-pool αž”αŸ’αžšαžΎαž€αŸ†αžŽαŸ‚αžŽαžΆαž˜αž½αž™αž“αŸƒ 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}

αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ spamassasin αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αŸ”

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 αŸ” rDNS αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαžŠαŸ„αž™αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ”
αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαžΆ αž αŸαž‘αžΌαž–αž·αžαž‡αžΆαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„ rDNS αž“αŸƒαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž’αŸŠαžΈαž˜αŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž αŸαž‘αžΌαž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αžŠαŸ‚αž“αž’αŸŠαžΈαž˜αŸ‚αž›αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž’αŸ’αž“αž€αžŠαŸ‚αž›αžŸαŸ†αž”αž»αžαŸ’αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž“αŸ„αŸ‡ αž–αž·αž“αŸ’αž‘αž»αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹αŸ”

Helo αž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„ rDNS αž‘αŸ - αž–αž·αž“αŸ’αž‘αž» spam αž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹αŸ”
αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž αžΎαž™ αžŠαŸ‚αž“αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ”
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OVH - αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžŸαžΌαž›αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ rDNS αŸ”
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ tech.ru - αž”αž‰αŸ’αž αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ AWS αž”αž‰αŸ’αž αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
"inet_protocols" αž“αž·αž„ "smtp_bind_address6" - αž™αžΎαž„αž”αžΎαž€αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš IPv6 αŸ”
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ IPv6 αž’αŸ’αž“αž€αž€αŸαžαŸ’αžšαžΌαžœαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ rDNS αž•αž„αžŠαŸ‚αžšαŸ”
β€œsyslog_name” - αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž’αžΆαž“αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αŸ”

αž‘αž·αž‰αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžαŸ†αžŽ postfix+dovecot αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ SPF αŸ”

============= Dovecot =============

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 {
  }
}

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ dovecot αž…αž˜αŸ’αž”αž„αŸ”
αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž”αž·αž‘αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”
αž“αž·αž„αž”αžΎαž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”

αž―αž€αžŸαžΆαžš "/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
}

αžœαžΆαž“αžΉαž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ spamassassin αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ”

αž―αž€αžŸαžΆαžš "/etc/dovecot/conf.d/20-imap.conf"

protocol imap {
  mail_plugins = $mail_plugins antispam
}

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž”αŸ’αžšαž†αžΆαŸ†αž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαŸ” αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž› spamassasin αž“αŸ…αž–αŸαž›αž•αŸ’αž‘αŸαžšαž‘αŸ…/αž–αžΈαžαž β€œSpamβ€αŸ”

αž―αž€αžŸαžΆαžš "/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]
}

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ lmtp αŸ”

αž―αž€αžŸαžΆαžš "/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
}

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž› Spamassasin αž“αŸ…αž–αŸαž›αž•αŸ’αž‘αŸαžšαž‘αŸ…/αž–αžΈαžαžαžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαŸ”

αž―αž€αžŸαžΆαžš "/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';

αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ postfix αŸ”

αž―αž€αžŸαžΆαžš "/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

αž™αžΎαž„αž”αžΎαž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ spamassassin αž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž–αŸαž›αž•αŸ’αž‘αž»αž€αŸ”

αž―αž€αžŸαžΆαžš "/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

αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ β€œsa” αž“αŸ…αž€αŸ’αž“αž»αž„ mysql αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ β€œsa” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹ β€œpassword” (αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹)αŸ”

report_safe - αžœαžΆαž“αžΉαž„αž•αŸ’αž‰αžΎαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αŸƒαž’αŸŠαžΈαž˜αŸ‰αŸ‚αž›αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž›αž·αžαž·αžαž˜αž½αž™αŸ”
use_bayes αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαžšαŸ€αž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ spamassassin αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ spamassassin αžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž»αž“αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΌαž‘αŸ… "spamassassin".
αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž’αŸŠαžΈαž˜αŸ‚αž›αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαžαŸ’αž˜αžΈαž‘αŸ…αž€αžΆαž“αŸ‹αžαž IMAP β€œSpam”.
αž’αŸ†αž–αžΈαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸƒ Dovecot + SpamAssassin.
αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž’αžΆαž“αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈαžŸαž·αž€αŸ’αžŸαžΆ spamassasin αž“αŸ…αž–αŸαž›αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž’αž€αŸ’αžŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαž imap (αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎαžœαžΆαž‘αŸ).

============= αž’αŸ†αž–αžΆαžœαž“αžΆαžœαžŠαž›αŸ‹αžŸαž αž‚αž˜αž“αŸ =============

αžαŸ’αž‰αž»αŸ†β€‹αž€αŸβ€‹αž…αž„αŸ‹β€‹αž”αŸ„αŸ‡β€‹αž‚αŸ†αž“αž·αžβ€‹αž˜αž½αž™β€‹αž‘αŸ…β€‹αžŸαž αž‚αž˜αž“αŸβ€‹αž’αŸ†αž–αžΈβ€‹αžšαž”αŸ€αž”β€‹αž”αž„αŸ’αž€αžΎαž“β€‹αž€αž˜αŸ’αžšαž·αžβ€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€‹αž“αŸƒβ€‹αžŸαŸ†αž”αž»αžαŸ’αžšβ€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αž”αž“αŸ’αžαŸ” αžŠαŸ„αž™αžŸαžΆαžšβ€‹αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αž…αžΌαž›β€‹αž…αž·αžαŸ’αžβ€‹αž™αŸ‰αžΆαž„β€‹αžαŸ’αž›αžΆαŸ†αž„β€‹αž€αŸ’αž“αž»αž„β€‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘β€‹αžŸαŸ†αž”αž»αžαŸ’αžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž’αžΆαž…β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŸαŸ„β€‹αž˜αž½αž™β€‹αž‚αžΌβ€‹αž“αŸ…β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž—αŸ’αž‰αŸ€αžœβ€‹αžšαž”αžŸαŸ‹β€‹αž‚αžΆαžαŸ‹ (αž‘αžŸαŸ’αžŸαž“αžœαž·αžŸαŸαž™, αž•αŸ’αž‚αžšαž›αžΆαž“αŸ‹, αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž‡αŸ†αž“αž½αž™β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž, ... )αŸ” αžŸαžΆαž’αžΆαžšαžŽαŸˆ αž“αž·αž„αž―αž€αž‡αž“αŸ” αžŸαžΆαž’αžΆαžšαžŽαŸˆ - αž•αŸ’αž‰αžΎαž‘αŸ… DNS αŸ” αž―αž€αž‡αž“ - αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αŸŠαžΈαž˜αŸ‚αž›αž“αžΉαž„αž’αžΆαž…αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαž‘αŸ…αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”

αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αž€αŸ’αžŸαžšαž”αŸ‚αž”αž“αŸαŸ‡ (αž”αžΆαž‘ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž”αžΆαž“αž‘αŸ) - αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŽαŸ‚αž“αžΆαŸ†αž…αŸ’αž”αžΆαž”αŸ‹αž…αŸ†αž“αž½αž“ 3αŸ–

  1. αž αžαŸ’αžαž›αŸαžαžΆ DKIM αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž…αžΆαŸ†αž”αžΆαž…αŸ‹ SPF αž…αžΆαŸ†αž”αžΆαž…αŸ‹ rDNS αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”
  2. αž”αžŽαŸ’αžαžΆαž‰αžŸαžšαžŸαŸƒαž”αŸ’αžšαžŸαžΆαž‘αž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸƒαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž”αŸ’αžšαž†αžΆαŸ†αž„αžŸαžΆαžšαž₯αžαž”αžΆαž“αž€αžΆαžš + αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž“αŸ…αžαžΆαž„αž’αžαž·αžαž·αž‡αž“αŸ”
  3. αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžŠαžΌαž…αžŠαŸ‚αž›αž—αžΆαž‚αžΈαž”αž‰αŸ’αž‡αžΌαž“αžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αžαžΆαž˜αž–αž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ 100 αžŠαž„αž›αžΎαž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‡αžΆαž„αž•αŸ’αž“αŸ‚αž€αž‘αž‘αž½αž›αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž›αž·αžαž·αžαžŸαžΆαž’αžΆαžšαžŽαŸˆ αžŸαžΌαž˜αž”αž„αŸ’αž€αžΎαžαž›αž·αžαž·αžαžŸαŸ’αž“αžΎαžŸαž»αŸ†αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš β€œαžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž†αŸ’αž›αžΎαž™αž†αŸ’αž›αž„αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€αŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αŸ’αž“αžΆαž€αŸ‹ (αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš) αž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“αž―αž€αžŸαžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŸαŸ†αž”αž»αžαŸ’αžšαž˜αžΆαž“αžŸαŸ†αžŽαžΎαž‡αžΆαž’αžαŸ’αžαž”αž‘αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž†αŸ’αž›αžΎαž™αž†αŸ’αž›αž„ αž“αž·αž„αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžš (αž‡αžΆαž˜αž½αž™αžŸαŸ„αž―αž€αž‡αž“αž“αŸ…αžαžΆαž„αž’αžαž·αžαž·αž‡αž“)αŸ”

αž’αŸ’αž“αž€αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αžΌαž“αžŸαŸ„αž–αžΈαžšαž™αŸ‰αžΆαž„αž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž†αŸ’αž›αžΎαž™αž†αŸ’αž›αž„αž“αžΈαž˜αž½αž™αŸ—αŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž“αŸαŸ‡ αž αžΎαž™αž•αŸ’αž‰αžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ (αž€αŸαž’αŸ’αžœαžΎαž‘αžΎαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž†αŸ’αž›αžΎαž™αž†αŸ’αž›αž„αž“αŸαŸ‡αž•αž„αžŠαŸ‚αžš)αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΈαž˜αž½αž™αž•αŸ’αž‰αžΎαž›αž·αžαž·αžαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ (αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž‘αžΈαž–αžΈαžš) - αž“αŸ…αž–αŸαž›αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΈαž–αžΈαžšαž’αžΆαž…αž–αž·αž…αžΆαžšαžŽαžΆαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΈαž–αžΈαžšαž•αŸ’αž‰αžΎαž›αž·αžαž·αžαž”αž‰αŸ’αž‡αžΆ - αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΈαž˜αž½αž™αž€αŸαž’αžΆαž…αž–αž·αž…αžΆαžšαžŽαžΆαž†αžΆαž“αŸ‚αž›αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αž„αžŠαŸ‚αžšαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αžŸαŸ„αž“αŸ…αž›αžΎαž•αŸ’αž›αžΌαžœ αž–αž·αž’αžΈαž€αžΆαžšαžαŸ’αžšαžΌαžœαžαŸ‚αž•αŸ’αžαž›αŸ‹αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ flash driveαŸ”

αž αžΎαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‚αžΊαžαžΆαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αžŸαŸ†αžŽαž½αžšαž‚αžΊ "αžαžΎαž’αŸ’αž“αž€αžŽαžΆαž“αžΉαž„αž…αŸ†αžŽαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆ?")αŸ–
αž”αž‰αŸ’αž…αžΌαž›αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž”αŸ’αžšαŸƒαžŸαžŽαžΈαž™αŸαž…αžΆαž”αŸ‹αž–αžΈ $10 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž› 3 αž†αŸ’αž“αžΆαŸ†αŸ” αžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž•αŸ’αž‰αžΎαž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ dns ថអ "αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡" αŸ” αž αžΎαž™αž–αž½αž€αž‚αŸαž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž‘αž“αŸ’αž‘αžΉαž˜αž“αžΉαž„αž“αŸαŸ‡αž€αžΆαžšαž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ‚αž”αž“αŸαŸ‡αž‚αžΊαž˜αž·αž“αž‚αž·αžαžαŸ’αž›αŸƒαž‘αŸαŸ”
αž‘αžΈαž”αŸ†αž•αž»αž gmail αž€αŸ†αž–αž»αž„αžšαž€αž”αŸ’αžšαžΆαž€αŸ‹αž–αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ $10 αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 3 αž†αŸ’αž“αžΆαŸ† - αžŸαž·αž‘αŸ’αž’αž·αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαžΆαž‰αž†αŸ’αž›αžΎαž™αž†αŸ’αž›αž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”

============= αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“ =============

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž˜αžΌαž› αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž‡αž½αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž½αž™αžαŸ‚ αž αžΎαž™αž‘αž·αž‰αžŠαŸ‚αž“αžŠαŸ‚αž›αž˜αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αž‡αžΈαžœαž·αžβ€‹αž”αžΆαž“β€‹αžœαž·αžœαžŒαŸ’αžαž“αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡β€‹αž”αžΆαž“β€‹αž’αžΌαžŸαž”αž“αŸ’αž›αžΆαž™β€‹αžšαž™αŸˆαž–αŸαž› ្ αžαŸ‚αŸ”
αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž–αŸαž›αž‘αŸ†αž“αŸαžšαž˜αŸ’αžαž„αž‘αŸ€αž αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž—αž’αžαŸ’αžαž”αž‘αžŠαžΌαž…αž˜αž»αž“ αž‡αžΆαž‡αžΆαž„αž”αŸ’αžšαžαž»αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž“αŸαŸ‡αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž‘αŸ€αžαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΌαž…αž‡αžΆ "αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž›αž˜αŸ’αž’αž·αžαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ" αž“αŸ„αŸ‡αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“αž€αž˜αŸ’αž›αžΆαŸ†αž„αžŠαžΎαž˜αŸ’αž”αžΈαž™αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž‡αžΆαž˜αž½αž™αžŠαŸ‚αž“αžαŸ’αž˜αžΈ αž“αž·αž„αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL αžαŸ’αž˜αžΈ αž αžΎαž™αž–αž·αž–αžŽαŸŒαž“αžΆαžœαžΆαž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž›αž˜αŸ’αž’αž·αž αž αžΎαž™αž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αžŸαŸ†αžαžΆαž“αŸ‹ αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αžŠαŸ‚αž›αž”αžΆαžαŸ‹αŸ”

αžαŸ’αž‰αž»αŸ†αž€αŸαž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž˜αžαž·αž€αŸ‚αž›αž˜αŸ’αž’αž›αžΎαž‚αŸ†αž“αž·αžαž’αŸ†αž–αžΈαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž”αŸ’αžšαŸƒαžŸαžŽαžΈαž™αŸαž•αž„αžŠαŸ‚αžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαž‚αŸ†αž“αž·αž αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αž˜αŸ’αž›αžΆαŸ†αž„αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžšαžŸαŸαžšαžŸαŸαž…αž€αŸ’αžαžΈαž–αŸ’αžšαžΆαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ rfc αŸ”

αž“αŸ…αž–αŸαž›αž…αž˜αŸ’αž›αž„αž•αŸ’αž“αŸ‚αž€αž’αŸ†αž“αŸƒαž’αžαŸ’αžαž”αž‘ αžŸαžΌαž˜αž•αŸ’αžαž›αŸ‹αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”
αž“αŸ…αž–αŸαž›αž”αž€αž”αŸ’αžšαŸ‚αž‡αžΆαž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžŸαžΌαž˜αž•αŸ’αžαž›αŸ‹αžαŸ†αžŽαž‘αŸ…αž€αžΆαž“αŸ‹αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”
αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž€αž”αŸ’αžšαŸ‚αžœαžΆαž‡αžΆαž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž αžΎαž™αž‘αž»αž€αž―αž€αžŸαžΆαžšαž™αŸ„αž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αŸ”


αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹