เจกเฉ‡เจฌเฉ€เจ…เจจ + เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ + เจกเฉ‹เจตเจ•เฉ‹เจŸ + เจฎเจฒเจŸเฉ€เจกเฉ‹เจฎเฉ‡เจจ + SSL + IPv6 + เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ + เจฎเจฒเจŸเฉ€-เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ + เจธเจชเฉˆเจฎเจ…เจธเจพเจธเจฟเจจ-เจฒเจฐเจจ + เจฌเฉฐเจจเฉเจน

เจ‡เจน เจฒเฉ‡เจ– เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจ†เจงเฉเจจเจฟเจ• เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค
เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ + เจกเฉ‹เจตเจ•เฉ‹เจŸ. SPF + DKIM + rDNSเฅค IPv6 เจฆเฉ‡ เจจเจพเจฒ.
TSL เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒเฅค เจฎเจฒเจŸเฉ€เจชเจฒ เจกเฉ‹เจฎเฉ‡เจจเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ - เจ‡เฉฑเจ• เจ…เจธเจฒเฉ€ SSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจตเจพเจฒเจพ เจนเจฟเฉฑเจธเจพเฅค
เจเจ‚เจŸเฉ€เจธเจชเฉˆเจฎ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ‡ เจฎเฉ‡เจฒ เจธเจฐเจตเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจ‰เฉฑเจš เจเจ‚เจŸเฉ€เจธเจชเฉˆเจฎ เจฐเฉ‡เจŸเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒเฅค
เจฎเจฒเจŸเฉ€เจชเจฒ เจญเฉŒเจคเจฟเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ.
OpenVPN เจฆเฉ‡ เจจเจพเจฒ, เจœเจฟเจธเจฆเจพ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ IPv4 เจฆเฉเจ†เจฐเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‹ IPv6 เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจจเจนเฉ€เจ‚ เจธเจฟเฉฑเจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡, เจชเจฐ เจ…เจœเจฟเจนเจพ เจธเจฐเจตเจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจฒเฉ‡เจ– เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจนเฉˆเฅค

เจฒเฉ‡เจ– เจนเจฐ เจตเฉ‡เจฐเจตเฉ‡ เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ. เจธเจชเจธเจผเจŸเฉ€เจ•เจฐเจจ เจ‰เจธ เจšเฉ€เจœเจผ เจตเฉฑเจฒ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเจฟเจ†เจฐเฉ€ เจตเจœเฉ‹เจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจœเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจฎเฉ‡เจฐเจพ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจธเฉเจชเจจเจพ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ‡เจน เจฎเฉ‚เจฐเจ– เจฒเฉฑเจ— เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ IMHO, เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ เจฌเฉเจฐเจพเจ‚เจก เจคเฉ‹เจ‚ เจจเจตเฉ€เจ‚ เจ•เจพเจฐ เจฆเจพ เจธเฉเจชเจจเจพ เจฆเฉ‡เจ–เจฃ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉˆเฅค

IPv6 เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจฆเฉ‹ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจนเจจเฅค เจ‡เฉฑเจ• IT เจฎเจพเจนเจฐ เจจเฉ‚เฉฐ เจฌเจšเจฃ เจฒเจˆ เจฒเจ—เจพเจคเจพเจฐ เจจเจตเฉ€เจ†เจ‚ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจธเจฟเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจธเฉˆเจ‚เจธเจฐเจธเจผเจฟเจช เจตเจฟเจฐเฉเฉฑเจง เจฒเฉœเจพเจˆ เจตเจฟเฉฑเจš เจ†เจชเจฃเจพ เจฎเจพเจฎเฉ‚เจฒเฉ€ เจฏเฉ‹เจ—เจฆเจพเจจ เจชเจพเจ‰เจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค

OpenVPN เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจธเจฟเจฐเจซเจผ IPv6 เจจเฉ‚เฉฐ เจธเจฅเจพเจจเจ• เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจนเฉˆเฅค
เจ•เจˆ เจญเฉŒเจคเจฟเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจฎเฉ‡เจฐเฉ‡ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจนเฉˆ "เจนเฉŒเจฒเฉ€ เจชเจฐ เจ…เจธเฉ€เจฎเจฟเจค" เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ "เจคเฉ‡เจœเจผ โ€‹โ€‹เจชเจฐ เจ‡เฉฑเจ• เจŸเฉˆเจฐเจฟเจซ เจฆเฉ‡ เจจเจพเจฒ"เฅค

Bind เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจฎเฉ‡เจฐเจพ ISP เจ‡เฉฑเจ• เจ…เจธเจฅเจฟเจฐ DNS เจธเจฐเจตเจฐ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ—เฉ‚เจ—เจฒ เจตเฉ€ เจ•เจˆ เจตเจพเจฐ เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ. เจฎเฉˆเจ‚ เจจเจฟเฉฑเจœเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ DNS เจธเจฐเจตเจฐ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚เฅค

เจ‡เฉฑเจ• เจฒเฉ‡เจ– เจฒเจฟเจ–เจฃ เจฒเจˆ เจชเฉเจฐเฉ‡เจฐเจฃเจพ - เจฎเฉˆเจ‚ 10 เจฎเจนเฉ€เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจกเจฐเจพเจซเจŸ เจฒเจฟเจ–เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฆเฉ‹ เจตเจพเจฐ เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆเฅค เจญเจพเจตเฉ‡เจ‚ เจฒเฉ‡เจ–เจ• เจจเฉ‚เฉฐ เจจเจฟเจฏเจฎเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ‡เจธเจฆเฉ€ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆ เจ•เจฟ เจฆเฉ‚เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจ‡เฉฑเจ• เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจฒเจˆ เจ•เฉ‹เจˆ เจตเจฟเจ†เจชเจ• เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจชเจฐ เจฎเฉˆเจ‚ เจ•เฉเจ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ "เจ‡เจน เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจซเจฟเจฐ, เจœเจฆเฉ‹เจ‚ เจธเจญ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ‡เจน เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจตเจพเจงเฉ‚ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเฉฑเจŸ เจฆเจฟเจ“เฅค"

เจ•เฉฐเจชเจจเฉ€ tech.ru เจ•เฉ‹เจฒ เจ•เฉ‹เจฒเฉ‹เจ•เฉ‡เจธเจผเจจ เจธเจฐเจตเจฐ เจนเฉˆเฅค OVH, Hetzner, AWS เจจเจพเจฒ เจคเฉเจฒเจจเจพ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, tech.ru เจจเจพเจฒ เจธเจนเจฟเจฏเฉ‹เจ— เจตเจงเฉ‡เจฐเฉ‡ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจกเฉ‡เจฌเฉ€เจ…เจจ 9 เจธเจฐเจตเจฐ 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจนเฉˆเฅค

เจธเจฐเจตเจฐ เจตเจฟเฉฑเจš 2 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ `eno1` เจ…เจคเฉ‡ `eno2` เจนเจจเฅค เจชเจนเจฟเจฒเจพ เจฌเฉ‡เจ…เฉฐเจค เจนเฉˆ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ เจ•เฉเจฐเจฎเจตเจพเจฐ เจคเฉ‡เจœเจผ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ 3 เจธเจฅเจฟเจฐ IP เจชเจคเฉ‡ เจนเจจ, 'eno0' เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ XX.XX.XX.X1 เจ…เจคเฉ‡ XX.XX.XX.X2 เจ…เจคเฉ‡ XX.XX.XX.X1 เจ…เจคเฉ‡ 'eno5' เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ XX.XX.XX.X2 .

เจ‰เจชเจฒเจฌเจง XXXX:XXXX:XXXX:XXXX::/64 IPv6 เจชเจคเจฟเจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจœเฉ‹ `eno1` เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ XXXX:XXXX:XXXX:XXXX:1:2::/96 เจจเฉ‚เฉฐ เจฎเฉ‡เจฐเฉ€ เจฌเฉ‡เจจเจคเฉ€ 'เจคเฉ‡ `eno2` เจจเฉ‚เฉฐ เจธเฉŒเจ‚เจชเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค

เจ‡เฉฑเจฅเฉ‡ 3 เจกเฉ‹เจฎเฉ‡เจจ เจนเจจ `domain1.com`, `domain2.com`, `domain3.com`เฅค `domain1.com` เจ…เจคเฉ‡ `domain3.com` เจฒเจˆ เจ‡เฉฑเจ• SSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจนเฉˆเฅค

เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• Google เจ–เจพเจคเจพ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจฎเฉ‡เจฒเจฌเจพเจ•เจธ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ• เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพ[เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]` (เจฎเฉ‡เจฒ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจœเฉ€เจฎเฉ‡เจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจงเจพ เจฎเฉ‡เจฒ เจญเฉ‡เจœเจฃเจพ)เฅค
เจ‡เฉฑเจ• เจฎเฉ‡เจฒเจฌเจพเจ•เจธ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ[เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]`, เจ‰เจธ เจˆเจฎเฉ‡เจฒ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจพเจชเฉ€ เจœเจฟเจธ เจคเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจœเฉ€เจฎเฉ‡เจฒ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚เฅค เจ…เจคเฉ‡ ` เจฆเฉ€ เจคเจฐเจซเจผเฉ‹เจ‚ เจ•เฉเจ เจญเฉ‡เจœเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ[เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]` เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฐเจพเจนเฉ€เจ‚เฅค

