แแก แกแขแแขแแ แแฎแแแ แแแแแแแแ แแแ แคแแกแขแแก แกแแ แแแ แแก แแแงแแแแแแก.
Postfix + Dovecot. SPF + DKIM + rDNS. IPv6-แแ.
TSL แแแจแแคแแ แแ. แแ แแแแแ แแแแแแแก แแฎแแ แแแญแแ แแ - แแแฌแแแ แ แแแแฃแ แ SSL แกแแ แแแคแแแแขแแ.
แแแขแแกแแแแแก แแแชแแแ แแ แแแขแแกแแแแแก แแแฆแแแ แ แแแขแแแแแ แกแฎแแ แคแแกแขแแก แกแแ แแแ แแแแแแ.
แแฎแแ แก แฃแญแแ แก แแ แแแแ แคแแแแแฃแ แแแขแแ แคแแแกแก.
OpenVPN-แแ, แ แแแแแแแแแช แแแแจแแ แ แแ แแก IPv4-แแก แกแแจแฃแแแแแแ แแ แ แแแแแแช แฃแแ แฃแแแแแงแแคแก IPv6-แก.
แแฃ แแ แแกแฃแ แ แแกแฌแแแแแ แงแแแแ แแก แขแแฅแแแแแแแ, แแแแ แแ แแกแฃแ แ แแแแงแแแแ แแกแแแ แกแแ แแแ แ, แแแจแแ แแก แกแขแแขแแ แแฅแแแแแแแกแแ.
แกแขแแขแแ แแ แชแแแแแแก แแฎแกแแแก แงแแแแ แแแขแแแ. แแฎแกแแ แแแแแก แแแแแ, แ แแช แแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แ แแแแ แช แกแขแแแแแ แขแฃแแ แแ แแแแจแแแแแแแแแแ แแแแฎแแแ แแแแแก แแแแแกแแแ แแกแแ.
แคแแกแขแแก แกแแ แแแ แแก แแแงแแแแแแก แแแขแแแแชแแ แฉแแแ แแแแ แฎแแแก แแชแแแแ แแงแ. แแก แจแแแซแแแแ แกแฃแแแแฃแ แแ แแฆแแ แแแก, แแแแ แแ IMHO, แแก แแแแ แแ แฃแแแแแกแแ, แแแแ แ แแฅแแแแ แกแแงแแแ แแแ แแ แแแแแก แแฎแแ แแแแฅแแแแแ แแชแแแแ.
IPv6-แแก แแแงแแแแแแก แแ แ แแแขแแแแชแแ แแ แกแแแแแก. IT แกแแแชแแแแแกแขแก แแฃแแแแแแ แกแญแแ แแแแ แแฎแแแ แขแแฅแแแแแแแแแแก แกแฌแแแแ, แ แแแ แแแแแ แฉแแก. แแแแแ แฉแแแ แแแแ แซแแแแแฃแแ แฌแแแแแ แจแแแแขแแแ แชแแแแฃแ แแก แฌแแแแแฆแแแแ แแ แซแแแแจแ.
OpenVPN-แแก แแแงแแแแแแก แแแขแแแแชแแ แแ แแก แแฎแแแแ IPv6-แแก แแฃแจแแแแ แแแแแแแแ แแ แแแแ แแขแแ.
แ แแแแแแแแ แคแแแแแฃแ แ แแแขแแ แคแแแกแแก แแแงแแแแแแก แแแขแแแแชแแ แแ แแก แแก, แ แแ แฉแแแก แกแแ แแแ แแ แแแฅแแก แแ แแ แแแขแแ แคแแแกแ โแแแแ, แแแแ แแ แจแแฃแแฆแฃแแแแโ แแ แแแแ แ โแกแฌแ แแคแ, แแแแ แแ แขแแ แแคแแโ.
Bind แแแ แแแแขแ แแแแก แแแงแแแแแแก แแแขแแแแชแแ แแ แแก แแก, แ แแ แฉแแแ ISP แฃแแ แฃแแแแแงแแคแก แแ แแกแขแแแแแฃแ DNS แกแแ แแแ แก แแ google แแกแแแ แแแแฏแแ แแแ แฎแแ แฎแแแแ. แแ แแแแแ แกแขแแแแแฃแ แ DNS แกแแ แแแ แ แแแ แแแ แแแแแงแแแแแแกแแแแก.
แกแขแแขแแแก แแแฌแแ แแก แแแขแแแแชแแ - แแ แแแฅแขแ แแแแฌแแ แ 10 แแแแก แฌแแ แแ แฃแแแ แแ แฏแแ แแแแแแฎแแแ. แแแจแแแแช แแ, แแฃ แแแขแแ แก แแก แ แแแฃแแแ แฃแแแ แกแญแแ แแแแ, แแแแแ แแแแแแแแ แแแแกแ, แ แแ แกแฎแแแแกแแช แแแกแญแแ แแแ.
แแ แแ แกแแแแแก แฃแแแแแ แกแแแฃแ แ แแแแแฌแงแแแขแ แคแแกแขแแก แกแแ แแแ แแกแแแแก. แแแแ แแ แแ แจแแแแชแแแแ แแแแฌแแ แ แแกแแแแกแ แ แแ: โแแแแแแแ แแก แแ แแแ แ, แ แแชแ แงแแแแแคแแ แ แแกแ แแแฃแจแแแแแก, แ แแแแ แช แฃแแแ, แแแแแแแแ แแแแแแขแ แแแแแแแโ.
แแแแแแแแ tech.ru-แก แแฅแแก Colocation แกแแ แแแ แ. แจแแกแแซแแแแแแแ แจแแแแ แแแ OVH, Hetzner, AWS. แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ, tech.ru-แกแแแ แแแแแแจแ แแแแแแ แแแชแแแแแแ แแคแแฅแขแฃแ แ แแฅแแแแ.
Debian 9 แแแแแกแขแแแแ แแแฃแแแ แกแแ แแแ แแ.
แกแแ แแแ แก แแฅแแก 2 แแแขแแ แคแแแกแ `eno1` แแ `eno2`. แแแ แแแแ แจแแฃแแฆแฃแแแแแ, แแแแ แ แแ, แจแแกแแแแแแกแแ, แกแฌแ แแคแ.
แแ แแก 3 แกแขแแขแแแฃแ แ IP แแแกแแแแ แแ, XX.XX.XX.X0 แแ XX.XX.XX.X1 แแ XX.XX.XX.X2 `eno1` แแแขแแ แคแแแกแแ แแ XX.XX.XX.X5 `eno2` แแแขแแ แคแแแกแแ. .
แฎแแแแแกแแฌแแแแแแ XXXX:XXXX:XXXX:XXXX::/64 IPv6 แแแกแแแแ แแแแแก แฏแแฃแคแ, แ แแแแแแแช แแแแแญแแแฃแแแ `eno1` แแแขแแ แคแแแกแแ แแ แแแกแแแ XXXX:XXXX:XXXX:XXXX:1:2::/96 แแแแแแญแ `eno2`-แก แฉแแแ แแแแฎแแแแแ.
แแ แแก 3 แแแแแแ `domain1.com`, `domain2.com`, `domain3.com`. แแ แกแแแแแก SSL แกแแ แแแคแแแแขแ `domain1.com` แแ `domain3.com`-แแกแแแแก.
แแ แแแฅแแก Google แแแแแ แแจแ, แ แแแแแกแแช แแแแแ แแแแแแแ แ แฉแแแ แกแแคแแกแขแ แงแฃแแ[แแ.แคแแกแขแแ แแแชแฃแแแ]` (แคแแกแขแแก แแแฆแแแ แแ แคแแกแขแแก แแแแแแแแ แแแ แแแแแ gmail แแแขแแ แคแแแกแแแแ).
แฃแแแ แแ แกแแแแแแแก แกแแคแแกแขแ แงแฃแแ`[แแ.แคแแกแขแแ แแแชแฃแแแ]`, แแแคแแกแขแแก แแกแแ, แกแแแแแแแช แแแแแ แแแแฎแ แฉแแแก gmail-แจแ. แแ แแจแแแแแแ, แ แแ แจแแแแซแแแก แ แแฆแแชแแก แแแแแแแแ `-แแก แกแแฎแแแแ[แแ.แคแแกแขแแ แแแชแฃแแแ]` แแแ แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ.
แฃแแแ แแ แกแแแแแแแก แกแแคแแกแขแ แงแฃแแ`[แแ.แคแแกแขแแ แแแชแฃแแแ]`, แ แแแแแกแแช แแแแแแแ แแแแแกแ แแแคแแแแแแ แแแแแแงแแแแแก.
แแแแแแแแแแ แแ.แฌแแ แแแ แฃแแแ แจแแแกแแแแแแแแแแก แแแขแแกแแแแแก แงแแแแ แแแแแแแแ แแแ แแแแฎแแแแแก.
แกแแฏแแ แ แฅแกแแแแแจแ แแแแแแแแกแฌแแแแแฃแแ แฃแแแ แแงแแก แแแจแแคแแ แแก แฃแแแฆแแแกแ แแแแ.
แฃแแแ แแงแแก IPv6 แแฎแแ แแแญแแ แ แ แแแแ แช แฌแแ แแแแแแก แแแแแแแแแกแแแแก, แแกแแแ แแแฆแแแแกแแแแก.
แฃแแแ แแงแแก SpamAssassin, แ แแแแแแช แแ แแกแแแแก แฌแแจแแแก แแ.แฌแแ แแแก. แแ แแก แแ แแแ แฃแแแแแ, แแ แแแแแขแแแแแก แแ แแแแแแแแแก IMAP โแกแแแแแกโ แกแแฅแแฆแแแแแจแ.
SpamAssassin auto-learning แฃแแแ แแงแแก แแแแคแแแฃแ แแ แแแฃแแ: แแฃ แแแแแแแขแแ แแกแแก 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 แแแ แแแญแ (แแฆแกแแแแจแแแแแ, แ แแ แแก แจแแแซแแแแ/แฃแแแ แแแแแแแแก แกแฎแแแแแแ แแ. แแแฃแแแแแ IPv6 แแแแแแ แแแแแ).
dns-nameservers - แแแแแแแแฃแแแ 127.0.0.1 (แ แแแแแ bind แแ แแก แแแแแกแขแแแแ แแแฃแแ แแแแแแแแ แแแแ) แแ 213.248.1.6 (แแก แแ แแก tech.ru-แแแ).
"table eno1t" แแ "table eno2t" - แแ แแแ แจแ แฃแข-แฌแแกแแแแก แแแแจแแแแแแแ แแ แแก แแก, แ แแ แขแ แแคแแแ, แ แแแแแแช แจแแแแก eno1 ->-แแ, แแแแแก แแแกแจแ, แฎแแแ แขแ แแคแแแ, แ แแแแแแช แจแแแแก eno2 ->-แแ, แแแแแก แแแกแจแ. แแกแแแ แกแแ แแแ แแก แแแแ แแแแชแแ แแแฃแแ แแแแจแแ แแแ แแแแแแแแ eno1-แก.
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
แแแแแขแแแแแ แแแขแแแแแ "แแแแแแแก" แฌแแกแแแแก แจแแกแแฎแแ:
============= OpenVPN ==============
OpenVPN IPv4 แแ แแฃแจแแแแก iptable-แแแแก แแแ แแจแ.
แฉแแแ 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 แแแแแแขแแแกแ แแ แแแขแแ แแแขแก แจแแ แแก, แแฅแแแ แฃแแแ แแแแ แแแแกแขแ แแ แแ แแ แ-แแ แแ แแกแแแ แแ แซแแแแแ.
แกแฎแแแแแกแฎแแ แจแแแแฎแแแแแจแ, แแ แ-แแ แแ แแแ แแแแขแ แแ แแ แแก แจแแกแแคแแ แแกแ.
แแ แแแ แแ แซแแแแแ แจแแกแแคแแ แแกแแ แฉแแแ แจแแแแฎแแแแแกแแแแก.
แแแแฃแแแแขแแชแแแก แฌแแแแแฎแแแก แจแแแแแ แแแแ แฉแแ แแแ แแแแ แแแ แแแแขแ, แ แแแแแ แแก แแแแแแ แแ แแชแแกแแ แก แแงแแแแแก.
แแแแกแแแแแก, แ แแ 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
แแก แแ แแ แแก แงแแแแแกแแแแก - แแ แแแแ แฉแแ แแแแจแแ แแก แแแจแแคแแ แแก แแก แแแแแแ.
============= แแแกแขแคแแฅแกแ ==============
แซแแ แแแแแ แแแแแขแแก แแแงแแแแแ:
apt-get install postfix
แแแกแขแแแแชแแแกแแก แแแ แฉแแแ "แแแขแแ แแแข แกแแแขแ".
แฉแแแ "/etc/postfix/main.cf" แแกแ แแแแแแงแฃแ แแแ:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_bind_address = XX.XX.XX.X0
smtp_bind_address6 = XXXX:XXXX:XXXX:XXXX:1:1:1:1
smtp_tls_security_level = may
smtp_tls_ciphers = export
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_loglevel = 1
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = domain1.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = domain1.com
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
internal_mail_filter_classes = bounce
# Storage type
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
#reject_invalid_hostname,
#reject_unknown_recipient_domain,
reject_unauth_destination,
reject_rbl_client sbl.spamhaus.org,
check_policy_service unix:private/policyd-spf
smtpd_helo_restrictions =
#reject_invalid_helo_hostname,
#reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_helo_hostname,
permit
# SPF
policyd-spf_time_limit = 3600
# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
# IP address per domain
sender_dependent_default_transport_maps = pcre:/etc/postfix/sdd_transport.pcre
แแแแแ แจแแแฎแแแแ แแ แแแแคแแแฃแ แแชแแแก แแแขแแแแแก.
smtpd_tls_cert_file=/etc/ssl/domain1.com.2018.chained.crt
smtpd_tls_key_file=/etc/ssl/domain1.com.2018.key
แฎแแแ แแแกแแแก แแแชแฎแแแ แแแแแแแก แแฅแแแ, แแก แแแแแ แจแแแชแแแก "แแแแแแคแแ แแแชแแแก แแ แแ แแกแฌแแ แแแแแกแแแก".แฉแแแ แแแ แแแ แแก แแแฌแงแแแแแแ แแฎแแแแ 8 แฌแแแก แจแแแแแ แแแแแฌแงแ แแแแก แแแแแแ, แแฃ แ แแแแ แแฃแจแแแแก SSL.
แแแแขแแ, แแ แแแฅแแแแ แแแแแกแฃแคแแแแ แแฆแแฌแแ แ แ แแแแ แแแแแแแงแแแแ SSL (แแแแฎแแแแแ โแ แแแแ แแฃแจแแแแก?โ แแ โแ แแขแแ แแฃแจแแแแก?โ แแแกแฃแฎแแก แแแ แแจแ).
แแแแแแแแ แแแ แแแจแแคแแ แแก แกแแคแฃแซแแแแแ แแแกแแฆแแแแก แฌแงแแแแแก แจแแฅแแแ (แกแแแแแแแแแแก แแ แ แซแแแแแ แแ แซแแแ แกแขแ แแฅแแแ).
แแ แแ "แแแกแแฆแแแ" แแ แแก แแแ แแแ, แแแแ แ แแแกแแฆแแแ แแ แแก "แกแแฏแแ แ". แฉแแแ แกแแแแฃแแแ แแแกแแฆแแแก แซแแแแแ แคแ แแฎแแแแ แแแแแฎแแแ. แฉแแแ แงแแแแแก แแฃแ แแแแแ แกแแฏแแ แ แแแกแแฆแแแก.
แกแแฏแแ แ แแแกแแฆแแแแก แแแแแงแแแแแแ แจแแแแซแแแแ แแแจแแคแ แแ แขแแฅแกแขแแก แกแขแ แแฅแแแ แแกแ, แ แแ แแฎแแแแ แแแ แแแ แแแกแแฆแแแแก แแคแแแแแแก แจแแฃแซแแแ แแแกแ แแแจแแคแแ แ.
แแแ แแแ, แแก แแ แแก แขแแฅแแแแแแแแก แแแแแ แกแแคแฃแซแแแแ.แแแแแฏแ #1 - https แกแแแขแแแ.
แกแแแขแแ แจแแกแแแแกแแก แแ แแฃแแแ แ แแแ แกแแ แแแ แแแแ แแแแแก, แ แแ แกแแแขแ แแ แแก https แแ แแแแขแแ แแแฎแแแก แกแแฏแแ แ แแแกแแฆแแแก.
แแแ แกแแ แแแ แ แแซแแแแ แกแแฏแแ แ แแแกแแฆแแแก. แแ แแฃแแแ แ แแงแแแแแก แกแแฏแแ แ แแแกแแฆแแแก http-แแแแฎแแแแแก แแแกแแจแแคแ แแ แแ แแแกแแแแแแแแ.
http-แแแแฎแแแแแก แจแแแแแแกแแก แฌแแแแแฎแแ แจแแฃแซแแแ แแฎแแแแ แแแ, แแแกแแช แแฅแแก แแแ แแแ แแแกแแฆแแแ, แแแฃ แแฎแแแแ แกแแ แแแ แ, แ แแแแแแแช แแ แแก แแแแฎแแแแ.
Http แแแแฎแแแแ แจแแแชแแแก แกแฃแ แแชแแ แ URI-แก. แแแแขแแ, แแฃ แฅแแแงแแแ แชแแแแแแก แจแแแฆแฃแแแก แฌแแแแแ แแ แ แแแแ แกแแแขแแ, แแ แแแแ แแแแแ แแขแฃแ แแแแ แแแ, แแแจแแ แแแแก แแแแแแแแ แจแแฃแซแแแแแแแ https แกแแแขแแแแกแแแแก.แแแแแฏแ #2 - แแแจแแคแ แฃแแ แแแกแฃแฎแ.
แแแ แกแแ แแแ แ แแซแแแแ แแแกแฃแฎแก, แ แแแแแแช แแแแแแแ แแแแแฎแแแ แแแแแ.
แแแแแกแแแแแ แฃแแแแฃแ แแกแแ แแแ แขแแแแ - แแ แแฃแแแ แ แแแแแแแแ แแแแ แฅแแแแก แแแแแ แแแ แซแ-แกแแฏแแ แ แแแกแแฆแแแแแแก แฌแงแแแแก แแแแแแฃแแ https แกแแแขแแกแแแแก.
แแ แกแแแขแแก แกแแฏแแ แ แแแกแแฆแแแแก แแแแฎแแแแแกแแแ แแ แแแ, แแก แแแแแแแแก แแแแแแแแ แแ แกแแฏแแ แ แแแกแแฆแแแก.
แแแ แกแแ แแแ แ แแฎแกแแแก แแแก แแ, http- แแแกแฃแฎแแก แแแแแแแแแกแแก, แจแแคแ แแแก แแแก แแแแแ แแขแฃแแ แแแแแแขแแก แกแแฏแแ แ แแแกแแฆแแแแ.
แแฎแแ http- แแแกแฃแฎแแก แแแจแแคแแ แ แจแแกแแซแแแแแแแ แแฎแแแแ แแแแแแขแแก แแ แแฃแแแ แแก แแแ แแแ แแแกแแฆแแแแก แแคแแแแแแก (แแแฃ แแแแแ แแแแแแขแก).แแแแแฏแ No3 - แฃแกแแคแ แแฎแ แแแแจแแ แแก แแแแงแแ แแแ แกแแฏแแ แ แแ แฎแแก แแแจแแแแแแ.
แแ-2 แแแแแแแแจแ แแ แแก แแแฃแชแแแแแแ - แแ แแคแแ แ แฃแจแแแก แฎแแแก แแแแแแแกแแงแแคแแแแแก http-แแแแฎแแแแแก แฉแแญแ แแจแ แแ แกแแฏแแ แ แแแกแแฆแแแแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แ แแแแฅแขแแ แแแแจแ.
แแแ แแแแ, แจแฃแแแแแแแ แแแแแแ แแแแแแฎแแแก แแแแแแแแแแ แแ แแแฆแแแฃแแ แจแแขแงแแแแแแแแแแก แแแแ แจแแแแแ แกแก, แกแแแแ แแ แจแแแชแแแแแ แกแแแแแฃแแแแแชแแ แแ แฎแ.
แแแกแแแ แแแแแแแแแแ แซแแแแแ แแแ แขแแแแ - แฃแแ แแแแ แแแแแแแแแ แแ แแฃแแแ แแก แกแแฏแแ แ แแแกแแฆแแแ แแแ แกแแ แแแ แแก แกแแฏแแ แ แแแกแแฆแแแแ แแแจแแคแ แฃแแ แจแแขแงแแแแแแแแก แกแแฎแแ.
แจแแแแแ แแแ แกแแ แแแ แ แฏแแ แแแแแแแแก แแแกแฃแฎแก, แ แแแแ แแชแแ โแแฅแแแแ แกแแฏแแ แ แแแกแแฆแแแ แแกแแแแโ แแ แแแจแแคแแ แแแก แแ แจแแขแงแแแแแแแแก แแแแแ แกแแฏแแ แ แแแกแแฆแแแแ.
แแ แแฃแแแ แ แฃแงแฃแ แแแก แแแกแฃแฎแก - แแฃ แแแแฆแแแ แจแแขแงแแแแแแแ "แแฅแแแแ แกแแฏแแ แ แแแกแแฆแแแ แแกแแแแ" - แแก แแ แแก 100% แแแ แแแขแแ แแแแกแ, แ แแ แแก แกแแแแแฃแแแแแชแแ แแ แฎแ แฃแกแแคแ แแฎแแ.
แ แแแแแแแ แฃแกแแคแ แแฎแแ?
แแกแแแ แฃแกแแคแ แแฎแ แกแแแแแฃแแแแแชแแ แแ แฎแแก แจแแฅแแแ แฎแแแแ แแแแ*2 แกแแฉแฅแแ แแ. แแแแแแแแแ 20 ms.
แแแแแแแกแฎแแแแก แฌแแแแกแฌแแ แฃแแแ แฐแฅแแแแแก แแ แ-แแ แแ แแฎแแ แแก แแแ แแแ แแแกแแฆแแแ. แแ แแแแแแแ แแแ แแแ แแแกแแฆแแแ แ แแแแแแแแ แแแแแฌแแแจแ.
แแ แแ แแแแแแแแ แแแ แแแ แแแ แแแกแแฆแแแแก แแแขแแฎแแแก แกแฃแแแ แแแแแแฃแขแแ แแ แแแฌแแแฃแแแแ แแแกแญแแ แแแแ.แแแแแฏแ #4 - แกแแฏแแ แ แแแกแแฆแแแแแแก แกแแฏแแ แ แแแแแชแแแแ แแแแ.
แชแฎแแแแ, แแแแ แแ แแแแแแจแ แแ แแก แจแแกแแซแแแแแแแ, แแแแแแแกแฎแแแแ แแฏแแแก แแแแแแขแกแ แแ แกแแ แแแ แก แจแแ แแก แกแแแแแฃแแแแแชแแ แแ แฎแแ.
แแแแแแขแก แจแแฃแซแแแ แแ แแขแแแแแ แแงแแก แกแแ แแแ แแ, แฎแแแ แกแแ แแแ แก แจแแฃแซแแแ แแ แแขแแแแแ แแงแแก แแแแแแขแแ. แแ แแแแแซแแ แฌแงแแแแ แแแกแแฆแแแแแ แแ แแแ แแแแแ แแฃแแแแแ.
แจแแแแแ แแแแแแแกแฎแแแแ แแแแแแฎแแแก แแแแ แขแ แแคแแแก แแ แจแแซแแแแก แขแ แแคแแแแก โแ แแแแฅแขแแ แแแแกโ.
แแแแแแแแแ, แจแแชแแแแแ แแแกแแแแ แแ, แกแแแแช แฃแแแ แแแแแแแแแแ แคแฃแแ แแ แแแแแแแแ แแ แแแ แแแ แแแแแแ แแแแแแแแแแแ แแ แแแแแแแแ โแกแแฌแแแแแฆแแแแแโ แจแแแแแ แกแ.
แแกแแ แแแแแแแกแฎแแแแแแแแ แกแแแ แซแแแแแแแ แแแ แจแแฅแแแแก แกแแฏแแ แ แแแแแชแแแแ แแแแ แกแแฏแแ แ แแแกแแฆแแแแแแ แแแแแแฃแแ https แกแแแขแแกแแแแก.
แแแแแแฃแแแ แแ แแฃแแแ แแ โแแชแแกโ แแแแฎแแแแแแ 200 แแกแแแ แแแแแชแแแแ แแแแแก แแ แกแแแแแแก แจแแกแแฎแแ. แแก แแ แแก แฌแแแแกแฌแแ แแแแแกแขแแแแ แแแฃแแ แงแแแแ แแ แแฃแแแ แจแ.
โแชแแแแโ แแแแงแแ แแแฃแแแ แกแแฏแแ แ แแแกแแฆแแแแ แแแแแแฃแแ แกแแ แขแแคแแแแขแแกแแแ. แแแฃ, แแแแจแแ แ แแแแแแฃแ แแแแแ แแขแฃแ แกแแกแแ แขแแคแแแแชแแ แแ แแแแแกแแแ แแ แจแแแซแแแแ แแแงแแแแแแก.แแฎแแ แแ แแก แแแ แขแแแ แแแแแแ, แแฃ แ แแแแ แแแแแแงแแแแ SSL https-แแกแแแแก.
แแฃ แแงแแแแแ แแฅแแแแก แขแแแแก, แแแแ แแแแแ, แแฃ แ แแแแ แจแแฃแซแแแแ แกแแแชแกแแแกแแฎแฃแ แแแก แ แแฆแแชแแก แแแขแแฎแแ แแ แกแขแ แฃแฅแขแฃแ แแจแ. แแแแ แแ แแก แแแ แแแแแ แแแแ แซแแแแกแฎแแแแ แแแฃแฏแแแแแ.
แแ NSA-แแ แแ CIA-แแ แแแแแแแ แแ แแแแแแแชแแแแ - แแแชแแแก แแ แกแแแฃแแ แแแแแก แแแขแแฎแแ แแแแฅแแแก แจแแฃแซแแแแแแแ, แแฃแแแแช VIP-แแแแกแแแแก.แแ แแกแแแ แแแแแแแขแแ ssh แแแแจแแ แแแแก แจแแกแแฎแแ. แแฅ แแ แแ แแก แกแแฏแแ แ แแแกแแฆแแแแแ, แ แ แจแแแแซแแแแ แแแแแแแแ? แกแแแแแฎแ แฌแงแแแแ แแ แ แแแแ.
แแแ แแแแขแ ssh-by-password:
แแแ แแแแ แแแแจแแ แแก แแ แแก, ssh แแแแแแขแแ แฃแแแ แแแแคแ แแฎแแแแก, แ แแ แฉแแแ แแแแฅแแก แแฎแแแ แกแแฏแแ แ แแแกแแฆแแแ ssh แกแแ แแแ แแแแ.
แแ แจแแแแแแแ แแแแจแแ แแแแก แแ แแก, แแฃ แแแแแฉแแแแแ แแแคแ แแฎแแแแแ โแแฎแแแ แกแแฏแแ แ แแแกแแฆแแแ ssh แกแแ แแแ แแแแโ, แแก แแแจแแแแก, แ แแ แแกแแแ แชแแแแแแแ แแฅแแแแก แแแกแแแแแก.
แแ แแฅแแแ แแแแกแแแแแก แแฅแแแแ แแแ แแแแ แแแแจแแ แ, แแแแ แแ แแฎแแ แแฅแแแ แแแฃแแแแจแแ แแแ แกแแ แแแ แก แจแฃแแแแแแแแแก แแแ แแจแ.
แ แแแแฃแ แแ, แแแแก แแแแ, แ แแ แแแกแแแแแแแก แคแแฅแขแ แแแแแแแ, แกแฌแ แแคแแ แแ แฃแแ แแแแแแแ แแแแแแแแ, แแก แแแแแแกแฎแแ แแแแแแงแแแแแ แแฎแแแแ แแแแกแแแฃแแ แแแฃแ แจแแแแฎแแแแแแจแ แแแแแ แแขแฃแแ แแแแแแขแแกแแแแก.แแแ แแแแขแ ssh-by-key:
แฉแแแ แแแฆแแแ แคแแแจ แแ แแแแก, แแฌแแ แ แแแกแแ ssh แกแแ แแแ แแก แแแ แแ แแแกแแฆแแแก (แแแแกแแแแก แแ แแก แขแแ แแแแแแ แแ แแแแ แ แแแแจแแแแแแแแแ แแแฃแแแกแ, แแแแ แแ แแ แแฌแแ แกแแแแแแแแแแแแแแ แแ แแแ แแแแก แแ แแ แ แแแแแงแแแแแแก แแแกแขแ แฃแฅแชแแแก).
แฉแแแ แแขแแแแแ แกแแฏแแ แ แแแกแแฆแแแก แแแแฅแแแแแ, แกแแแแช แแฅแแแแ ssh แแแแแแขแ แแ แแกแแแ แกแแแแฃแแแแ แแแแแฎแแแ แแแก.
แแแแแฅแแ แคแแแจ แแ แแแแ แกแแ แแแ แแ, แฉแแแกแแแ, แแแแแแแแแ แแแ แแ แแแแข แแแแแแจแก แแ แแฌแแแแ แคแแแจแแแก แแ แคแแ แคแแก แแคแแแขแแแ แฅแแ แก (แแ แแแแแแฃแ แแฃแแแแแก แคแแ แแแขแแ แแแแก).
แกแฃแ แแก แแ แแก - แแกแแแ แแแแ แแชแแแก แจแแแแแ แจแแฃแซแแแแแแ แแฅแแแแ แแกแแแ 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 แฌแแแ แแแกแแฆแแแแก แจแแฅแแแแก แฌแแแแ.
แแแฏแแญแแฃแแ - แแฆแแแจแแแ, แ แแ แแ แกแแแแแก แกแแฏแแ แ แแแกแแฆแแแแแแก แฏแแญแแ (แแแ แแแแ แแ แแก แฉแแแแ แกแแฏแแ แ แแแกแแฆแแแ แแ แแแแแ แฉแแแ แแ แแก แแก, แ แแช แแแแแก แแแแแแแแแกแแแ, แ แแแแแแแช แแแกแชแ แกแแฏแแ แ แแแกแแฆแแแ).
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
แแฎแแ แแแกแขแคแแฅแกแแ แแชแแก, แ แแ แคแแกแขแ แจแแแซแแแแ แแแฆแแแฃแ แแฅแแแก แจแแแแแแแ แแแแแแแแแกแแแแก แแฎแแแแ Dovecot-แแ แแแขแแ แแแแชแแแก แจแแแแแ.
แแ แแแแแแแแแ แแ แแแกแแแก, แ แแขแแ แแ แแก แแก แแฃแแแแ แแแฃแแ แแฅ. แฉแแแ แฃแแแ แแแแแแฃแกแขแแ แงแแแแแคแแ แ, แ แแช แกแแญแแ แแ "แแแ แขแฃแแแฃแ _แขแ แแแกแแแ แขแจแ".
แแแแ แแ แแแกแขแคแแฅแกแแก แกแแกแขแแแ แซแแแแแ แซแแแแแ - แแแแแ แแก แซแแแแ แแ แแแแแ แฃแแแ แแแฎแแแแ.
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 แแขแแแแขแแก แจแแกแแแแแแกแแ - แแแแแแแแแกแฌแแแแแก แแแแแ แ แแแแแแแแ แแแแคแแแฃแ แแชแแแก แฎแแแก แแแแแ แแขแฃแแ แแกแแกแแแแก.แ แแแแ แแแฎแแแแ แแฃแกแขแแ แแแกแขแคแแฅแกแแก แฎแแแแฎแแแ แแแแคแแแฃแ แแชแแ แแแแแ แแขแฃแแ แแกแแกแแแแก, แแแแแแแแฃแแ แแฅแแแแ "master.cf"-แจแ.
แฎแแแแแ 4, 5, 6 แแ แแก แแแแแแ แ. แ แแแแแ แแแแแแแก แกแแฎแแแแ แแแแแแแแแ แฌแแ แแแก, แแแแแแกแแแ แแ แแแ แแแงแก.
แแแแ แแ แแแแ "from" แงแแแแแแแแก แแ แแ แแก แแแแแแแแฃแแ PHP แกแแ แแแขแแแจแ แซแแแ แแแแจแ. แจแแแแแ แแแแฎแแแ แแแแแก แกแแฎแแแ แแแแแก แกแแแแจแแแแแจแ.แกแขแแขแแ แฃแแแ แแ แชแแแแ - แแ แแกแฃแ แก แงแฃแ แแแฆแแแ แแแแแคแแแขแแก nginx+fpm-แแก แแแงแแแแแแ.
แแแแแแ, แแแแแแฃแแ แกแแแขแแกแแแแก แฉแแแ แแแแแงแแแแ แกแแแฃแแแ แ แแแแฃแฅแกแแก แแแแฎแแแ แแแแแก แแคแแแแแแ. แแ แจแแกแแแแแแกแแ แแฅแแแแ 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 แแแกแแแแ แแแ แกแขแ แแฅแแแแก แแแฆแแแแก แแ แแชแแกแ.
แคแแกแขแแกแแแแก แแ แแก แคแฃแแฅแชแแ แแแแแแงแแแแแ แแแแก แแแกแแแแกแขแฃแ แแแแแ, แ แแ helo แแฃแกแขแแ แแแแฎแแแแ แแแกแแแแ แแแก rDNS-แก, แกแแแแแแแช แแแแแแแแแ แแ.แฌแแ แแแ.แแฃ helo แแ แแแแฎแแแแ แแ.แคแแกแขแแก แแแแแแก, แ แแแแแก แกแแฎแแแแแแช แแแแแแแแแ แฌแแ แแแ, แแแแแแญแแแ แกแแแแแก แฅแฃแแแแ.
Helo แแ แแแแฎแแแแ rDNS - แแแแญแแแ แแแแ แ แกแแแแแก แฅแฃแแ.
แจแแกแแแแแแกแแ, แแแแแแฃแ แแแแแแก แฃแแแ แฐแฅแแแแแก แกแแแฃแแแ แ IP แแแกแแแแ แแ.
OVH-แกแแแแก - แแแแกแแแจแ แจแแกแแซแแแแแแแ แแแฃแแแแแ rDNS.
tech.ru-แกแแแแก - แกแแแแแฎแ แแแแแแ แแแฃแแแ แแฎแแ แแแญแแ แแ.
AWS-แแกแแแแก แกแแแแแฎแ แแแแแแ แแแฃแแแ แแฎแแ แแแญแแ แแ.
โinet_protocolsโ แแ โsmtp_bind_address6โ - แฉแแแ แฉแแแ แแแแ IPv6 แแฎแแ แแแญแแ แแก.
IPv6-แแกแแแแก แแฅแแแ แแกแแแ แฃแแแ แแแแ แแแแกแขแ แแ แแ rDNS.
โsyslog_nameโ - แแ แแก แแ แแก แแฃแ แแแแแแแก แฌแแแแแฎแแแก แแแแแ แขแแแแแแกแแแแก.
แจแแแซแแแแ แกแแ แแแคแแแแขแแแ
============= แแขแ แแแ ==============
apt-get install dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql dovecot-antispam
mysql-แแก แแแงแแแแแ, แแแแแ แแแแแขแแแแก แแแงแแแแแ.
แคแแแแ "/etc/dovecot/conf.d/10-auth.conf"
disable_plaintext_auth = yes
auth_mechanisms = plain login
แแแขแแ แแแแชแแ แแฎแแแแ แแแจแแคแ แฃแแแ.
แคแแแแ "/etc/dovecot/conf.d/10-mail.conf"
mail_location = maildir:/var/mail/vhosts/%d/%n
แแฅ แฉแแแ แแแแฃแแแแแแ แแกแแแแแก แจแแแแฎแแแก แแแแแแก.
แแ แแแแแ, แ แแ แแกแแแ แจแแแแฎแฃแแ แแงแแก แคแแแแแแจแ แแ แแแฏแแฃแคแแแฃแแ แแงแแก แแแแแแแก แแแฎแแแแแ.
แคแแแแ "/etc/dovecot/conf.d/10-master.conf"
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
address = XX.XX.XX.X1, XX.XX.XX.X2, XX.XX.XX.X5, [XXXX:XXXX:XXXX:XXXX:1:1:1:1], [XXXX:XXXX:XXXX:XXXX:1:2:1:1], [XXXX:XXXX:XXXX:XXXX:1:1:5:1]
port = 995
ssl = yes
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
user = dovecot
}
service auth-worker {
user = vmail
}
service dict {
unix_listener dict {
}
}
แแก แแ แแก แแแแแแ แ 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-แแก แแแ แฏแแจแแกแแแแก "แกแแแแแก" แกแแฅแแฆแแแแแจแ แแแแแขแแแแก แแ แแก.
แคแแแแ "/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';
แแก แจแแแกแแแแแแแ แแแกแขแคแแฅแกแแก แแกแแแแก แแแ แแแแขแ แแแก.
แคแแแแ "/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" แแแ แแแแ "แแแ แแแ" (แจแแชแแแแแ แ แแแแ แแแแแแแขแฃแ แแ).
report_safe - แแก แฌแแ แแแแก แแแชแแแแ แแแแแแแแแก แแแแแ แแจแก แกแแแแแก แแแคแแกแขแแก แจแแกแแฎแแ.
use_bayes แแ แแก spamassassin แแแแฅแแแฃแ แ แกแฌแแแแแแแก แแแ แแแแขแ แแแ.
แแแ แฉแแแแแ spamassassin แแแ แแแแขแ แแแ แแแแแงแแแแแฃแแ แแงแ แกแขแแขแแแจแ แแแ แ.
============= แแแแแ แแแ แกแแแแแแแแแแแก ==============
แแ แแกแแแ แแกแฃแ แก แกแแแแแแแแแแแก แแแแแฌแแแ แแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแแแแ แแแก แแแแแแแแแแแแ แฌแแ แแแแแแก แฃแกแแคแ แแฎแแแแแก แแแแ. แ แแแแแ แแ แแกแ แฆแ แแแ แแแ แฉแแคแแฃแแ แคแแกแขแแก แแแแแจแ.
แ แแแ แแแแฎแแแ แแแแแแ แจแแฅแแแแก แฌแงแแแแ แแแกแแฆแแแแแ แแแแแก แแแแแแขแแ (outlook, thunderbird, แแ แแฃแแแ แแก-แแแแแแแ, ...). แกแแฏแแ แ แแ แแแ แซแ. แกแแฏแแ แ - แแแแแแแแแ DNS-แแ. แแแ แแแ - แแแแแแแ แแแแแแขแแ. แคแแกแขแแก แกแแ แแแ แแแก แจแแแซแแแแแ แแแแแแงแแแแ แกแแฏแแ แ แแแกแแฆแแแ แแแแแ แแขแฃแ แแแแฆแแแแ แแแกแแแแแแแแ.
แแ แกแแแแแกแแแ แแแกแแชแแแแ แแกแแแ แแกแแแแแ (แแแแฎ, แคแแกแขแแก แกแแ แแแ แ แแแ แจแแซแแแแก แจแแแแแ แกแแก แแแฎแแแก) - แแฅแแแ แฃแแแ แจแแแแแขแแแแ 3 แฌแแกแ:
- แกแแแแแแแแฃแแ แ แแแแฃแ แ DKIM แฎแแแแแฌแแ แ, แกแแแแแแแแฃแแ SPF, แกแแแแแแแแฃแแ rDNS.
- แแแ แแฃแแ แฅแกแแแ แแแขแแกแแแแแก แขแ แแแแแแแก แแแแแแ + แแแแแชแแแแ แแแแ แแแแแแขแแก แแฎแแ แแก.
- แแแจแแคแแ แแก แแแแแ แแแแ แฃแแแ แแงแแก แแกแแแ, แ แแ แแแแแแแแแแ แแฎแแ แแ แฃแแแ แแแฎแแ แฏแแก 100-แฏแแ แแแขแ CPU แกแแแซแแแแ แ แแแจแแคแแ แแแ, แแแแ แ แแแแฆแแแแ แแฎแแ แแ.
แกแแฏแแ แ แฌแแ แแแแแแก แแแ แแ, แจแแแแฃแจแแแแ แกแขแแแแแ แขแฃแแ แฌแแแแแแแแแแก แฌแแ แแแ โแฃแกแแคแ แแฎแ แแแแแฌแแ แแก แแแกแแฌแงแแแแโ. แแ แ-แแ แแ แแแแฎแแแ แแแแแ (แคแแกแขแแก แงแฃแแ) แแแแแแแแก แฌแแ แแแก แแแแแ แแแ แกแฎแแ แกแแคแแกแขแ แงแฃแแจแ. แฌแแ แแแ แจแแแชแแแก แขแแฅแกแขแฃแ แฌแแแแแแแแแแก แแแแแฌแแ แแกแแแแก แฃแกแแคแ แแฎแ แกแแแแแฃแแแแแชแแ แแ แฎแแก แแแกแแฌแงแแแแ แแ แกแแคแแกแขแ แงแฃแแแก แแคแแแแแแแก แกแแฏแแ แ แแแกแแฆแแแก (แแแแแแขแแก แแฎแแ แแก แแแ แแแ แแแกแแฆแแแแ).
แแฅแแแ แจแแแแซแแแแ แแแแแแแแ แ แแแแแแแแ แแแกแแฆแแแ แกแแแชแแแแฃแ แแ แแแแแแฃแแ แแแแแฌแแ แแกแแแแก. แแแแฆแแ แแแแฎแแแ แแแแแก แจแแฃแซแแแ แแแแฆแแก แแก แจแแแแแแแแแ แแ แแแแแแแแแก แแแแแกแ แกแแฏแแ แ แแแกแแฆแแแ (แแกแแแ แจแแฅแแแแแแ แกแแแชแแแแฃแ แแ แแ แแแแแฌแแ แแกแแแแก). แจแแแแแแ, แแแ แแแแ แแแแฎแแแ แแแแแ แแแแแแแแก แกแแ แแแกแแก แกแแแแแขแ แแแ แฌแแ แแแก (แแแจแแคแ แฃแแแ แแแแ แ แแแแฎแแแ แแแแแก แกแแฏแแ แ แแแกแแฆแแแแ) - แ แแแแแก แแแฆแแแแก แจแแแแแ แแแแ แ แแแแฎแแแ แแแแแก แจแแฃแซแแแ แฉแแแแงแแแแแแแฃแแ แกแแแแแฃแแแแแชแแ แแ แฎแ แกแแแแแแแ แฉแแแแแแแก. แจแแแแแแ, แแแแ แ แแแแฎแแแ แแแแแ แแแแแแแแก แกแแแแแขแ แแแ แฌแแ แแแก - แแ แจแแแแแ แแแ แแแ แแแแฎแแแ แแแแแก แจแแฃแซแแแ แแกแแแ แแแแแฎแแแแก แฉแแแแงแแแแแแแฃแแ แแ แฎแ แฃแกแแคแ แแฎแแ.
แแแแแ แแแกแแฆแแแแแแก แฉแแ แแแแก แฌแแแแแฆแแแแ แกแแแ แซแแแแแแแ, แแ แแขแแแแแ แฃแแแ แแแแแแแกแฌแแแแแแแก แแแแแแฃแ แแ แแ แกแแฏแแ แ แแแกแแฆแแแแก แแแแแชแแแแก แจแแกแแซแแแแแแแแก แคแแแจ แแ แแแแแก แแแแแงแแแแแแ.
แแ แงแแแแแแ แแแแจแแแแแแแแแ แแก แแ แแก, แ แแ แแก แงแแแแแคแแ แ แแฃแจแแแแก (แกแแแแแฎแแแแ โแแแ แแแแแแฎแแแก แแแก?โ):
แจแแแงแแแแแ แกแแคแแกแขแ แกแแ แแแคแแแแขแแแ $10-แแแ 3 แฌแแแก แแแแแแแแแแแจแ. แ แแช แกแแจแฃแแแแแแก แแแกแชแแแก แแแแแแแแแก dns-แจแ แแแฃแแแแแก, แ แแ โแฉแแแ แกแแฏแแ แ แแแกแแฆแแแแแ แแฅ แแ แแกโ. แแ แแกแแแ แแแแชแแแ แจแแกแแซแแแแแแแแก แแแแฌแงแแ แฃแกแแคแ แแฎแ แแแแจแแ แ. แแแแแแ แแฃแแแ, แแกแแแ แแแแจแแ แแแแก แแแฆแแแ แฃแคแแกแแ.
gmail แกแแแแแแแ แแฎแแแแก แแแแฎแแแ แแแแแแแก แแแแแขแแแแชแแแก. 10 แแแแแ แแ 3 แฌแแแแฌแแแจแ - แฃแกแแคแ แแฎแ แแแแแฌแแ แแก แแ แฎแแแแก แจแแฅแแแแก แฃแคแแแแ.
============= แแแกแแแแ ==============
แแแแแ แกแขแแขแแแก แจแแกแแแแฌแแแแแแ แแแแแ แแแแ แแแแแงแแคแแแ แกแแ แแแ แแก แแแฅแแ แแแแแแก แแ แแ แแแแ แแ แแแแแแแก แจแแซแแแแก SSL แกแแ แแแคแแแแขแแ.
แแแแ แแ แชแฎแแแ แแแแกแแฃแแ แแแ แแแแแแแแ แแกแ แแแแแแแแ แแ, แ แแ แแก แกแแแแแฎแ 2 แแแ แแแแ แซแแแแ.
แแกแ แ แแ, แ แแชแ แแกแแ แแแแแกแฃแคแแแ แแ แ แแฅแแแแ, แแแแแแฌแงแแแขแ แแแแแแแฅแแแงแแแแแแ แกแขแแขแแ แแกแ, แ แแแแ แช แแ แแก, แแแแก แแแชแแแแ, แ แแ แแแแแฉแแแ แแฃแแแแแแชแแ แแแแแ แแ แแ แฌแแแ แแแญแแแแฃแ แแแฃแแแงแ.
แแฃ แแ แกแแแแแก แกแแแแแแ แแแแ แ แแแแฎแแ, แ แแแแ แแชแแ "แแแแ แแ แแก แแ แแ แแก แแฆแฌแแ แแแ แกแแแแแ แแกแแ แแแขแแแฃแ แแ", แแแจแแ, แแแแแ, แแฅแแแแ แซแแแ, แ แแ แแแฆแแ แแแแแงแแคแแแ แกแแ แแแ แ แแฎแแแ แแแแแแแ แแ แแฎแแแ SSL แกแแ แแแคแแแแขแแ แแ แแฆแฌแแ แแ แแก แแแแแ แฃแคแ แ แแแขแแแฃแ แแ แแ, แฃแแแขแแกแแแ. แ แแช แแแแแแ แแ, แแแแแแแแแ แงแแแแ แแแแแ แแฃแแ แแแแจแแแแแแแแแ แแแขแแแ.
แแกแแแ แแกแฃแ แก แแแแแฎแแแฃแ แแแ แแแแแฆแ แแแแแแแ แกแแคแแกแขแ แกแแ แแแคแแแแขแแแแก แจแแกแแฎแแ. แแฃ แแแแแฌแแแแแแ แแแแ, แแแชแแแแ แแแแแแ แซแแแ แแ แแแแฌแแ แ แแ แแแฅแขแ rfc-แกแแแแก.
แกแขแแขแแแก แแแแ แแแฌแแแแแแก แแแแแ แแแแกแแก แแแฃแแแแแ แแ แกแขแแขแแแก แแแฃแแ.
แแแแแกแแแแ แกแฎแแ แแแแแ แแแ แแแแแกแแก แแแแฌแแแแ แแ แกแขแแขแแแก แแแฃแแ.
แแแชแแแแ แแแแแ แแแแแแแแ แแแแ แแแแแแกแฃแ แแ แแ แแแแขแแแ แฏแแแ แแแแแ แแแแแแแแแแ.
แฌแงแแ แ: www.habr.com