เจ‡เฉฑเจ• เจฎเฉ‡เจฒเจฌเจพเจ•เจธ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ[เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]`, เจœเจฟเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ‡เจตเจพเจจเฉ‹เจต เจ†เจชเจฃเฉ‡ เจ†เจˆเจซเฉ‹เจจ เจคเฉ‹เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค

เจญเฉ‡เจœเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจˆเจฎเฉ‡เจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจ†เจงเฉเจจเจฟเจ• เจเจ‚เจŸเฉ€เจธเจชเฉˆเจฎ เจฒเฉ‹เฉœเจพเจ‚ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค
เจœเจจเจคเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจฎเฉเจนเฉฑเจˆเจ† เจ•เจฐเจตเจพเจˆ เจ—เจˆ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจฆเจพ เจ‰เฉฑเจš เจชเฉฑเจงเจฐ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
เจšเจฟเฉฑเจ เฉ€เจ†เจ‚ เจญเฉ‡เจœเจฃ เจ…เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‹เจตเจพเจ‚ เจฒเจˆ IPv6 เจธเจนเจพเจ‡เจคเจพ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค
เจ‡เฉฑเจ• เจธเจชเฉˆเจฎเจ…เจธเจพเจธเจฟเจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เจฆเฉ‡ เจตเฉ€ เจˆเจฎเฉ‡เจฒเจพเจ‚ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฎเจฟเจŸเจพเจเจ—เจพ. เจ…เจคเฉ‡ เจ‡เจน เจœเจพเจ‚ เจคเจพเจ‚ เจ‰เจ›เจพเจฒ เจœเจพเจตเฉ‡เจ—เจพ เจœเจพเจ‚ เจ›เฉฑเจก เจฆเฉ‡เจตเฉ‡เจ—เจพ เจœเจพเจ‚ IMAP โ€œเจธเจชเฉˆเจฎโ€ เจซเฉ‹เจฒเจกเจฐ เจจเฉ‚เฉฐ เจญเฉ‡เจœ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค
SpamAssassin เจ†เจŸเฉ‹-เจฒเจฐเจจเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ: เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจธเจชเฉˆเจฎ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉฑเจคเจฐ เจญเฉ‡เจœเจฆเจพ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เจน เจ‡เจธ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจ–เฉ‡เจ—เจพ; เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจธเจชเฉˆเจฎ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจชเฉฑเจคเจฐ เจญเฉ‡เจœเจฆเจพ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เจน เจ‡เจธ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจ–เฉ‡เจ—เจพเฅค SpamAssassin เจธเจฟเจ–เจฒเจพเจˆ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจชเฉฑเจคเจฐ เจธเจชเฉˆเจฎ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจ–เจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆ.
PHP เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฟเฉฑเจคเฉ‡ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเฉ‹เจฎเฉ‡เจจ เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚ เจฎเฉ‡เจฒ เจญเฉ‡เจœเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
เจ‡เฉฑเจ• เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจธเฉ‡เจตเจพ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจธ เจ•เจฒเจพเจ‡เฉฐเจŸ 'เจคเฉ‡ IPv6 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจนเฉ‹เจตเฉ‡ เจœเจฟเจธ เจ•เฉ‹เจฒ IPv6 เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ IPv6 เจธเจฎเฉ‡เจค เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ…เจคเฉ‡ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€, เจœเฉ‹ เจ•เจฟ IPv4 เจฆเฉเจ†เจฐเจพ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ-เจ…เจธเจฒ IPv6 เจชเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‡เจธ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉ‹เจฒ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ IPv6 เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ 'เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ IPv6 เจธเจฐเฉ‹เจคเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เฉฑเจ–เจฐ + SPF + DKIM + rDNS เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเจฎเจพเจจ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจญเฉ‡เจœเจฃ เจฒเจˆ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€เฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‹เจตเจ•เฉ‹เจŸ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจฎเจฒเจŸเฉ€เจกเฉ‹เจฎเฉ‡เจจ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€เฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ SpamAssassin เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเจฟเจ–เจฒเจพเจˆ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€.
เจ…เฉฐเจค เจตเจฟเฉฑเจš, Bind เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹.

============ เจฌเจนเฉ-เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ ============

เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ โ€œ/etc/network/interfacesโ€ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

# The loopback network interface
auto lo
iface lo inet loopback

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

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

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

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

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

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

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

เจ‡เจน เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ tech.ru เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ (เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ เจฅเฉ‹เฉœเฉ‡ เจคเจพเจฒเจฎเฉ‡เจฒ เจจเจพเจฒ) เจ…เจคเฉ‡ เจ‡เจน เจคเฉเจฐเฉฐเจค เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เฉ€ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ Hetzner, OVH เจฒเจˆ เจธเจฎเจพเจจ เจšเฉ€เจœเจผเจพเจ‚ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเจพ เจ…เจจเฉเจญเจต เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ‰เฉฑเจฅเฉ‡ เจตเฉฑเจ–เจฐเจพ เจนเฉˆเฅค เจนเฉ‹เจฐ เจฎเฉเจธเจผเจ•เจฒ.

eno1 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก #1 เจฆเจพ เจจเจพเจฎ เจนเฉˆ (เจนเฉŒเจฒเฉ€ เจชเจฐ เจ…เจธเฉ€เจฎเจค)เฅค
eno2 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก #2 เจฆเจพ เจจเจพเจฎ เจนเฉˆ (เจคเฉ‡เจœเจผ, เจชเจฐ เจ‡เฉฑเจ• เจŸเฉˆเจฐเจฟเจซ เจฆเฉ‡ เจจเจพเจฒ)เฅค
tun0 OpenVPN เจคเฉ‹เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก เจฆเจพ เจจเจพเจฎ เจนเฉˆเฅค
XX.XX.XX.X0 - eno4 'เจคเฉ‡ IPv1 #1เฅค
XX.XX.XX.X1 - eno4 'เจคเฉ‡ IPv2 #1เฅค
XX.XX.XX.X2 - eno4 'เจคเฉ‡ IPv3 #1เฅค
XX.XX.XX.X5 - eno4 'เจคเฉ‡ IPv1 #2เฅค
XX.XX.XX.1 - IPv4 เจ—เฉ‡เจŸเจตเฉ‡เฅค
XXXX:XXXX:XXXX:XXXXXX::/64 - เจชเฉ‚เจฐเฉ‡ เจธเจฐเจตเจฐ เจฒเจˆ IPv6เฅค
XXXX:XXXX:XXXX:XXXX:1:2::/96 - eno6 เจฒเจˆ IPv2, เจฌเจพเจนเจฐเฉ‹เจ‚ เจฌเจพเจ•เฉ€ เจธเจญ เจ•เฉเจ eno1 เจตเจฟเฉฑเจš เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
XXXX:XXXX:XXXX:XXXX::1 โ€” IPv6 เจ—เฉ‡เจŸเจตเฉ‡ (เจ‡เจน เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจ‡เจน เจตเฉฑเจ–เจฐเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ/เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค IPv6 เจธเจตเจฟเฉฑเจš เจฆเจฟเจ“)เฅค
dns-nameservers - 127.0.0.1 เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฌเจพเจˆเจ‚เจก เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฅเจพเจชเจค เจนเฉˆ) เจ…เจคเฉ‡ 213.248.1.6 (เจ‡เจน tech.ru เจคเฉ‹เจ‚ เจนเฉˆ)เฅค

โ€œเจŸเฉ‡เจฌเจฒ eno1tโ€ เจ…เจคเฉ‡ โ€œเจŸเฉ‡เจฌเจฒ eno2tโ€ - เจ‡เจนเจจเจพเจ‚ เจฐเฉ‚เจŸ-เจจเจฟเจฏเจฎเจพเจ‚ เจฆเจพ เจ…เจฐเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ eno1 -> เจฐเจพเจนเฉ€เจ‚ เจฆเจพเจ–เจฒ เจนเฉ‹เจฃ เจตเจพเจฒเจพ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจ‡เจธ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เฉ‡เจ—เจพ, เจ…เจคเฉ‡ eno2 -> เจฐเจพเจนเฉ€เจ‚ เจฆเจพเจ–เจฒ เจนเฉ‹เจฃ เจตเจพเจฒเจพ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจ‡เจธ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เฉ‡เจ—เจพเฅค เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจตเฉ€ eno1 เจฐเจพเจนเฉ€เจ‚ เจœเจพเจฃเจ—เฉ‡เฅค

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

เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ…เจธเฉ€เจ‚ เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เฉ‹เจˆ เจตเฉ€ เจธเจฎเจ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจจเจฟเจฏเจฎ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ "เจŸเฉ‡เจฌเจฒ eno1t" -> เจจเฉ‚เฉฐ eno1 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ เจญเฉ‡เจœเจฟเจ† เจœเจพเจตเฉ‡เฅค

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

เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจฆเฉ‡ เจจเจพเจฒ เจ…เจธเฉ€เจ‚ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ เจ•เฉ‹เจˆ เจตเฉ€ เจŸเฉเจฐเฉˆเจซเจฟเจ• eno1 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจตเฉฑเจฒ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

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

เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ…เจธเฉ€เจ‚ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฎเจพเจฐเจ• เจ•เจฐเจจ เจฒเจˆ เจจเจฟเจฏเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

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

เจ‡เจน เจฌเจฒเจพเจ• eno4 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฒเจˆ เจฆเฉ‚เจœเจพ IPv1 เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

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

เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ…เจธเฉ€เจ‚ XX.XX.XX.X4 เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ OpenVPN เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจคเฉ‹เจ‚ เจธเจฅเจพเจจเจ• IPv0 เจคเฉฑเจ• เจฐเฉ‚เจŸ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค
เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเฉ€ เจ•เจฟ เจ‡เจน เจ•เจฎเจพเจ‚เจก เจธเจพเจฐเฉ‡ IPv4 เจฒเจˆ เจ•เจพเจซเฉ€ เจ•เจฟเจ‰เจ‚ เจนเฉˆเฅค

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

เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฒเจˆ เจชเจคเจพ เจธเฉˆเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจฐเจตเจฐ เจ‡เจธเจจเฉ‚เฉฐ "เจ†เจŠเจŸเจ—เฉ‹เจ‡เฉฐเจ—" เจชเจคเฉ‡ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเฉ‡เจ—เจพเฅค เจฆเฉเจฌเจพเจฐเจพ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

":1:1::" เจ‡เฉฐเจจเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจ•เจฟเจ‰เจ‚ เจนเฉˆ? เจคเจพเจ‚ เจ•เจฟ เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเฉ‡ เจ…เจคเฉ‡ เจธเจฟเจฐเจซเจผ เจ‡เจธ เจฒเจˆเฅค เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš.

เจ—เฉ‡เจŸเจตเฉ‡ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ - เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ เฉ€เจ• เจนเฉˆเฅค เจชเจฐ เจธเจนเฉ€ เจคเจฐเฉ€เจ•เจพ เจ‡เฉฑเจฅเฉ‡ เจ‰เจธ เจธเจตเจฟเฉฑเจš เจฆเจพ IPv6 เจฆเจฐเจธเจพเจ‰เจฃเจพ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจธเจฐเจตเจฐ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจคเจพเจ‚ เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡ IPv6 เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจธเจผเจพเจ‡เจฆ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ€ tech.ru เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆเฅค

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

เจ‡เจน เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• IPv6 เจเจกเจฐเฉˆเฉฑเจธ เจœเฉ‹เฉœ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉŒ เจชเจคเจฟเจ†เจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเฉŒ เจฒเจพเจˆเจจเจพเจ‚ เจนเจจเฅค

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

เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจชเฉฑเจธเจผเจŸ เจ•เจฐเจจ เจฒเจˆ เจธเจพเจฐเฉ‡ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธเจพเจ‚ เจฆเฉ‡ เจชเจคเฉ‡ เจ…เจคเฉ‡ เจธเจฌเจจเฉˆเฉฑเจŸ เจจเฉ‹เจŸ เจ•เฉ€เจคเฉ‡ เจนเจจเฅค
eno1 - เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ "/64"- เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจพเจกเฉ‡ เจชเจคเจฟเจ†เจ‚ เจฆเจพ เจชเฉ‚เจฐเจพ เจชเฉ‚เจฒ เจนเฉˆเฅค
tun0 - เจธเจฌเจจเฉˆเฉฑเจŸ eno1 เจคเฉ‹เจ‚ เจตเฉฑเจกเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, OpenVPN เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• IPv6 เจ—เฉ‡เจŸเจตเฉ‡ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค
eno2 - เจธเจฌเจจเฉˆเฉฑเจŸ tun0 เจคเฉ‹เจ‚ เจตเฉฑเจกเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, OpenVPN เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจฅเจพเจจเจ• IPv6 เจชเจคเจฟเจ†เจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจ—เฉ‡เฅค
เจธเจชเจธเจผเจŸเจคเจพ เจฒเจˆ, เจฎเฉˆเจ‚ 16 เจฆเจพ เจธเจฌเจจเฉˆเฉฑเจŸ เจชเฉœเจพเจ… เจšเฉเจฃเจฟเจ† เจนเฉˆ, เจชเจฐ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ "1" เจ•เจฆเจฎ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
เจ‡เจธ เจ…เจจเฉเจธเจพเจฐ, 64+16 = 80, เจ…เจคเฉ‡ 80+16 = 96เฅค

เจนเฉ‹เจฐ เจธเจชเฉฑเจธเจผเจŸเจคเจพ เจฒเจˆ:
XXXX:XXXX:XXXX:XXXX:1:1:YYYY:YYYY เจ‰เจน เจชเจคเฉ‡ เจนเจจ เจœเฉ‹ eno1 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ เจ–เจพเจธ เจธเจพเจˆเจŸเจพเจ‚ เจœเจพเจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจเฅค
XXXX:XXXX:XXXX:XXXX:1:2:YYYY:YYYY เจ‰เจน เจชเจคเฉ‡ เจนเจจ เจœเฉ‹ eno2 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ เจ–เจพเจธ เจธเจพเจˆเจŸเจพเจ‚ เจœเจพเจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจเฅค
XXXX:XXX: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

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจฌเจฟเจฒเจ•เฉเจฒ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค

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 เจชเจคเฉ‡เฅค
เจจเจฟเจฏเจฎเจพเจ‚ เจฆเฉ€ เจ‡เจ•เจธเจพเจฐเจคเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ.

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

เจ‡เจน เจ‡เฉฑเจ• เจธเฉ€เจฎเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ•เฉ‡เจตเจฒ เจฎเฉˆเจ‚ เจนเฉ€ เจ†เจชเจฃเฉ‡ เจธเจฅเจฟเจฐ IP เจคเฉ‹เจ‚ OpenVPN เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจพเจ‚เฅค

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j SNAT --to-source XX.XX.XX.X0
  -- ะธะปะธ --
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE

OpenVPN เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจ…เจคเฉ‡ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจตเจฟเจšเจ•เจพเจฐ IPv4 เจชเฉˆเจ•เฉ‡เจŸ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจฒเจˆ, เจตเจฟเจ•เจฒเจชเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค
เจฆเฉ‹เจตเฉ‡เจ‚ เจนเฉเจ•เจฎ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‡เจธ เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจนเจจเฅค
เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพ เจตเจฟเจ•เจฒเจช เจšเฉเจฃเจฟเจ† เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ˜เฉฑเจŸ CPU เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฐเฉ€เจฌเฉ‚เจŸ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจฐเฉ€เจ†เจ‚ iptables เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจšเฉเฉฑเจ•เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

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

เจ…เจœเจฟเจนเฉ‡ เจจเจพเจ‚ เจธเฉฐเจœเฉ‹เจ— เจจเจพเจฒ เจจเจนเฉ€เจ‚ เจšเฉเจฃเฉ‡ เจ—เจ เจธเจจเฅค เจ‰เจน "iptables-persistent" เจชเฉˆเจ•เฉ‡เจœ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

apt-get install iptables-persistent

เจฎเฉเฉฑเจ– เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ:

apt-get install openvpn easy-rsa

เจ†เจ‰ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ€เจ (เจคเฉเจนเจพเจกเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเฉ€เจ):

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

เจ†เจ‰ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเฉ€เจ:

mcedit vars

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

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

เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฌเจฃเจพเจ“:

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

เจ†เจ‰ เจ…เฉฐเจคเจฎ "client-name.opvn" เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ:

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

# Client mode
client

# Interface tunnel type
dev tun

# TCP protocol
proto tcp-client

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

# Don't bind to local port/address
nobind

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

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

# Enable compression
comp-lzo

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

เจ†เจ‰ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ เจœเฉ‹ เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ“เจชเฉ€เจตเฉ€เจเจจ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฎเจฟเจฒเจพ เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค

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

#!/bin/bash

# First argument: Client identifier

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

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

เจชเจนเจฟเจฒเจพ OpenVPN เจ•เจฒเจพเจ‡เฉฐเจŸ เจฌเจฃเจพเจ‰เจฃเจพ:

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

เจซเจพเจˆเจฒ โ€œ~/client-configs/files/client-name.ovpnโ€ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ‡ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ†เจˆเจ“เจเจธ เจ—เจพเจนเจ•เจพเจ‚ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€ เจšเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€:
"tls-auth" เจŸเฉˆเจ— เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฌเจฟเจจเจพเจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจฆเฉ‡ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค
เจ…เจคเฉ‡ "tls-auth" เจŸเฉˆเจ— เจคเฉ‹เจ‚ เจคเฉเจฐเฉฐเจค เจชเจนเจฟเจฒเจพเจ‚ "เจ•เฉเฉฐเจœเฉ€-เจฆเจฟเจธเจผเจพ 1" เจตเฉ€ เจฒเจ—เจพเจ“เฅค

เจ†เจ‰ เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจธเจฐเจตเจฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ€เจ:

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

เจธเจญ เจคเฉ‹เจ‚ เจฎเฉเจธเจผเจ•เจฒ เจ…เจคเฉ‡ เจฎเฉเฉฑเจ– เจตเฉ‡เจฐเจตเฉ‡.

เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจ…เจœเฉ‡ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ•เจฟ เจ—เจพเจนเจ•เจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• IPv6 เจ—เฉ‡เจŸเจตเฉ‡ เจจเฉ‚เฉฐ เจธเฉเจคเฉฐเจคเจฐ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค
เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ "เจนเฉฑเจฅเฉ€เจ‚" เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃเจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

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

เจซเจพเจˆเจฒ โ€œ/etc/openvpn/server-clientconnect.shโ€:

#!/bin/sh

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

# Load server variables
. /etc/openvpn/variables

ipv6=""

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

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

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

เจซเจพเจˆเจฒ โ€œ/etc/openvpn/server-clientdisconnect.shโ€:

#!/bin/sh

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

# Load server variables
. /etc/openvpn/variables

ipv6=""

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

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

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

เจฆเฉ‹เจตเฉ‡เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ "/etc/openvpn/variables" เจซเจพเจˆเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ:

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

เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจ”เจ–เจพ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฟเจ‰เจ‚ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจนเฉเจฃ เจจเฉˆเฉฑเจŸเจฎเจพเจธเจ• = 112 เจ…เจœเฉ€เจฌ เจฒเฉฑเจ— เจฐเจฟเจนเจพ เจนเฉˆ (เจ‡เจน เจ‰เฉฑเจฅเฉ‡ 96 เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ)เฅค
เจ…เจคเฉ‡ เจ…เจ—เฉ‡เจคเจฐ เจ…เจœเฉ€เจฌ เจนเฉˆ, เจ‡เจน tun0 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพเฅค
เจชเจฐ เจ เฉ€เจ• เจนเฉˆ, เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ›เฉฑเจกเจพเจ‚เจ—เจพ.

cipher DES-EDE3-CBC

เจ‡เจน เจนเจฐ เจ•เจฟเจธเฉ‡ เจฒเจˆ เจจเจนเฉ€เจ‚ เจนเฉˆ - เจฎเฉˆเจ‚ เจ•เจจเฉˆเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจจ เจฆเจพ เจ‡เจน เจคเจฐเฉ€เจ•เจพ เจšเฉเจฃเจฟเจ† เจนเฉˆเฅค

OpenVPN IPv4 เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเฉ‹เฅค

OpenVPN IPv6 เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเฉ‹เฅค

============= เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ ============

เจฎเฉเฉฑเจ– เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ:

apt-get install postfix

เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, "เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจธเจพเจˆเจŸ" เจšเฉเจฃเฉ‹เฅค

เจฎเฉ‡เจฐเจพ "/etc/postfix/main.cf" เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:

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

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

readme_directory = no

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

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

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

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

internal_mail_filter_classes = bounce

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

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

smtpd_helo_restrictions =
        #reject_invalid_helo_hostname,
        #reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname

smtpd_client_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_helo_hostname,
        permit

# SPF
policyd-spf_time_limit = 3600

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

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

เจ†เจ“ เจ‡เจธ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจเฅค

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

เจ–เจพเจฌเจฐเฉ‹เจตเจธเจ• เจจเจฟเจตเจพเจธเฉ€เจ†เจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ‡เจธ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš "เจ—เจฒเจค เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ…เจคเฉ‡ เจ—เจฒเจค เจฅเฉ€เจธเจฟเจธ" เจธเจผเจพเจฎเจฒ เจนเจจเฅคเจฎเฉ‡เจฐเฉ‡ เจ•เจฐเฉ€เจ…เจฐ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจคเฉ‹เจ‚ เจธเจฟเจฐเจซ 8 เจธเจพเจฒ เจฌเจพเจ…เจฆ เจฎเฉˆเจ‚ เจ‡เจน เจธเจฎเจเจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ•เจฟ SSL เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจน เจฆเฉฑเจธเจฃ เจฆเฉ€ เจ†เจœเจผเจพเจฆเฉ€ เจฒเจตเจพเจ‚เจ—เจพ เจ•เจฟ SSL เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ (โ€œเจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?โ€ เจ…เจคเฉ‡ โ€œเจ‡เจน เจ•เจฟเจ‰เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?โ€ เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ‡ เจœเจตเจพเจฌ เจฆเจฟเฉฑเจคเฉ‡ เจฌเจฟเจจเจพเจ‚)เฅค

เจ†เจงเฉเจจเจฟเจ• เจ‡เจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจฆเจพ เจ†เจงเจพเจฐ เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจพ (เจ…เฉฑเจ–เจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฆเฉ‹ เจฌเจนเฉเจค เจฒเฉฐเจฌเฉ€เจ†เจ‚ เจคเจพเจฐเจพเจ‚) เจฆเฉ€ เจฐเจšเจจเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• "เจ•เฉเฉฐเจœเฉ€" เจจเจฟเฉฑเจœเฉ€ เจนเฉˆ, เจฆเฉ‚เจœเฉ€ เจ•เฉเฉฐเจœเฉ€ "เจœเจจเจคเจ•" เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจงเจฟเจ†เจจ เจจเจพเจฒ เจ—เฉเจชเจค เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจนเจฐ เจ•เจฟเจธเฉ‡ เจจเฉ‚เฉฐ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจตเฉฐเจกเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เฉฑเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจคเฉเจธเฉ€เจ‚ เจŸเฉˆเจ•เจธเจŸ เจฆเฉ€ เจ‡เฉฑเจ• เจธเจคเจฐ เจจเฉ‚เฉฐ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจ•เฉ‡เจตเจฒ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจฆเจพ เจฎเจพเจฒเจ• เจ‡เจธเจจเฉ‚เฉฐ เจกเฉ€เจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐ เจธเจ•เฉ‡เฅค
เจ–เฉˆเจฐ, เจ‡เจน เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจฆเจพ เจธเจพเจฐเจพ เจ…เจงเจพเจฐ เจนเฉˆ.

เจ•เจฆเจฎ #1 - https เจธเจพเจˆเจŸเจพเจ‚เฅค
เจ•เจฟเจธเฉ‡ เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเฉˆเจฌ เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจ–เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจˆเจŸ https เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจ‡เฉฑเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฌเฉเจฐเจพเจŠเจœเจผเจฐ HTTP- เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจญเฉ‡เจœเจฃ เจฒเจˆ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจ‡เฉฑเจ• http-เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‰เจนเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉœเฉเจนเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฟเจจเฉเจนเจพเจ‚ เจ•เฉ‹เจฒ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจนเฉˆ, เจฏเจพเจจเฉ€ เจธเจฟเจฐเจซเจผ เจ‰เจน เจธเจฐเจตเจฐ เจœเจฟเจธ เจจเฉ‚เฉฐ เจฌเฉ‡เจจเจคเฉ€ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค
Http- เจฌเฉ‡เจจเจคเฉ€ เจตเจฟเฉฑเจš เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• URI เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจฆเฉ‡เจธเจผ เจชเฉ‚เจฐเฉ€ เจธเจพเจˆเจŸ 'เจคเฉ‡ เจจเจนเฉ€เจ‚, เจชเจฐ เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉ€เจฎเจค เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ https เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจเจพ เจ…เจธเฉฐเจญเจต เจนเฉˆเฅค

เจ•เจฆเจฎ #2 - เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก เจœเจตเจพเจฌเฅค
เจตเฉˆเจฌ เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจœเจตเจพเจฌ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเฉœเจ• 'เจคเฉ‡ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจชเฉœเฉเจนเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
เจนเฉฑเจฒ เจฌเจนเฉเจค เจนเฉ€ เจธเจงเจพเจฐเจจ เจนเฉˆ - เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจนเจฐเฉ‡เจ• https เจธเจพเจˆเจŸ เจฒเจˆ เจ‡เฉฑเจ•เฉ‹ เจจเจฟเฉฑเจœเฉ€-เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจ…เจคเฉ‡ เจธเจพเจˆเจŸ เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฒเจˆ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ‡ เจจเจพเจฒ, เจ‡เจน เจ†เจชเจฃเฉ€ เจธเจฅเจพเจจเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ.
เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจฏเจพเจฆ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡, เจœเจฆเฉ‹เจ‚ http-เจœเจตเจพเจฌ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจนเฉเจฃ http-เจœเจตเจพเจฌ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจฎเจพเจฒเจ• เจฆเฉเจ†เจฐเจพ เจกเฉ€เจ•เฉเจฐเจฟเจชเจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจ…เจฐเจฅเจพเจค, เจ•เจฒเจพเจ‡เฉฐเจŸ เจ–เฉเจฆ)เฅค

เจ•เจฆเจฎ เจจเฉฐเจฌเจฐ 3 - เจ‡เฉฑเจ• เจœเจจเจคเจ• เจšเฉˆเจจเจฒ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพเฅค
เจ‰เจฆเจพเจนเจฐเจจ เจจเฉฐเจฌเจฐ 2 เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจนเฉˆ - เจ•เฉเจ เจตเฉ€ เจธเจผเฉเจญเจšเจฟเฉฐเจคเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• http- เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฃ เจ…เจคเฉ‡ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจฐเฉ‹เจ•เจฆเจพเฅค
เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจตเจฟเจšเฉ‹เจฒเจพ เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ เจฌเจฆเจฒเจฃ เจคเฉฑเจ• เจญเฉ‡เจœเฉ‡ เจ…เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจธเจพเจฐเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเฉ‡เจ–เฉ‡เจ—เจพเฅค
เจ‡เจธ เจจเจพเจฒ เจจเจœเจฟเฉฑเจ เจฃเจพ เจฌเจนเฉเจค เจธเจฐเจฒ เจนเฉˆ - เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจตเจœเฉ‹เจ‚ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจญเฉ‡เจœเฉ‹เฅค
เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจชเจนเจฟเจฒเจพเจ‚ "เจคเฉเจนเจพเจกเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉˆ" เจตเจฐเจ—เจพ เจœเจตเจพเจฌ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจ‡เจธ เจธเฉเจจเฉ‡เจนเฉ‡ เจจเฉ‚เฉฐ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจœเจตเจพเจฌ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเจพ เจนเฉˆ - เจœเฉ‡เจ•เจฐ "เจคเฉเจนเจพเจกเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉˆ" เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจคเจพเจ‚ เจ‡เจน 100% เจ—เจพเจฐเฉฐเจŸเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆเฅค
เจ‡เจน เจ•เจฟเฉฐเจจเจพ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆ?
เจ…เจœเจฟเจนเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ เจฆเฉ€ เจธเจฟเจฐเจœเจฃเจพ เจชเจฟเฉฐเจ—*2 เจฆเฉ€ เจ—เจคเฉ€ เจจเจพเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ 20 เจฎเจฟ.
เจนเจฎเจฒเจพเจตเจฐ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจธเฉ‡ เจ‡เฉฑเจ• เจงเจฟเจฐ เจฆเฉ€ เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค เจœเจพเจ‚ เจ•เฉเจ เจฎเจฟเจฒเฉ€เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฒเฉฑเจญเฉ‹เฅค
เจ‡เฉฑเจ• เจ†เจงเฉเจจเจฟเจ• เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจนเฉˆเจ• เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉเจชเจฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ เจ•เจˆ เจฆเจนเจพเจ•เฉ‡ เจฒเฉฑเจ— เจœเจพเจฃเจ—เฉ‡เฅค

เจ•เจฆเจฎ #4 - เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเจพ เจœเจจเจคเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธเฅค
เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจชเฉ‚เจฐเฉ€ เจ•เจนเจพเจฃเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ เจฒเจˆ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจตเจฟเจšเจ•เจพเจฐ เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ 'เจคเฉ‡ เจฌเฉˆเจ เจฃ เจฆเจพ เจฎเฉŒเจ•เจพ เจนเฉˆ.
เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจฐเจตเจฐ เจนเฉ‹เจฃ เจฆเจพ เจฆเจฟเจ–เจพเจตเจพ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจนเฉ‹เจฃ เจฆเจพ เจฆเจฟเจ–เจพเจตเจพ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจฆเฉ‹เจนเจพเจ‚ เจฆเจฟเจธเจผเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจœเฉ‹เฉœเฉ€ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ‹เฅค
เจซเจฟเจฐ เจนเจฎเจฒเจพเจตเจฐ เจธเจพเจฐเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‡เจ—เจพ เจ…เจคเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ "เจธเฉฐเจชเจพเจฆเจฟเจค" เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพเฅค
เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‰เจน เจชเจคเจพ เจฌเจฆเจฒเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจชเฉˆเจธเฉ‡ เจญเฉ‡เจœเจฃเฉ‡ เจนเจจ เจœเจพเจ‚ เจ”เจจเจฒเจพเจˆเจจ เจฌเฉˆเจ‚เจ•เจฟเฉฐเจ— เจคเฉ‹เจ‚ เจชเจพเจธเจตเจฐเจก เจ•เจพเจชเฉ€ เจ•เจฐเฉ‹ เจœเจพเจ‚ "เจ‡เจคเจฐเจพเจœเจผเจฏเฉ‹เจ—" เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจฌเจฒเฉŒเจ• เจ•เจฐเฉ‹เฅค
เจ…เจœเจฟเจนเฉ‡ เจนเจฎเจฒเจพเจตเจฐเจพเจ‚ เจฆเจพ เจฎเฉเจ•เจพเจฌเจฒเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‰เจน เจนเจฐเฉ‡เจ• https เจธเจพเจˆเจŸ เจฒเจˆ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจœเจจเจคเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเฉˆ เจ•เฉ‡ เจ†เจ เจนเจจเฅค
เจนเจฐเฉ‡เจ• เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจฒเจ—เจญเจ— 200 เจ…เจœเจฟเจนเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฌเจพเจฐเฉ‡ "เจœเจพเจฃเจฆเจพ เจนเฉˆ"เฅค เจ‡เจน เจนเจฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค
"เจ—เจฟเจ†เจจ" เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเฉเจ†เจฐเจพ เจธเจฎเจฐเจฅเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจญเจพเจต, เจนเจฐเฉ‡เจ• เจ–เจพเจธ เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจฃ เจ…เจฅเจพเจฐเจŸเฉ€ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจœเจพเจ…เจฒเฉ€ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพเฅค

เจนเฉเจฃ https เจฒเจˆ SSL เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเจฎเจ เจนเฉˆ.
เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจฆเจฟเจฎเจพเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ เจ•เจฟ เจตเจฟเจธเจผเฉ‡เจธเจผ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจ‡เจธ เจขเจพเจ‚เจšเฉ‡ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจนเฉˆเจ• เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ. เจชเจฐ เจ‡เจน เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจญเจฟเจ†เจจเจ• เจ•เฉ‹เจธเจผเจฟเจธเจผเจพเจ‚ เจฆเฉ€ เจ•เฉ€เจฎเจค เจฆเฉ‡เจตเฉ‡เจ—เจพ.
เจ…เจคเฉ‡ NSA เจœเจพเจ‚ CIA เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ - เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฆเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจนเฉˆเจ• เจ•เจฐเจจเจพ เจฒเจ—เจญเจ— เจ…เจธเฉฐเจญเจต เจนเฉˆ, เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ VIPs เจฒเจˆ เจตเฉ€เฅค

เจฎเฉˆเจ‚ ssh เจ•เฉเจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจ•เจฐเจพเจ‚เจ—เจพเฅค เจ‰เฉฑเจฅเฉ‡ เจ•เฉ‹เจˆ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจนเจจ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹? เจฎเจธเจฒเจพ เจฆเฉ‹ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
เจตเจฟเจ•เจฒเจช ssh-เจฌเจพเจˆ-เจชเจพเจธเจตเจฐเจก:
เจชเจนเจฟเจฒเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, ssh เจ•เจฒเจพเจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฆเฉ‡เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ ssh เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจนเฉˆเฅค
เจ…เจคเฉ‡ เจ…เจ—เจฒเฉ‡ เจ•เจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, เจœเฉ‡เจ•เจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€ "ssh เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจจเจตเฉ€เจ‚ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€" เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจ‡เจน เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจ‰เจน เจคเฉเจนเจพเจกเฉ‡ เจฌเจพเจฐเฉ‡ เจธเฉเจฃเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเจจเฅค
เจœเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ 'เจคเฉ‡ เจธเฉเจฃเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจชเจฐ เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจตเจฟเจšเฉ‹เจฒเฉ‡ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจธเจฐเจตเจฐ เจจเจพเจฒ เจธเฉฐเจšเจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค
เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจตเจพเจ‡เจฐเจŸเฉˆเจชเจฟเฉฐเจ— เจฆเฉ‡ เจคเฉฑเจฅ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ, เจœเจฒเจฆเฉ€ เจ…เจคเฉ‡ เจ…เจธเจพเจจเฉ€ เจจเจพเจฒ เจชเฉเจฐเจ—เจŸ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจ‡เจน เจนเจฎเจฒเจพ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจ–เจพเจธ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจตเจฟเจ•เจฒเจช ssh-เจฌเจพเจˆ-เจ•เฉเฉฐเจœเฉ€:
เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจ‡เจธ 'เจคเฉ‡ 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

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจ†เจ‰เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจฎเฉ‡เจฒ เจกเจตเจ•เฉ‹เจŸ เจจเฉ‚เฉฐ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค
เจ…เจคเฉ‡ เจกเฉ‹เจฎเฉ‡เจจ, เจฎเฉ‡เจฒเจฌเจพเจ•เจธ, เจ‰เจชเจจเจพเจฎ เจฒเจˆ เจจเจฟเจฏเจฎ - เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เฉ‹.

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

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

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

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

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

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

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

เจนเฉเจฃ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ•เจฟ เจกเฉ‹เจตเจ•เฉ‹เจŸ เจจเจพเจฒ เจ…เจงเจฟเจ•เจพเจฐเจค เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉ€ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃ เจฒเจˆ เจฎเฉ‡เจฒ เจธเจตเฉ€เจ•เจพเจฐ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจธเฉฑเจšเจฎเฉเฉฑเจš เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเฉ€ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจฅเฉ‡ เจกเฉเจชเจฒเฉ€เจ•เฉ‡เจŸ เจ•เจฟเจ‰เจ‚ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ "เจตเจฐเจšเฉเจ…เจฒ_เจŸเฉเจฐเจพเจ‚เจธเจชเฉ‹เจฐเจŸ" เจตเจฟเฉฑเจš เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค

เจชเจฐ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจธเจฟเจธเจŸเจฎ เจฌเจนเฉเจค เจชเฉเจฐเจพเจฃเจพ เจนเฉˆ - เจธเจผเจพเจ‡เจฆ เจ‡เจน เจชเฉเจฐเจพเจฃเฉ‡ เจฆเจฟเจจเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจฅเฉเจฐเฉ‹เจฌเฉˆเจ• เจนเฉˆ.

smtpd_recipient_restrictions =
        ...

smtpd_helo_restrictions =
        ...

smtpd_client_restrictions =
        ...

เจ‡เจธ เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจฒเจˆ เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจฎเฉ‡เจฐเฉ‡ เจจเจฟเจชเจŸเจพเจฐเฉ‡ 'เจคเฉ‡ 3 เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจนเจจ เจ…เจคเฉ‡ เจ‡เจน เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจ•เจพเจฐเจจ เจฌเจนเฉเจค เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจนเจจเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจจเจพเจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ - เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจธเจชเฉˆเจฎ เจคเฉเจนเจพเจกเฉ‡ เจตเจฟเฉฑเจš เจ† เจœเจพเจตเฉ‡เจ—เจพ, เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจตเฉ€ เจฎเจพเฉœเจพ - เจคเฉเจนเจพเจกเฉ‡ เจคเฉ‹เจ‚ เจธเจชเฉˆเจฎ เจฌเจพเจนเจฐ เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

# SPF
policyd-spf_time_limit = 3600

เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจ…เฉฑเจ–เจฐเจพเจ‚ เจฆเฉ‡ SPF เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจ•เฉเจ เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจˆ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐเจจเจพเฅค

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

เจธเฉˆเจŸเจฟเฉฐเจ— เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจ†เจŠเจŸเจ—เฉ‹เจ‡เฉฐเจ— เจˆเจฎเฉ‡เจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• DKIM เจนเจธเจคเจพเจ–เจฐ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

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

เจ‡เจน PHP เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจคเฉ‹เจ‚ เจ…เฉฑเจ–เจฐ เจญเฉ‡เจœเจฃ เจตเฉ‡เจฒเฉ‡ เจฒเฉˆเจŸเจฐ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉเฉฑเจ– เจตเฉ‡เจฐเจตเจพ เจนเฉˆเฅค

เจซเจพเจˆเจฒ โ€œ/etc/postfix/sdd_transport.pcreโ€:

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

เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจจเจฟเจฏเจฎเจค เจธเจฎเฉ€เจ•เจฐเจจ เจนเจจเฅค เจธเฉฑเจœเฉ‡ เจชเจพเจธเฉ‡ เจ‡เฉฑเจ• เจฒเฉ‡เจฌเจฒ เจนเฉˆ เจœเฉ‹ เจ…เฉฑเจ–เจฐ เจจเฉ‚เฉฐ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค
เจฒเฉ‡เจฌเจฒ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ - เจ‡เฉฑเจ• เจ–เจพเจธ เจ…เฉฑเจ–เจฐ เจฒเจˆ เจ•เฉเจ เจนเฉ‹เจฐ เจธเฉฐเจฐเจšเจจเจพ เจฒเจพเจˆเจจเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‡เจ—เจพเฅค

เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจ…เฉฑเจ–เจฐ เจฒเจˆ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฆเฉเจฌเจพเจฐเจพ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ "master.cf" เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฒเจพเจˆเจจเจพเจ‚ 4, 5, 6 เจฎเฉเฉฑเจ– เจนเจจเฅค เจ…เจธเฉ€เจ‚ เจ•เจฟเจธ เจกเฉ‹เจฎเฉ‡เจจ เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚ เจชเฉฑเจคเจฐ เจญเฉ‡เจœ เจฐเจนเฉ‡ เจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจน เจฒเฉ‡เจฌเจฒ เจฒเจ—เจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค
เจชเจฐ เจชเฉเจฐเจพเจฃเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš PHP เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจตเจฟเฉฑเจš "เจคเฉ‹เจ‚" เจ–เฉ‡เจคเจฐ เจนเจฎเฉ‡เจธเจผเจพ เจจเจนเฉ€เจ‚ เจฆเจฐเจธเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจซเจฟเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฎ เจฌเจšเจพเจ… เจฒเจˆ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ.

เจฒเฉ‡เจ– เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจตเจฟเจ†เจชเจ• เจนเฉˆ - เจฎเฉˆเจ‚ nginx+fpm เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจ•เฉ‡ เจตเจฟเจšเจฒเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพ.

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจนเจฐเฉ‡เจ• เจธเจพเจˆเจŸ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจธเจฆเจพ เจ†เจชเจฃเจพ เจฒเฉ€เจจเจ•เจธ-เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเจพเจฒเจ• เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจคเฉเจนเจพเจกเจพ fpm-เจชเฉ‚เจฒ.

Fpm-pool php เจฆเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ‡เจน เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ•เฉ‹ เจธเจฐเจตเจฐ 'เจคเฉ‡ php เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจ—เฉเจ†เจ‚เจขเฉ€ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– php.ini เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹)เฅค

เจ‡เจธ เจฒเจˆ, เจ‡เฉฑเจ• เจ–เจพเจธ เจฒเฉ€เจจเจ•เจธ-เจ‰เจชเจญเฉ‹เจ—เจคเจพ "www-domain2" เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ domain2.com เจนเฉˆเฅค เจ‡เจธ เจธเจพเจˆเจŸ เจตเจฟเฉฑเจš from เจซเฉ€เจฒเจก เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจˆเจฎเฉ‡เจฒ เจญเฉ‡เจœเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจ•เฉ‹เจก เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจตเฉ€, เจ…เฉฑเจ–เจฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจญเฉ‡เจœเฉ‡ เจœเจพเจฃเจ—เฉ‡ เจ…เจคเฉ‡ เจ•เจฆเฉ‡ เจตเฉ€ เจธเจชเฉˆเจฎ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจ—เฉ‡.

เจฎเฉ‡เจฐเจพ "/etc/postfix/master.cf" เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:

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

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

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

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

เจซเจพเจˆเจฒ เจชเฉ‚เจฐเฉ€ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจนเฉˆ - เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเจนเฉเจค เจตเฉฑเจกเฉ€ เจนเฉˆเฅค
เจฎเฉˆเจ‚ เจธเจฟเจฐเจซ เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจ•เจฟ เจ•เฉ€ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€.

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

เจ‡เจน เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจนเจจ, เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš.

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

เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉ‹เจฐเจŸ 587 เจฐเจพเจนเฉ€เจ‚ เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค
เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเจพเจ—เจ‡เจจ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค

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

SPF เจœเจพเจ‚เจš เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“เฅค

apt-get install postfix-policyd-spf-python

เจšเจฒเฉ‹ เจ‰เจชเจฐเฉ‹เจ•เจค SPF เจœเจพเจ‚เจšเจพเจ‚ เจฒเจˆ เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ€เจเฅค

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

เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจคเฉ‹เจ‚ เจฆเจฟเจฒเจšเจธเจช เจ—เฉฑเจฒ เจนเฉˆ. เจ‡เจน เจ‡เฉฑเจ• เจ–เจพเจธ IPv4/IPv6 เจชเจคเฉ‡ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจ–เจพเจธ เจกเฉ‹เจฎเฉ‡เจจ เจฒเจˆ เจ…เฉฑเจ–เจฐ เจญเฉ‡เจœเจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจนเฉˆเฅค

เจ‡เจน rDNS เจฆเฉ€ เจ–เจผเจพเจคเจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค rDNS IP เจเจกเจฐเฉˆเฉฑเจธ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจธเจคเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจนเฉˆเฅค
เจ…เจคเฉ‡ เจฎเฉ‡เจฒ เจฒเจˆ, เจ‡เจน เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ‡เจน เจชเฉเจธเจผเจŸเฉ€ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจนเฉˆเจฒเฉ‹ เจ‰เจธ เจชเจคเฉ‡ เจฆเฉ‡ rDNS เจจเจพเจฒ เจฌเจฟเจฒเจ•เฉเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจˆเจฎเฉ‡เจฒ เจญเฉ‡เจœเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจœเฉ‡เจ•เจฐ เจนเฉˆเจฒเฉ‹ เจˆเจฎเฉ‡เจฒ เจกเฉ‹เจฎเฉ‡เจจ เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพ เจœเจฟเจธ เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚ เจชเฉฑเจคเจฐ เจญเฉ‡เจœเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจคเจพเจ‚ เจธเจชเฉˆเจฎ เจชเฉเจ†เจ‡เฉฐเจŸ เจฆเจฟเฉฑเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจนเฉˆเจฒเฉ‹ rDNS เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพ - เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเจชเฉˆเจฎ เจชเฉเจ†เจ‡เฉฐเจŸ เจฆเจฟเฉฑเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค
เจ‡เจธ เจ…เจจเฉเจธเจพเจฐ, เจนเจฐเฉ‡เจ• เจกเฉ‹เจฎเฉ‡เจจ เจฆเจพ เจ†เจชเจฃเจพ IP เจชเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
OVH เจฒเจˆ - เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš rDNS เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค
tech.ru เจฒเจˆ - เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจธเจฎเจฐเจฅเจจ เจฆเฉเจ†เจฐเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ.
AWS เจฒเจˆ, เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจธเจฎเจฐเจฅเจจ เจฆเฉเจ†เจฐเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
โ€œinet_protocolsโ€ เจ…เจคเฉ‡ โ€œsmtp_bind_address6โ€ - เจ…เจธเฉ€เจ‚ IPv6 เจธเจนเจพเจ‡เจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค
IPv6 เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ rDNS เจตเฉ€ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
"syslog_name" - เจ…เจคเฉ‡ เจ‡เจน เจฒเฉŒเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจธเฉŒเจ– เจฒเจˆ เจนเฉˆเฅค

เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจ–เจฐเฉ€เจฆเฉ‹ เจฎเฉˆเจ‚ เจ‡เฉฑเจฅเฉ‡ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚.

เจ‡เฉฑเจฅเฉ‡ เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ+เจกเฉ‹เจตเจ•เฉ‹เจŸ เจฒเจฟเฉฐเจ• เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจเจพ.

SPF เจธเฉˆเฉฑเจŸ เจ•เจฐเจจเจพเฅค

============= เจ˜เฉเฉฑเจ—เฉ€ ============

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

mysql เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจเจพ, เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพเฅค

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/10-auth.conf"

disable_plaintext_auth = yes
auth_mechanisms = plain login

เจ…เจงเจฟเจ•เจพเจฐ เจธเจฟเจฐเจซเจผ เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก เจนเฉˆเฅค

เจซเจพเจˆเจฒ โ€œ/etc/dovecot/conf.d/10-mail.confโ€

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

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ…เฉฑเจ–เจฐเจพเจ‚ เจฒเจˆ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจŸเจฟเจ•เจพเจฃเจพ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

เจฎเฉˆเจ‚ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡ เจ…เจคเฉ‡ เจกเฉ‹เจฎเฉ‡เจจ เจฆเฉเจ†เจฐเจพ เจ—เจฐเฉเฉฑเจช เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เฅค

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/10-master.conf"

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

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

เจ‡เจน เจฎเฉเฉฑเจ– 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 เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
เจ…เจคเฉ‡ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจ–เฉเจฆ. เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจตเฉ‡เจฐเจตเจพ "เจธเจฅเจพเจจเจ•" เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจนเฉˆเฅค เจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจนเฉœเฉ‡ เจธเจฅเจพเจจเจ• IPv4 เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ•เจฟเจนเฉœเจพ SSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจตเจฐเจคเจฃเจพ เจนเฉˆเฅค

เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, IPv6 เจ‡เฉฑเจฅเฉ‡ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจฎเฉˆเจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธ เจญเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจพเจ‚เจ—เจพเฅค
XX.XX.XX.X5 (เจกเฉ‹เจฎเฉ‡เจจ2) - เจ•เฉ‹เจˆ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจจเจนเฉ€เจ‚เฅค เจ—เจพเจนเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ domain1.com เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
XX.XX.XX.X2 (เจกเฉ‹เจฎเฉ‡เจจ3) - เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ—เจพเจนเจ•เจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ domain1.com เจœเจพเจ‚ domain3.com เจจเฉ‚เฉฐ เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/15-lda.conf"

protocol lda {
  mail_plugins = $mail_plugins sieve
}

เจ‡เจน เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจธเจชเฉˆเจฎเจพเจธเจพเจธเฉ€เจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ.

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/20-imap.conf"

protocol imap {
  mail_plugins = $mail_plugins antispam
}

เจ‡เจน เจ‡เฉฑเจ• เจเจ‚เจŸเฉ€เจธเจชเฉˆเจฎ เจชเจฒเฉฑเจ—เจ‡เจจ เจนเฉˆเฅค "เจธเจชเฉˆเจฎ" เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš/เจคเฉ‹เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจฆเฉ€ เจธเจฟเจ–เจฒเจพเจˆ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆเฅค

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/20-pop3.conf"

protocol pop3 {
}

เจ…เจœเจฟเจนเฉ€ เจนเฉ€ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจนเฉˆเฅค

เจซเจพเจˆเจฒ โ€œ/etc/dovecot/conf.d/20-lmtp.confโ€

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

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
}

เจธเจชเฉˆเจฎ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš/เจคเฉ‹เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจธเจฟเจ–เจฒเจพเจˆ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚เฅค

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/90-sieve.conf"

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

เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจœเฉ‹ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจ…เฉฑเจ–เจฐเจพเจ‚ เจจเจพเจฒ เจ•เฉ€ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจซเจพเจˆเจฒ "/var/lib/dovecot/sieve/default.sieve"

require ["fileinto", "mailbox"];

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

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ: "sievec default.sieve".

เจซเจพเจˆเจฒ "/etc/dovecot/conf.d/auth-sql.conf.ext"

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

เจ…เจงเจฟเจ•เจพเจฐ เจฒเจˆ sql เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ.
เจ…เจคเฉ‡ เจซเจพเจˆเจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจขเฉฐเจ— เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ.

เจซเจพเจˆเจฒ "/etc/dovecot/dovecot-sql.conf.ext"

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

เจ‡เจน เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจฒเจˆ เจธเจฎเจพเจจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจซเจพเจˆเจฒ "/etc/dovecot/dovecot.conf"

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

เจฎเฉเฉฑเจ– เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจ‡เจฒ.
เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจธเฉฐเจ•เฉ‡เจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ - เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹.

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

apt-get install spamassassin spamc

เจ†เจ‰ เจชเฉˆเจ•เฉ‡เจœ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ€เจเฅค

adduser spamd --disabled-login

เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจ เจœเจฟเจธเจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚เฅค

systemctl enable spamassassin.service

เจ…เจธเฉ€เจ‚ เจฒเฉ‹เจก เจนเฉ‹เจฃ 'เจคเฉ‡ เจธเจตเฉˆ-เจฒเฉ‹เจกเจฟเฉฐเจ— เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

เจซเจพเจˆเจฒ "/etc/default/spamassassin":

CRON=1

เจจเจฟเจฏเจฎเจพเจ‚ เจฆเฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพ เจ•เฉ‡ "เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš"เฅค

เจซเจพเจˆเจฒ โ€œ/etc/spamassassin/local.cfโ€:

report_safe 0

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

เจคเฉเจนเจพเจจเฉ‚เฉฐ mysql เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ โ€œsaโ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพ โ€œsaโ€ เจจเจพเจฒ เจชเจพเจธเจตเจฐเจก โ€œเจชเจพเจธเจตเจฐเจกโ€ (เจ‰เจšเจฟเจค เจšเฉ€เจœเจผ เจจเจพเจฒ เจฌเจฆเจฒเฉ‹)เฅค

report_safe - เจ‡เจน เจšเจฟเฉฑเจ เฉ€ เจฆเฉ€ เจฌเจœเจพเจ เจธเจชเฉˆเจฎ เจˆเจฎเฉ‡เจฒ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจญเฉ‡เจœเฉ‡เจ—เจพเฅค
use_bayes เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจฎเจธเจผเฉ€เจจ เจฒเจฐเจจเจฟเฉฐเจ— เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจนเจจเฅค

เจฌเจพเจ•เฉ€ เจฌเจšเฉ€เจ†เจ‚ เจธเจชเฉˆเจฎเจพเจธเฉˆเจธเจฟเจจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจตเจฐเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจธเจจเฅค

เจ†เจฎ เจธเฉˆเจŸเจฟเฉฐเจ— "เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ".
เจจเจตเฉ€เจ†เจ‚ เจธเจชเฉˆเจฎ เจˆเจฎเฉ‡เจฒเจพเจ‚ เจจเฉ‚เฉฐ IMAP โ€œเจธเจชเฉˆเจฎโ€ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡.
Dovecot + SpamAssassin เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเฉเจฎเฉ‡เจฒ เจฌเจพเจฐเฉ‡.
เจฎเฉˆเจ‚ เจ‡เจฎเฉˆเจช เจซเฉ‹เจฒเจกเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ…เฉฑเจ–เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเจฟเจฒเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจธเจชเฉˆเจฎเจพเจธเจพเจธเจฟเจจ เจธเจฟเฉฑเจ–เจฃ เจฆเฉ‡ เจธเจฟเจงเจพเจ‚เจค เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚ (เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจคเจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ).

============= เจญเจพเจˆเจšเจพเจฐเฉ‡ เจจเฉ‚เฉฐ เจ…เจชเฉ€เจฒ =============

เจฎเฉˆเจ‚ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเฉ‡ เจ—เจ เจ…เฉฑเจ–เจฐเจพเจ‚ เจฆเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฆเฉ‡ เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจญเจพเจˆเจšเจพเจฐเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐ เจธเฉเฉฑเจŸเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจ‚ เจฎเฉ‡เจฒ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจกเฉเฉฑเจฌเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเจพเจ‚.

เจคเจพเจ‚ เจœเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ†เจชเจฃเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ (เจ†เจŠเจŸเจฒเฉเฉฑเจ•, เจฅเฉฐเจกเจฐเจฌเจฐเจก, เจฌเฉเจฐเจพเจŠเจœเจผเจฐ-เจชเจฒเฉฑเจ—เจ‡เจจ, ...) 'เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจœเฉ‹เฉœเจพ เจฌเจฃเจพ เจธเจ•เฉ‡เฅค เจœเจจเจคเจ• เจ…เจคเฉ‡ เจจเจฟเฉฑเจœเฉ€. เจœเจจเจคเจ• - DNS เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ‹เฅค เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ - เจ•เจฒเจพเจ‡เฉฐเจŸ 'เจคเฉ‡ เจธเฉ‡เจต เจ•เจฐเฉ‹เฅค เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจชเฉเจฐเจพเจชเจคเจ•เจฐเจคเจพ เจจเฉ‚เฉฐ เจญเฉ‡เจœเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡เฅค

เจ…เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจ…เฉฑเจ–เจฐเจพเจ‚ เจจเจพเจฒ เจธเจชเฉˆเจฎ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจฃ เจฒเจˆ (เจนเจพเจ‚, เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ) - เจคเฉเจนเจพเจจเฉ‚เฉฐ 3 เจจเจฟเจฏเจฎ เจชเฉ‡เจธเจผ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€:

  1. เจฒเจพเจœเจผเจฎเฉ€ เจ…เจธเจฒ DKIM เจนเจธเจคเจพเจ–เจฐ, เจฒเจพเจœเจผเจฎเฉ€ SPF, เจฒเจพเจœเจผเจฎเฉ€ rDNSเฅค
  2. เจเจ‚เจŸเฉ€เจธเจชเฉˆเจฎ เจธเจฟเจ–เจฒเจพเจˆ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจฟเจŠเจฐเจฒ เจจเฉˆเจŸเจตเจฐเจ• + เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจพเจˆเจก 'เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธเฅค
  3. เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจ…เจœเจฟเจนเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจญเฉ‡เจœเจฃ เจตเจพเจฒเฉ‡ เจชเจพเจธเฉ‡ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจชเจพเจธเฉ‡ เจจเจพเจฒเฉ‹เจ‚ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ 'เจคเฉ‡ 100 เจ—เฉเจฃเจพ เจœเจผเจฟเจ†เจฆเจพ CPU เจชเจพเจตเจฐ เจ–เจฐเจš เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค

เจœเจจเจคเจ• เจชเฉฑเจคเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, "เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจชเฉฑเจคเจฐ-เจตเจฟเจนเจพเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ" เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐเฉ€ เจชเฉเจฐเจธเจคเจพเจต เจชเฉฑเจคเจฐ เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเฉ‹เฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• (เจฎเฉ‡เจฒเจฌเจพเจ•เจธ) เจฆเฉ‚เจœเฉ‡ เจฎเฉ‡เจฒเจฌเจพเจ•เจธ เจจเฉ‚เฉฐ เจ…เจŸเฉˆเจšเจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจชเฉฑเจคเจฐ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจชเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจชเฉฑเจคเจฐ-เจตเจฟเจนเจพเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจŸเฉˆเจ•เจธเจŸ เจชเฉเจฐเจธเจคเจพเจต เจ…เจคเฉ‡ เจฎเฉ‡เจฒเจฌเจพเจ•เจธ เจฆเฉ‡ เจฎเจพเจฒเจ• เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ (เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจพเจˆเจก 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจจเจพเจฒ) เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจชเฉฑเจคเจฐ-เจตเจฟเจนเจพเจฐ เจฒเจˆ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจตเฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจชเฉเจฐเจพเจชเจคเจ•เจฐเจคเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เจธ เจชเฉ‡เจธเจผเจ•เจธเจผ เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจญเฉ‡เจœ เจธเจ•เจฆเจพ เจนเฉˆ (เจ‡เจธ เจชเฉฑเจคเจฐ-เจตเจฟเจนเจพเจฐ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉ€ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ)เฅค เจ…เฉฑเจ—เฉ‡, เจชเจนเจฟเจฒเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเฉฑเจคเจฐ (เจฆเฉ‚เจœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก) เจญเฉ‡เจœเจฆเจพ เจนเฉˆ - เจœเจฟเจธ เจฆเฉ€ เจชเฉเจฐเจพเจชเจคเฉ€ 'เจคเฉ‡ เจฆเฉ‚เจœเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฃเจพเจ เจ—เจ เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒ เจจเฉ‚เฉฐ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจฎเฉฐเจจ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เฉฑเจ—เฉ‡, เจฆเฉ‚เจœเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เฉฑเจ• เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเฉฑเจคเจฐ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ - เจ…เจคเฉ‡ เจซเจฟเจฐ เจชเจนเจฟเจฒเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจตเฉ€ เจฌเจฃเจพเจ เจ—เจ เจšเฉˆเจจเจฒ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฎเฉฐเจจ เจธเจ•เจฆเจพ เจนเฉˆ.

เจธเฉœเจ• 'เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ‡ เจฐเฉเจ•เจพเจตเจŸ เจฆเจพ เจฎเฉเจ•เจพเจฌเจฒเจพ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเฉ‚เฉฐ เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจšเจพเจฐเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจญ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ (เจธเจตเจพเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ "เจ‡เจธเจฆเจพ เจญเฉเจ—เจคเจพเจจ เจ•เฉŒเจฃ เจ•เจฐเฉ‡เจ—เจพ?"):
10 เจธเจพเจฒเจพเจ‚ เจฒเจˆ $3 เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจกเจพเจ• เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹เฅค เจœเฉ‹ เจญเฉ‡เจœเจฃ เจตเจพเจฒเฉ‡ เจจเฉ‚เฉฐ dns เจตเจฟเฉฑเจš เจ‡เจน เจฆเจฐเจธเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เจพ เจ•เจฟ "เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจœเจจเจคเจ• เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจ‰เฉฑเจฅเฉ‡ เจนเจจเฅค" เจ…เจคเฉ‡ เจ‰เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจจเฉˆเจ•เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจฆเฉ‡เจฃเจ—เฉ‡เฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจœเจฟเจนเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจจเจพ เจฎเฉเจซเจค เจนเฉˆ.
เจœเฉ€เจฎเฉ‡เจฒ เจ†เจ–เจฐเจ•เจพเจฐ เจ†เจชเจฃเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเจพ เจฎเฉเจฆเจฐเฉ€เจ•เจฐเจจ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ. $10 เจชเฉเจฐเจคเฉ€ 3 เจธเจพเจฒเจพเจ‚ เจฒเจˆ - เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจชเฉฑเจคเจฐ เจตเจฟเจนเจพเจฐ เจšเฉˆเจจเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจ…เจงเจฟเจ•เจพเจฐเฅค

============ เจธเจฟเฉฑเจŸเจพ ============

เจชเฉ‚เจฐเฉ‡ เจฒเฉ‡เจ– เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจฎเจนเฉ€เจจเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฎเจฐเจชเจฟเจค เจธเจฐเจตเจฐ เจ•เจฟเจฐเจพเจ 'เจคเฉ‡ เจฒเฉˆเจฃ เจœเจพ เจฐเจฟเจนเจพ เจธเฉ€ เจ…เจคเฉ‡ เจ‡เฉฑเจ• SSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเฉ‹เจฎเฉ‡เจจ เจ–เจฐเฉ€เจฆเจฃ เจœเจพ เจฐเจฟเจนเจพ เจธเฉ€.

เจชเจฐ เจœเฉ€เจตเจจ เจฆเฉ‡ เจนเจพเจฒเจพเจค เจ‡เจธ เจฒเจˆ เจตเจฟเจ•เจธเจค เจนเฉ‹เจ เจ•เจฟ เจ‡เจน เจฎเฉเฉฑเจฆเจพ 2 เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจฒเจˆ เจ–เจฟเฉฑเจšเจฟเจ† เจ—เจฟเจ†.
เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจฆเฉเจฌเจพเจฐเจพ เจ–เจพเจฒเฉ€ เจธเจฎเจพเจ‚ เจธเฉ€, เจฎเฉˆเจ‚ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจ‰เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจชเฉเจฐเจ•เจพเจธเจผเจค เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจจเจพ เจ•เจฟ เจ‡เจธ เจœเฉ‹เจ–เจฎ เจฆเฉ€ เจฌเจœเจพเจ เจ•เจฟ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจพเจฒ เจฒเจˆ เจ–เจฟเฉฑเจšเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจœเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจชเฉเจฐเจธเจผเจจ เจนเจจ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ "เจชเจฐ เจ‡เจธ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจพเจซเจผเฉ€ เจตเฉ‡เจฐเจตเฉ‡ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ", เจคเจพเจ‚ เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจกเฉ‹เจฎเฉ‡เจจ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ SSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจฎเจฐเจชเจฟเจค เจธเจฐเจตเจฐ เจฒเฉˆเจฃ เจ…เจคเฉ‡ เจ‡เจธเจฆเจพ เจนเฉ‹เจฐ เจตเฉ€ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจคเจพเจ•เจค เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจ…เจคเฉ‡, เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉŒเจฐ 'เจคเฉ‡, เจธเจพเจฐเฉ‡ เจ—เฉเฉฐเจฎ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเฉ‹เฅค

เจฎเฉˆเจ‚ เจกเจพเจ• เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸเจพเจ‚ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐเจพเจ‚ 'เจคเฉ‡ เจซเฉ€เจกเจฌเฉˆเจ• เจตเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจตเจฟเจšเจพเจฐ เจชเจธเฉฐเจฆ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉˆเจ‚ rfc เจฒเจˆ เจกเจฐเจพเจซเจŸ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจคเจพเจ•เจค เจฒเฉฑเจญเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพเฅค

เจ•เจฟเจธเฉ‡ เจฒเฉ‡เจ– เจฆเฉ‡ เจตเฉฑเจกเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจฒเจฟเฉฐเจ• เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‹เฅค
เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ…เจจเฉเจตเจพเจฆ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจฒเจฟเฉฐเจ• เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเฉ‹เฅค
เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เฉฐเจ—เฉเจฐเฉ‡เจœเจผเฉ€ เจตเจฟเฉฑเจš เจ…เจจเฉเจตเจพเจฆ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจ…เจคเฉ‡ เจ…เฉฐเจคเจฐ-เจนเจตเจพเจฒเฉ‡ เจ›เฉฑเจกเจพเจ‚เจ—เจพเฅค


เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