ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”" ืฉืœื•ื ืชื•ืฉื‘ื™ ื—ื‘ืจื•! ื‘ืกืคืจ ืžืชืืจ ื“ื™ื•ื•ื™ื“ ืงืœื™ื ื˜ื•ืŸ 12 ืคืจื•ื™ืงื˜ื™ื ืžื”ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื, ื›ื•ืœืœ ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืžืขืจื›ืช ื”ื’ื™ื‘ื•ื™ ื•ื”ืฉื—ื–ื•ืจ ืฉืœืš, ื”ืงืžืช ืขื ืŸ ืงื‘ืฆื™ื ืื™ืฉื™ ื‘ืกื’ื ื•ืŸ Dropbox ื•ื™ืฆื™ืจืช ืฉืจืช MediaWiki ืžืฉืœืš. ืชื•ื›ืœ ืœื—ืงื•ืจ ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื”, ื”ืชืื•ืฉืฉื•ืช ืžืืกื•ืŸ, ืื‘ื˜ื—ื”, ื’ื™ื‘ื•ื™, DevOps ื•ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื‘ืžืขืจื›ืช ื‘ืืžืฆืขื•ืช ืžืงืจื™ื ืžืขื ื™ื™ื ื™ื. ื›ืœ ืคืจืง ืžืกืชื™ื™ื ื‘ืกืงื™ืจื” ืฉืœ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ืžื™ืœื•ืŸ ืžื•ื ื—ื™ื ืฉืœ ืžื•ื ื—ื™ื ื—ื“ืฉื™ื ื•ืชืจื’ื™ืœื™ื.

ืงื˜ืข "10.1. ื™ืฆื™ืจืช ืžื ื”ืจื” ืฉืœ OpenVPN"

ื›ื‘ืจ ื“ื™ื‘ืจืชื™ ื”ืจื‘ื” ืขืœ ื”ืฆืคื ื” ื‘ืกืคืจ ื”ื–ื”. SSH ื•-SCP ื™ื›ื•ืœื™ื ืœื”ื’ืŸ ืขืœ ื ืชื•ื ื™ื ื”ืžื•ืขื‘ืจื™ื ื“ืจืš ื—ื™ื‘ื•ืจื™ื ืžืจื•ื—ืงื™ื (ืคืจืง 3), ื”ืฆืคื ืช ืงื‘ืฆื™ื ื™ื›ื•ืœื” ืœื”ื’ืŸ ืขืœ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืฉื”ื ืžืื•ื—ืกื ื™ื ื‘ืฉืจืช (ืคืจืง 8), ื•ืชืขื•ื“ื•ืช TLS/SSL ื™ื›ื•ืœื•ืช ืœื”ื’ืŸ ืขืœ ื ืชื•ื ื™ื ื”ืžื•ืขื‘ืจื™ื ื‘ื™ืŸ ืืชืจื™ื ื•ื“ืคื“ืคื ื™ ืœืงื•ื— (ืคืจืง 9) . ืื‘ืœ ืœืคืขืžื™ื ื”ื ืชื•ื ื™ื ืฉืœืš ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืžื•ื’ื ื™ื ืขืœ ืคื ื™ ืžื’ื•ื•ืŸ ืจื—ื‘ ื™ื•ืชืจ ืฉืœ ื—ื™ื‘ื•ืจื™ื. ืœื“ื•ื’ืžื”, ืื•ืœื™ ื—ืœืง ืžื—ื‘ืจื™ ื”ืฆื•ื•ืช ืฉืœืš ืขื•ื‘ื“ื™ื ืขืœ ื”ื›ื‘ื™ืฉ ื‘ื–ืžืŸ ืฉื”ื ืžืชื—ื‘ืจื™ื ืœ-Wi-Fi ื“ืจืš ื ืงื•ื“ื•ืช ื—ืžื•ืช ืฆื™ื‘ื•ืจื™ื•ืช. ืืชื” ื‘ื”ื—ืœื˜ ืœื ืฆืจื™ืš ืœื”ื ื™ื— ืฉื›ืœ ื ืงื•ื“ื•ืช ื”ื’ื™ืฉื” ื”ืœืœื• ืžืื•ื‘ื˜ื—ื•ืช, ืื‘ืœ ื”ืื ืฉื™ื ืฉืœืš ื›ืŸ ืฆืจื™ื›ื™ื ื“ืจืš ืœื”ืชื—ื‘ืจ ืœืžืฉืื‘ื™ ื”ื—ื‘ืจื” - ื•ืฉื VPN ื™ื›ื•ืœ ืœืขื–ื•ืจ.

ืžื ื”ืจืช VPN ืฉืชื•ื›ื ื ื” ื›ื”ืœื›ื” ืžืกืคืงืช ื—ื™ื‘ื•ืจ ื™ืฉื™ืจ ื‘ื™ืŸ ืœืงื•ื—ื•ืช ืžืจื•ื—ืงื™ื ืœืฉืจืช ื‘ืื•ืคืŸ ืฉืžืกืชื™ืจ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืฉื”ื ืขื•ื‘ืจื™ื ื‘ืจืฉืช ืœื ืžืื•ื‘ื˜ื—ืช. ืื– ืžื”? ื›ื‘ืจ ืจืื™ืช ื›ืœื™ื ืจื‘ื™ื ืฉื™ื›ื•ืœื™ื ืœืขืฉื•ืช ื–ืืช ืขื ื”ืฆืคื ื”. ื”ืขืจืš ื”ืืžื™ืชื™ ืฉืœ VPN ื”ื•ื ืฉืขืœ ื™ื“ื™ ืคืชื™ื—ืช ืžื ื”ืจื”, ืืชื” ื™ื›ื•ืœ ืœื—ื‘ืจ ืจืฉืชื•ืช ืžืจื•ื—ืงื•ืช ื›ืื™ืœื• ื›ื•ืœืŸ ื”ื™ื• ืžืงื•ืžื™ื•ืช. ื‘ืžื•ื‘ืŸ ืžืกื•ื™ื, ืืชื” ืžืฉืชืžืฉ ื‘ืžืขืงืฃ.

ื‘ืืžืฆืขื•ืช ืจืฉืช ืžื•ืจื—ื‘ืช ื–ื•, ืžื ื”ืœื™ ืžืขืจื›ืช ื™ื›ื•ืœื™ื ืœื‘ืฆืข ืืช ืขื‘ื•ื“ืชื ื‘ืฉืจืชื™ื ืฉืœื”ื ืžื›ืœ ืžืงื•ื. ืืš ื—ืฉื•ื‘ ืžื›ืš, ื—ื‘ืจื” ืขื ืžืฉืื‘ื™ื ื”ืคื–ื•ืจื™ื ื‘ืžืกืคืจ ืžื™ืงื•ืžื™ื ื™ื›ื•ืœื” ืœื”ืคื•ืš ืืช ื›ื•ืœื ืœื’ืœื•ื™ื™ื ื•ื ื’ื™ืฉื™ื ืœื›ืœ ื”ืงื‘ื•ืฆื•ืช ืฉื–ืงื•ืงื•ืช ืœื”ื, ื‘ื›ืœ ืžืงื•ื ืฉื‘ื• ื”ื ื ืžืฆืื™ื (ืื™ื•ืจ 10.1).

ื”ืžื ื”ืจื” ืขืฆืžื” ืื™ื ื” ืžื‘ื˜ื™ื—ื” ืื‘ื˜ื—ื”. ืื‘ืœ ืื—ื“ ืžืชืงื ื™ ื”ื”ืฆืคื ื” ื™ื›ื•ืœ ืœื”ื™ื›ืœืœ ื‘ืžื‘ื ื” ื”ืจืฉืช, ืžื” ืฉืžืขืœื” ืžืฉืžืขื•ืชื™ืช ืืช ืจืžืช ื”ืื‘ื˜ื—ื”. ืžื ื”ืจื•ืช ืฉื ื•ืฆืจื• ื‘ืืžืฆืขื•ืช ื—ื‘ื™ืœืช OpenVPN ื‘ืงื•ื“ ืคืชื•ื— ืžืฉืชืžืฉื•ืช ื‘ืื•ืชื” ื”ืฆืคื ืช TLS/SSL ืฉื›ื‘ืจ ืงืจืืช ืขืœื™ื”. OpenVPN ื”ื™ื ืœื ืืคืฉืจื•ืช ื”ืžื ื”ื•ืจ ื”ื™ื—ื™ื“ื” ื”ื–ืžื™ื ื”, ืื‘ืœ ื”ื™ื ืื—ืช ื”ื™ื“ื•ืขื•ืช ื‘ื™ื•ืชืจ. ื”ื•ื ื ื—ืฉื‘ ืœืžืขื˜ ืžื”ื™ืจ ื™ื•ืชืจ ื•ืžืื•ื‘ื˜ื— ื™ื•ืชืจ ืžืคืจื•ื˜ื•ืงื•ืœ ื”ืžื ื”ืจื” ื”ืืœื˜ืจื ื˜ื™ื‘ื™ ืฉืœ Layer 2 ื”ืžืฉืชืžืฉ ื‘ื”ืฆืคื ืช IPsec.

ื”ืื ืืชื” ืจื•ืฆื” ืฉื›ื•ืœื ื‘ืฆื•ื•ืช ืฉืœืš ื™ืชืงืฉืจื• ื–ื” ืขื ื–ื” ื‘ืฆื•ืจื” ืžืื•ื‘ื˜ื—ืช ื‘ื–ืžืŸ ืฉืืชื” ื‘ื“ืจื›ื™ื ืื• ื‘ืขื‘ื•ื“ื” ื‘ื‘ื ื™ื™ื ื™ื ืฉื•ื ื™ื? ืœืฉื ื›ืš, ืขืœื™ืš ืœื™ืฆื•ืจ ืฉืจืช OpenVPN ื›ื“ื™ ืœืืคืฉืจ ืฉื™ืชื•ืฃ ืืคืœื™ืงืฆื™ื•ืช ื•ื’ื™ืฉื” ืœืกื‘ื™ื‘ืช ื”ืจืฉืช ื”ืžืงื•ืžื™ืช ืฉืœ ื”ืฉืจืช. ื›ื“ื™ ืฉื–ื” ื™ืขื‘ื•ื“, ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ื”ื•ื ืœื”ืคืขื™ืœ ืฉืชื™ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืื• ืฉื ื™ ืงื•ื ื˜ื™ื™ื ืจื™ื: ืื—ื“ ืฉื™ืคืขืœ ื›ืฉืจืช/ืžืืจื— ื•ืื—ื“ ื›ืœืงื•ื—. ื‘ื ื™ื™ืช VPN ื”ื™ื ืœื ืชื”ืœื™ืš ืคืฉื•ื˜, ืื– ื›ื ืจืื” ืฉื›ื“ืื™ ืœื”ืงื“ื™ืฉ ื›ืžื” ื“ืงื•ืช ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืชืžื•ื ื” ื”ื’ื“ื•ืœื”.

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"

10.1.1. ืชืฆื•ืจืช ืฉืจืช OpenVPN

ืœืคื ื™ ืฉืชืชื—ื™ืœ, ืื ื™ ืืชืŸ ืœืš ื›ืžื” ืขืฆื•ืช ืžื•ืขื™ืœื•ืช. ืื ืืชื” ืžืชื›ื•ื•ืŸ ืœืขืฉื•ืช ื–ืืช ื‘ืขืฆืžืš (ื•ืื ื™ ืžืžืœื™ืฅ ืœืš ืœืขืฉื•ืช ื–ืืช), ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืชืžืฆื ืืช ืขืฆืžืš ืขื•ื‘ื“ ืขื ืžืกืคืจ ื—ืœื•ื ื•ืช ืžืกื•ืฃ ืคืชื•ื—ื™ื ืขืœ ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœืš, ื›ืœ ืื—ื“ ืžื—ื•ื‘ืจ ืœืžื—ืฉื‘ ืื—ืจ. ืงื™ื™ื ืกื™ื›ื•ืŸ ืฉื‘ืฉืœื‘ ืžืกื•ื™ื ืชื›ื ื™ืก ืืช ื”ืคืงื•ื“ื” ื”ืœื ื ื›ื•ื ื” ืœื—ืœื•ืŸ. ื›ื“ื™ ืœื”ื™ืžื ืข ืžื›ืš, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” ืฉื ืžืืจื— ื›ื“ื™ ืœืฉื ื•ืช ืืช ืฉื ื”ืžื—ืฉื‘ ื”ืžื•ืฆื’ ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื” ืœืžืฉื”ื• ืฉืื•ืžืจ ืœืš ื‘ื‘ื™ืจื•ืจ ื”ื™ื›ืŸ ืืชื” ื ืžืฆื. ืœืื—ืจ ืฉืชืขืฉื” ื–ืืช, ืชืฆื˜ืจืš ืœื”ืชื ืชืง ืžื”ืฉืจืช ื•ืœื”ืชื—ื‘ืจ ืฉื•ื‘ ื›ื“ื™ ืฉื”ื”ื’ื“ืจื•ืช ื”ื—ื“ืฉื•ืช ื™ื™ื›ื ืกื• ืœืชื•ืงืฃ. ื›ืš ื–ื” ื ืจืื”:

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ืขืœ ื™ื“ื™ ื‘ื™ืฆื•ืข ื’ื™ืฉื” ื–ื• ื•ืžืชืŸ ืฉืžื•ืช ืžืชืื™ืžื™ื ืœื›ืœ ืื—ืช ืžื”ืžื›ื•ื ื•ืช ืฉืืชื” ืขื•ื‘ื“ ืื™ืชืŸ, ืชื•ื›ืœ ืœืขืงื•ื‘ ื‘ืงืœื•ืช ืื—ืจ ื”ื™ื›ืŸ ืืชื” ื ืžืฆื.

ืœืื—ืจ ื”ืฉื™ืžื•ืฉ ื‘ืฉื ื”ืžืืจื—, ืืชื” ืขืœื•ืœ ืœื”ื™ืชืงืœ ื‘ื”ื•ื“ืขื•ืช ืžืขืฆื‘ื ื•ืช ืœืœื ืืคืฉืจื•ืช ืœืคืชื•ืจ ืžืืจื— OpenVPN-Server ื‘ืขืช ื‘ื™ืฆื•ืข ืคืงื•ื“ื•ืช ืขื•ืงื‘ื•ืช. ืขื“ื›ื•ืŸ ื”ืงื•ื‘ืฅ /etc/hosts ื‘ืฉื ื”ืžืืจื— ื”ื—ื“ืฉ ื”ืžืชืื™ื ืืžื•ืจ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื”.

ื”ื›ื ืช ื”ืฉืจืช ืฉืœืš ืœ-OpenVPN

ื›ื“ื™ ืœื”ืชืงื™ืŸ ืืช OpenVPN ื‘ืฉืจืช ืฉืœืš, ืืชื” ืฆืจื™ืš ืฉืชื™ ื—ื‘ื™ืœื•ืช: openvpn ื•-easy-rsa (ื›ื“ื™ ืœื ื”ืœ ืืช ืชื”ืœื™ืš ื™ืฆื™ืจืช ืžืคืชื— ื”ื”ืฆืคื ื”). ืžืฉืชืžืฉื™ CentOS ืฆืจื™ื›ื™ื ืœื”ืชืงื™ืŸ ืชื—ื™ืœื” ืืช ืžืื’ืจ ื”-epel-release ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ื›ืคื™ ืฉืขืฉื™ืชื ื‘ืคืจืง 2. ื›ื“ื™ ืฉืชื•ื›ืœ ืœื‘ื“ื•ืง ืืช ื”ื’ื™ืฉื” ืœืืคืœื™ืงืฆื™ื™ืช ื”ืฉืจืช, ืชื•ื›ืœ ื’ื ืœื”ืชืงื™ืŸ ืืช ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœ Apache (apache2 ื‘-Ubuntu ื•-httpd ื‘-CentOS).

ื‘ื–ืžืŸ ืฉืืชื” ืžื’ื“ื™ืจ ืืช ื”ืฉืจืช ืฉืœืš, ืื ื™ ืžืžืœื™ืฅ ืœื”ืคืขื™ืœ ื—ื•ืžืช ืืฉ ืฉื—ื•ืกืžืช ืืช ื›ืœ ื”ื™ืฆื™ืื•ืช ืžืœื‘ื“ 22 (SSH) ื•-1194 (ื™ืฆื™ืืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ OpenVPN). ื“ื•ื’ืžื” ื–ื• ืžืžื—ื™ืฉื” ื›ื™ืฆื“ ufw ื™ืขื‘ื•ื“ ืขืœ ืื•ื‘ื•ื ื˜ื•, ืื‘ืœ ืื ื™ ื‘ื˜ื•ื— ืฉืืชื” ืขื“ื™ื™ืŸ ื–ื•ื›ืจ ืืช ืชื•ื›ื ื™ืช ื—ื•ืžืช ื”ืืฉ CentOS ืžืคืจืง 9:

# ufw enable
# ufw allow 22
# ufw allow 1194

ื›ื“ื™ ืœืืคืฉืจ ื ื™ืชื•ื‘ ืคื ื™ืžื™ ื‘ื™ืŸ ืžืžืฉืงื™ ืจืฉืช ื‘ืฉืจืช, ืขืœื™ืš ืœื‘ื˜ืœ ื”ืขืจื•ืช ืฉื•ืจื” ืื—ืช (net.ipv4.ip_forward = 1) ื‘ืงื•ื‘ืฅ /etc/sysctl.conf. ื–ื” ื™ืืคืฉืจ ืœื”ืคื ื•ืช ืœืงื•ื—ื•ืช ืžืจื•ื—ืงื™ื ืœืคื™ ื”ืฆื•ืจืš ื‘ืจื’ืข ืฉื”ื ืžื—ื•ื‘ืจื™ื. ื›ื“ื™ ืœื’ืจื•ื ืœืืคืฉืจื•ืช ื”ื—ื“ืฉื” ืœืขื‘ื•ื“, ื”ืคืขืœ ืืช sysctl -p:

# nano /etc/sysctl.conf
# sysctl -p

ืกื‘ื™ื‘ืช ื”ืฉืจืช ืฉืœืš ืžื•ื’ื“ืจืช ื›ืขืช ื‘ืžืœื•ืื”, ืื‘ืœ ื™ืฉ ืขื•ื“ ื“ื‘ืจ ืื—ื“ ืœืขืฉื•ืช ืœืคื ื™ ืฉืชื”ื™ื” ืžื•ื›ืŸ: ืชืฆื˜ืจืš ืœื”ืฉืœื™ื ืืช ื”ืฉืœื‘ื™ื ื”ื‘ืื™ื (ื ืขืกื•ืง ื‘ื”ื ื‘ืคื™ืจื•ื˜ ื‘ื”ืžืฉืš).

  1. ืฆื•ืจ ืงื‘ื•ืฆื” ืฉืœ ืžืคืชื—ื•ืช ื”ืฆืคื ื” ืฉืœ ืชืฉืชื™ื•ืช ืžืคืชื— ืฆื™ื‘ื•ืจื™ (PKI) ื‘ืฉืจืช ื‘ืืžืฆืขื•ืช ื”ืกืงืจื™ืคื˜ื™ื ื”ืžืกื•ืคืงื™ื ืขื ื—ื‘ื™ืœืช easy-rsa. ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ืฉืจืช OpenVPN ืคื•ืขืœ ื’ื ื›ืจืฉื•ืช ื”ืื™ืฉื•ืจื™ื ืฉืœื• (CA).
  2. ื”ื›ืŸ ืžืคืชื—ื•ืช ืžืชืื™ืžื™ื ืขื‘ื•ืจ ื”ืœืงื•ื—
  3. ื”ื’ื“ืจ ืืช ื”ืงื•ื‘ืฅ server.conf ืขื‘ื•ืจ ื”ืฉืจืช
  4. ื”ื’ื“ืจ ืืช ืœืงื•ื— OpenVPN ืฉืœืš
  5. ื‘ื“ื•ืง ืืช ื”-VPN ืฉืœืš

ื™ืฆื™ืจืช ืžืคืชื—ื•ืช ื”ืฆืคื ื”

ื›ื“ื™ ืœืฉืžื•ืจ ืขืœ ืคืฉื˜ื•ืช, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ืชืฉืชื™ืช ื”ืžืคืชื— ืฉืœืš ื‘ืื•ืชื• ืžื—ืฉื‘ ืฉื‘ื• ืคื•ืขืœ ืฉืจืช OpenVPN. ืขื ื–ืืช, ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืื‘ื˜ื—ื” ืžืฆื™ืขื•ืช ื‘ื“ืจืš ื›ืœืœ ืฉื™ืžื•ืฉ ื‘ืฉืจืช CA ื ืคืจื“ ืœืคืจื™ืกื•ืช ื™ื™ืฆื•ืจ. ืชื”ืœื™ืš ื”ื™ืฆื™ืจื” ื•ื”ื”ืคืฆื” ืฉืœ ืžืฉืื‘ื™ ืžืคืชื— ื”ืฆืคื ื” ืœืฉื™ืžื•ืฉ ื‘-OpenVPN ืžื•ื“ื’ื ื‘ืื™ื•ืจ. 10.2.

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ื›ืืฉืจ ื”ืชืงื ืช ืืช OpenVPN, ื”ืกืคืจื™ื™ื” /etc/openvpn/ ื ื•ืฆืจื” ืื•ื˜ื•ืžื˜ื™ืช, ืืš ืขื“ื™ื™ืŸ ืื™ืŸ ื‘ื” ื›ืœื•ื. ื—ื‘ื™ืœื•ืช openvpn ื•-easy-rsa ืžื’ื™ืขื•ืช ืขื ืงื‘ืฆื™ ืชื‘ื ื™ืช ืœื“ื•ื’ืžื” ืฉืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื‘ืกื™ืก ืœืชืฆื•ืจื” ืฉืœืš. ื›ื“ื™ ืœื”ืชื—ื™ืœ ืืช ืชื”ืœื™ืš ื”ื”ืกืžื›ื”, ื”ืขืชืง ืืช ืกืคืจื™ื™ืช ื”ืชื‘ื ื™ื•ืช ืฉืœ easy-rsa ืž-/usr/share/ ืืœ /etc/openvpn ื•ืฉื ื” ืœืกืคืจื™ื™ืช easy-rsa/:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

ืกืคืจื™ื™ืช easy-rsa ืชื›ื™ืœ ื›ืขืช ืœื ืžืขื˜ ืกืงืจื™ืคื˜ื™ื. ื‘ืฉื•ืœื—ืŸ 10.1 ืžืคืจื˜ ืืช ื”ื›ืœื™ื ืฉื‘ื”ื ืชืฉืชืžืฉ ืœื™ืฆื™ืจืช ืžืคืชื—ื•ืช.

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"

ื”ืคืขื•ืœื•ืช ื”ื "ืœ ื“ื•ืจืฉื•ืช ื”ืจืฉืื•ืช ืฉื•ืจืฉ, ืื– ืืชื” ืฆืจื™ืš ืœื”ืคื•ืš ืœืฉื•ืจืฉ ื“ืจืš sudo su.

ื”ืงื•ื‘ืฅ ื”ืจืืฉื•ืŸ ืื™ืชื• ืชืขื‘ื•ื“ ื ืงืจื vars ื•ืžื›ื™ืœ ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ืฉื‘ื”ื easy-rsa ืžืฉืชืžืฉ ื‘ืขืช ื™ืฆื™ืจืช ืžืคืชื—ื•ืช. ืขืœื™ืš ืœืขืจื•ืš ืืช ื”ืงื•ื‘ืฅ ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืขืจื›ื™ื ืžืฉืœืš ื‘ืžืงื•ื ื‘ืขืจื›ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉื›ื‘ืจ ืงื™ื™ืžื™ื. ื›ืš ื™ืจืื” ื”ืงื•ื‘ืฅ ืฉืœื™ (ืจื™ืฉื•ื 10.1).

ืจื™ืฉื•ื 10.1. ื”ืคืจื’ืžื ื˜ื™ื ื”ืขื™ืงืจื™ื™ื ืฉืœ ื”ืงื•ื‘ืฅ /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="[email protected]"
export KEY_OU="IT"

ื”ืคืขืœืช ืงื•ื‘ืฅ vars ืชืขื‘ื™ืจ ืืช ื”ืขืจื›ื™ื ืฉืœื• ืœืกื‘ื™ื‘ืช ื”ืžืขื˜ืคืช, ืฉื ื”ื ื™ื™ื›ืœืœื• ื‘ืชื•ื›ืŸ ื”ืžืคืชื—ื•ืช ื”ื—ื“ืฉื™ื ืฉืœืš. ืœืžื” ื”ืคืงื•ื“ื” sudo ื›ืฉืœืขืฆืžื” ืœื ืขื•ื‘ื“ืช? ื›ื™ ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ ืื ื—ื ื• ืขื•ืจื›ื™ื ืืช ื”ืกืงืจื™ืคื˜ ื‘ืฉื vars ื•ืื– ืžื™ื™ืฉืžื™ื ืื•ืชื•. ื™ื™ืฉื•ื ื•ืคื™ืจื•ืฉื• ืฉืงื•ื‘ืฅ vars ืžืขื‘ื™ืจ ืืช ืขืจื›ื™ื• ืœืกื‘ื™ื‘ืช ื”ืžืขื˜ืคืช, ืฉื ื”ื ื™ื™ื›ืœืœื• ื‘ืชื•ื›ืŸ ื”ืžืคืชื—ื•ืช ื”ื—ื“ืฉื™ื ืฉืœืš.

ื”ืงืคื“ ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืงื•ื‘ืฅ ื‘ืืžืฆืขื•ืช ืžืขื˜ืคืช ื—ื“ืฉื” ื›ื“ื™ ืœื”ืฉืœื™ื ืืช ื”ืชื”ืœื™ืš ื”ืœื ื’ืžื•ืจ. ื›ืืฉืจ ื–ื” ื ืขืฉื”, ื”ืกืงืจื™ืคื˜ ื™ื‘ืงืฉ ืžืžืš ืœื”ืจื™ืฅ ืกืงืจื™ืคื˜ ืื—ืจ, clean-all, ื›ื“ื™ ืœื”ืกื™ืจ ื›ืœ ืชื•ื›ืŸ ื‘ืกืคืจื™ื” /etc/openvpn/easy-rsa/keys/:

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ื‘ืื•ืคืŸ ื˜ื‘ืขื™, ื”ืฉืœื‘ ื”ื‘ื ื”ื•ื ืœื”ืคืขื™ืœ ืืช ื”ืกืงืจื™ืคื˜ clean-all, ื•ืื—ืจื™ื• build-ca, ืฉืžืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ pkitool ื›ื“ื™ ืœื™ืฆื•ืจ ืืช ืื™ืฉื•ืจ ื”ืฉื•ืจืฉ. ืชืชื‘ืงืฉ ืœืืฉืจ ืืช ื”ื’ื“ืจื•ืช ื”ื–ื”ื•ืช ืฉืกื•ืคืงื• ืขืœ ื™ื“ื™ vars:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

ืœืื—ืจ ืžื›ืŸ ืžื’ื™ืข ืกืงืจื™ืคื˜ build-key-server. ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืฉืชืžืฉ ื‘ืื•ืชื• ืกืงืจื™ืคื˜ pkitool ื™ื—ื“ ืขื ืื™ืฉื•ืจ ื”ืฉื•ืจืฉ ื”ื—ื“ืฉ, ืชืจืื” ืืช ืื•ืชืŸ ืฉืืœื•ืช ื›ื“ื™ ืœืืฉืจ ืืช ื™ืฆื™ืจืช ืฆืžื“ ื”ืžืคืชื—ื•ืช. ืฉืžื•ืช ื”ืžืคืชื—ื•ืช ื™ืงื‘ืœื• ืขืœ ืกืžืš ื”ืืจื’ื•ืžื ื˜ื™ื ืฉืืชื” ืžืขื‘ื™ืจ, ืืฉืจ, ืืœื ืื ื›ืŸ ืืชื” ืžืคืขื™ืœ ืžืกืคืจ VPNs ื‘ืžื—ืฉื‘ ื–ื”, ื‘ื“ืจืš ื›ืœืœ ื™ื”ื™ื• ืฉืจืช, ื›ืžื• ื‘ื“ื•ื’ืžื”:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN ืžืฉืชืžืฉ ื‘ืคืจืžื˜ืจื™ื ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ื”ืืœื’ื•ืจื™ืชื Diffie-Hellman (ื‘ืืžืฆืขื•ืช build-dh) ื›ื“ื™ ืœื ื”ืœ ืžืฉื ื•ืžืชืŸ ืขืœ ืื™ืžื•ืช ืขื‘ื•ืจ ื—ื™ื‘ื•ืจื™ื ื—ื“ืฉื™ื. ื”ืงื•ื‘ืฅ ืฉื ื•ืฆืจ ื›ืืŸ ืื™ื ื• ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืกื•ื“ื™, ืืœื ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื•ืคืง ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ build-dh ืขื‘ื•ืจ ืžืคืชื—ื•ืช ื”-RSA ื”ืคืขื™ืœื™ื ื›ืขืช. ืื ืชื™ืฆื•ืจ ืžืคืชื—ื•ืช RSA ื—ื“ืฉื™ื ื‘ืขืชื™ื“, ืชืฆื˜ืจืš ื’ื ืœืขื“ื›ืŸ ืืช ืงื•ื‘ืฅ Diffie-Hellman:

# ./build-dh

ืžืคืชื—ื•ืช ืฆื“ ื”ืฉืจืช ืฉืœืš ื™ื’ืžืจื• ื›ืขืช ื‘ืกืคืจื™ื™ืช /etc/openvpn/easy-rsa/keys/, ืืš OpenVPN ืœื ื™ื•ื“ืข ื–ืืช. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, OpenVPN ื™ื—ืคืฉ ืžืคืชื—ื•ืช ื‘-/etc/openvpn/, ืื– ื”ืขืชืง ืื•ืชื:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

ื”ื›ื ืช ืžืคืชื—ื•ืช ื”ืฆืคื ืช ืœืงื•ื—

ื›ืคื™ ืฉื›ื‘ืจ ืจืื™ืช, ื”ืฆืคื ืช TLS ืžืฉืชืžืฉืช ื‘ื–ื•ื’ื•ืช ืฉืœ ืžืคืชื—ื•ืช ืชื•ืืžื™ื: ืื—ื“ ืžื•ืชืงืŸ ื‘ืฉืจืช ื•ืื—ื“ ืžื•ืชืงืŸ ื‘ืœืงื•ื— ื”ืžืจื•ื—ืง. ื–ื” ืื•ืžืจ ืฉืชื–ื“ืงืง ืœืžืคืชื—ื•ืช ืœืงื•ื—. ื”ื—ื‘ืจ ื”ื•ื•ืชื™ืง ืฉืœื ื• pkitool ื”ื•ื ื‘ื“ื™ื•ืง ืžื” ืฉืืชื” ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ื–ื”. ื‘ื“ื•ื’ืžื” ื–ื•, ื›ืืฉืจ ืื ื• ืžืคืขื™ืœื™ื ืืช ื”ืชื•ื›ื ื™ืช ื‘ืกืคืจื™ื” /etc/openvpn/easy-rsa/, ืื ื• ืžืขื‘ื™ืจื™ื ืœื” ืืช ื”ืืจื’ื•ืžื ื˜ ืฉืœ ื”ืœืงื•ื— ืœื™ืฆื™ืจืช ืงื‘ืฆื™ื ื‘ืฉื client.crt ื•-client.key:

# ./pkitool client

ืฉื ื™ ืงื‘ืฆื™ ื”ืœืงื•ื—, ื™ื—ื“ ืขื ืงื•ื‘ืฅ ื”-ca.crt ื”ืžืงื•ืจื™ ืฉืขื“ื™ื™ืŸ ื ืžืฆื ื‘ืกืคืจื™ื™ืช ื”ืžืคืชื—ื•ืช/, ืืžื•ืจื™ื ืœืขื‘ื•ืจ ื›ืขืช ื‘ืฆื•ืจื” ืžืื•ื‘ื˜ื—ืช ืœืœืงื•ื— ืฉืœืš. ื‘ืฉืœ ื”ื‘ืขืœื•ืช ื•ื–ื›ื•ื™ื•ืช ื”ื’ื™ืฉื” ืฉืœื”ื, ื–ื” ืื•ืœื™ ืœื ื›ืœ ื›ืš ืงืœ. ื”ื’ื™ืฉื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ื”ื™ื ืœื”ืขืชื™ืง ื‘ืื•ืคืŸ ื™ื“ื ื™ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ ื”ืžืงื•ืจ (ื•ืฉื•ื ื“ื‘ืจ ืžืœื‘ื“ ื”ืชื•ื›ืŸ ื”ื–ื”) ืœืชื•ืš ืžืกื•ืฃ ื”ืคื•ืขืœ ืขืœ ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืžื—ืฉื‘ ื”ืื™ืฉื™ ืฉืœืš (ื‘ื—ืจ ืืช ื”ื˜ืงืกื˜, ืœื—ืฅ ืขืœื™ื• ื‘ืืžืฆืขื•ืช ืœื—ืฆืŸ ื”ืขื›ื‘ืจ ื”ื™ืžื ื™ ื•ื‘ื—ืจ ื”ืขืชืง ืžื”ืชืคืจื™ื˜). ืœืื—ืจ ืžื›ืŸ ื”ื“ื‘ืง ืืช ื–ื” ื‘ืงื•ื‘ืฅ ื—ื“ืฉ ืขื ืื•ืชื• ืฉื ืฉืืชื” ื™ื•ืฆืจ ื‘ืžืกื•ืฃ ืฉื ื™ ื”ืžื—ื•ื‘ืจ ืœืœืงื•ื— ืฉืœืš.

ืื‘ืœ ื›ืœ ืื—ื“ ื™ื›ื•ืœ ืœื’ื–ื•ืจ ื•ืœื”ื“ื‘ื™ืง. ื‘ืžืงื•ื ื–ืืช, ืชื—ืฉื•ื‘ ื›ืžื• ืžื ื”ืœ ืžืขืจื›ืช ื›ื™ ืœื ืชืžื™ื“ ืชื”ื™ื” ืœืš ื’ื™ืฉื” ืœ-GUI ืฉื‘ื• ืคืขื•ืœื•ืช ื’ื–ื™ืจื”/ื”ื“ื‘ืงื•ืช ืืคืฉืจื™ื•ืช. ื”ืขืชืง ืืช ื”ืงื‘ืฆื™ื ืœืกืคืจื™ื™ืช ื”ื‘ื™ืช ืฉืœ ื”ืžืฉืชืžืฉ ืฉืœืš (ื›ื“ื™ ืฉืคืขื•ืœืช scp ืžืจื—ื•ืง ืชื•ื›ืœ ืœื’ืฉืช ืืœื™ื”ื), ื•ืœืื—ืจ ืžื›ืŸ ื”ืฉืชืžืฉ ื‘-chown ื›ื“ื™ ืœืฉื ื•ืช ืืช ื”ื‘ืขืœื•ืช ืขืœ ื”ืงื‘ืฆื™ื ืž-root ืœืžืฉืชืžืฉ ืจื’ื™ืœ ืฉืื™ื ื• ืฉื•ืจืฉ, ื›ืš ืฉื ื™ืชืŸ ืœื‘ืฆืข ืืช ืคืขื•ืœืช scp ืžืจื—ื•ืง. ื•ื“ื ืฉื›ืœ ื”ืงื‘ืฆื™ื ืฉืœืš ืžื•ืชืงื ื™ื ื›ืขืช ื•ื ื’ื™ืฉื™ื. ืืชื” ืชืขื‘ื™ืจ ืื•ืชื ืœืœืงื•ื— ืงืฆืช ืžืื•ื—ืจ ื™ื•ืชืจ:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

ืขื ืงื‘ื•ืฆื” ืžืœืื” ืฉืœ ืžืคืชื—ื•ืช ื”ืฆืคื ื” ืžื•ื›ื ื™ื ืœืฉื™ืžื•ืฉ, ืขืœื™ืš ืœื•ืžืจ ืœืฉืจืช ื›ื™ืฆื“ ืืชื” ืจื•ืฆื” ืœื™ืฆื•ืจ ืืช ื”-VPN. ื–ื” ื ืขืฉื” ื‘ืืžืฆืขื•ืช ื”ืงื•ื‘ืฅ server.conf.

ื”ืคื—ืชืช ืžืกืคืจ ื”ื”ืงืฉื•ืช

ื™ืฉ ื™ื•ืชืจ ืžื“ื™ ื”ืงืœื“ื”? ื”ืจื—ื‘ื” ืขื ืกื•ื’ืจื™ื™ื ืชืขื–ื•ืจ ืœืฆืžืฆื ืืช ืฉืฉ ื”ืคืงื•ื“ื•ืช ื”ืœืœื• ืœืฉืชื™ื™ื. ืื ื™ ื‘ื˜ื•ื— ืฉืืชื” ื™ื›ื•ืœ ืœืœืžื•ื“ ืืช ืฉืชื™ ื”ื“ื•ื’ืžืื•ืช ื”ืืœื” ื•ืœื”ื‘ื™ืŸ ืžื” ืงื•ืจื”. ื—ืฉื•ื‘ ืžื›ืš, ืชื•ื›ืœ ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœื™ื™ืฉื ืืช ื”ืขืงืจื•ื ื•ืช ื”ืœืœื• ืขืœ ืคืขื•ืœื•ืช ื”ื›ื•ืœืœื•ืช ืขืฉืจื•ืช ืื• ืืคื™ืœื• ืžืื•ืช ืืœืžื ื˜ื™ื:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

ื”ื’ื“ืจืช ื”ืงื•ื‘ืฅ server.conf

ืื™ืš ืืชื” ื™ื›ื•ืœ ืœื“ืขืช ืื™ืš ืฆืจื™ืš ืœื”ื™ืจืื•ืช ื”ืงื•ื‘ืฅ server.conf? ื–ื•ื›ืจื™ื ืืช ืชื‘ื ื™ืช ืกืคืจื™ื™ืช easy-rsa ืฉื”ืขืชืงืช ืž-/usr/share/? ื›ืฉื”ืชืงื ืช ืืช OpenVPN, ื ืฉืืจืช ืขื ืงื•ื‘ืฅ ืชื‘ื ื™ืช ืชืฆื•ืจื” ื“ื—ื•ืก ืฉืชื•ื›ืœ ืœื”ืขืชื™ืง ืืœ /etc/openvpn/. ืื ื™ ืื‘ื ื” ืขืœ ื”ืขื•ื‘ื“ื” ืฉื”ืชื‘ื ื™ืช ืžืื•ื—ืกื ืช ื‘ืืจื›ื™ื•ืŸ ื•ืืฆื™ื’ ื‘ืคื ื™ื›ื ื›ืœื™ ืฉื™ืžื•ืฉื™: zcat.

ืืชื” ื›ื‘ืจ ื™ื•ื“ืข ืขืœ ื”ื“ืคืกืช ืชื•ื›ืŸ ื”ื˜ืงืกื˜ ืฉืœ ืงื•ื‘ืฅ ืœืžืกืš ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” cat, ืื‘ืœ ืžื” ืื ื”ืงื•ื‘ืฅ ื ื“ื—ืก ื‘ืืžืฆืขื•ืช gzip? ืืชื” ืชืžื™ื“ ื™ื›ื•ืœ ืœืคืชื•ื— ืืช ื”ืงื•ื‘ืฅ ื•ืื– cat ื™ื•ืฆื™ื ืื•ืชื• ื‘ืฉืžื—ื”, ืื‘ืœ ื–ื” ืฆืขื“ ืื—ื“ ืื• ืฉื ื™ื™ื ื™ื•ืชืจ ืžื”ื ื“ืจืฉ. ื‘ืžืงื•ื ื–ืืช, ื›ืคื™ ืฉืื•ืœื™ ื ื™ื—ืฉืชื, ืชื•ื›ืœื• ืœื”ื•ืฆื™ื ืืช ื”ืคืงื•ื“ื” zcat ื›ื“ื™ ืœื˜ืขื•ืŸ ืืช ื”ื˜ืงืกื˜ ืฉื ืคืจืง ืœื–ื™ื›ืจื•ืŸ ื‘ืฉืœื‘ ืื—ื“. ื‘ื“ื•ื’ืžื” ื”ื‘ืื”, ื‘ืžืงื•ื ืœื”ื“ืคื™ืก ื˜ืงืกื˜ ืœืžืกืš, ืชืคื ื” ืื•ืชื• ืœืงื•ื‘ืฅ ื—ื“ืฉ ื‘ืฉื server.conf:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

ื‘ื•ืื• ื ืฉื™ื ื‘ืฆื“ ืืช ื”ืชื™ืขื•ื“ ื”ื ืจื—ื‘ ื•ื”ืžื•ืขื™ืœ ืฉืžื’ื™ืข ืขื ื”ืงื•ื‘ืฅ ื•ื ืจืื” ืื™ืš ื”ื•ื ืขืฉื•ื™ ืœื”ื™ืจืื•ืช ื›ืฉืชืกื™ื™ื ืœืขืจื•ืš. ืฉื™ืžื• ืœื‘ ืฉื”ื ืงื•ื“ื”-ืคืกื™ืง (;) ืื•ืžืจืช ืœ-OpenVPN ืœื ืœืงืจื•ื ืื• ืœื‘ืฆืข ืืช ื”ืฉื•ืจื” ื”ื‘ืื” (ืจื™ืฉื•ื 10.2).

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ื‘ื•ื ื ืขื‘ื•ืจ ืขืœ ื›ืžื” ืžื”ื”ื’ื“ืจื•ืช ื”ืืœื”.

  • ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, OpenVPN ืคื•ืขืœ ืขืœ ื™ืฆื™ืื” 1194. ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ื–ืืช, ืœืžืฉืœ, ื›ื“ื™ ืœื”ืกืชื™ืจ ืขื•ื“ ื™ื•ืชืจ ืืช ื”ืคืขื™ืœื•ื™ื•ืช ืฉืœืš ืื• ืœืžื ื•ืข ื”ืชื ื’ืฉื•ื™ื•ืช ืขื ืžื ื”ืจื•ืช ืคืขื™ืœื•ืช ืื—ืจื•ืช. ืžื›ื™ื•ื•ืŸ ืฉ-1194 ื“ื•ืจืฉ ืชื™ืื•ื ืžื™ื ื™ืžืœื™ ืขื ืœืงื•ื—ื•ืช, ืขื“ื™ืฃ ืœืขืฉื•ืช ื–ืืช ื‘ื“ืจืš ื–ื•.
  • OpenVPN ืžืฉืชืžืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ ื‘ืงืจืช ืฉื™ื“ื•ืจ (TCP) ืื• ื‘ืคืจื•ื˜ื•ืงื•ืœ User Datagram (UDP) ื›ื“ื™ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื. TCP ืขืฉื•ื™ ืœื”ื™ื•ืช ืงืฆืช ื™ื•ืชืจ ืื™ื˜ื™, ืื‘ืœ ื”ื•ื ืืžื™ืŸ ื™ื•ืชืจ ื•ืกื‘ื™ืจ ื™ื•ืชืจ ืœื”ื™ื•ืช ืžื•ื‘ืŸ ืขืœ ื™ื“ื™ ื™ื™ืฉื•ืžื™ื ื”ืคื•ืขืœื™ื ื‘ืฉื ื™ ืงืฆื•ื•ืช ื”ืžื ื”ืจื”.
  • ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ dev tun ื›ืืฉืจ ืืชื” ืจื•ืฆื” ืœื™ืฆื•ืจ ืžื ื”ืจืช IP ืคืฉื•ื˜ื” ื•ื™ืขื™ืœื” ื™ื•ืชืจ ื”ื ื•ืฉืืช ืชื•ื›ืŸ ื ืชื•ื ื™ื ื•ืชื• ืœื. ืื, ืœืขื•ืžืช ื–ืืช, ืขืœื™ืš ืœื—ื‘ืจ ืžืกืคืจ ืžืžืฉืงื™ ืจืฉืช (ื•ืืช ื”ืจืฉืชื•ืช ืฉื”ื ืžื™ื™ืฆื’ื™ื), ืœื™ืฆื•ืจ ื’ืฉืจ Ethernet, ืชืฆื˜ืจืš ืœื‘ื—ื•ืจ ื‘-dev tap. ืื ืืชื” ืœื ืžื‘ื™ืŸ ืžื” ื›ืœ ื–ื” ืื•ืžืจ, ื”ืฉืชืžืฉ ื‘ื˜ื™ืขื•ืŸ tun.
  • ืืจื‘ืข ื”ืฉื•ืจื•ืช ื”ื‘ืื•ืช ืžืขื ื™ืงื•ืช ืœ-OpenVPN ืืช ืฉืžื•ืช ืฉืœื•ืฉืช ืงื•ื‘ืฆื™ ื”ืื™ืžื•ืช ื‘ืฉืจืช ื•ืืช ืงื•ื‘ืฅ ื”ืืคืฉืจื•ื™ื•ืช dh2048 ืฉื™ืฆืจืช ืงื•ื“ื ืœื›ืŸ.
  • ืฉื•ืจืช ื”ืฉืจืช ืžื’ื“ื™ืจื” ืืช ื”ื˜ื•ื•ื— ื•ืžืกื™ื›ืช ืจืฉืช ื”ืžืฉื ื” ืฉืชืฉืžืฉ ืœื”ืงืฆืืช ื›ืชื•ื‘ื•ืช IP ืœืœืงื•ื—ื•ืช ื‘ืขืช ื”ื›ื ื™ืกื”.
  • ืคืจืžื˜ืจ ื”ื“ื—ื™ืคื” ื”ืื•ืคืฆื™ื•ื ืœื™ "ืžืกืœื•ืœ 10.0.3.0 255.255.255.0" ืžืืคืฉืจ ืœืœืงื•ื—ื•ืช ืžืจื•ื—ืงื™ื ืœื’ืฉืช ืœืจืฉืชื•ืช ืžืฉื ื” ืคืจื˜ื™ื•ืช ืžืื—ื•ืจื™ ื”ืฉืจืช. ื›ื“ื™ ืœื’ืจื•ื ืœื–ื” ืœืขื‘ื•ื“ ืฆืจื™ืš ื’ื ืœื”ื’ื“ื™ืจ ืืช ื”ืจืฉืช ื‘ืฉืจืช ืขืฆืžื• ื›ืš ืฉืจืฉืช ื”ืžืฉื ื” ื”ืคืจื˜ื™ืช ืชื“ืข ืขืœ ืจืฉืช ื”ืžืฉื ื” ืฉืœ OpenVPN (10.8.0.0).
  • ืงื• port-share localhost 80 ืžืืคืฉืจ ืœืš ืœื”ืคื ื•ืช ืžื—ื“ืฉ ืืช ืชืขื‘ื•ืจืช ื”ืœืงื•ื— ืฉืžื’ื™ืขื” ื‘ื™ืฆื™ืื” 1194 ืœืฉืจืช ืื™ื ื˜ืจื ื˜ ืžืงื•ืžื™ ืฉืžืื–ื™ืŸ ื‘ื™ืฆื™ืื” 80. (ื–ื” ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ืื ืืชื” ืžืชื›ื•ื•ืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ื›ื“ื™ ืœื‘ื“ื•ืง ืืช ื”-VPN ืฉืœืš.) ื–ื” ืขื•ื‘ื“ ืจืง ืœืื—ืจ ืžื›ืŸ ื›ืืฉืจ ืคืจื•ื˜ื•ืงื•ืœ tcp ื ื‘ื—ืจ.
  • ื™ืฉ ืœื”ืคืขื™ืœ ืืช ื”ืฉื•ืจื•ืช nobody ื•-Nobody ืฉืœ ื”ืžืฉืชืžืฉ ืขืœ ื™ื“ื™ ื”ืกืจืช ื ืงื•ื“ื•ืช ืคืกื™ืง (;). ืื™ืœื•ืฅ ืœืงื•ื—ื•ืช ืžืจื•ื—ืงื™ื ืœืคืขื•ืœ ื›-Nobody and nogroup ืžื‘ื˜ื™ื— ืฉื”ื”ืคืขืœื•ืช ื‘ืฉืจืช ืื™ื ืŸ ืžื•ืจืฉื•ืช.
  • log ืžืฆื™ื™ืŸ ืฉืจืฉื•ืžื•ืช ื™ื•ืžืŸ ื ื•ื›ื—ื™ื•ืช ื™ื“ืจื•ืกื• ืขืจื›ื™ื ื™ืฉื ื™ื ื‘ื›ืœ ืคืขื ืฉ-OpenVPN ืžื•ืคืขืœ, ื‘ืขื•ื“ ืฉ-log-add ืžื•ืกื™ืฃ ืขืจื›ื™ื ื—ื“ืฉื™ื ืœืงื•ื‘ืฅ ื”ื™ื•ืžืŸ ื”ืงื™ื™ื. ื”ืงื•ื‘ืฅ openvpn.log ืขืฆืžื• ื ื›ืชื‘ ืœืกืคืจื™ื™ืช /etc/openvpn/.

ื‘ื ื•ืกืฃ, ืขืจืš ืœืงื•ื— ืœืœืงื•ื— ืžืชื•ื•ืกืฃ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ื›ืš ืฉืœืงื•ื—ื•ืช ืžืจื•ื‘ื™ื ื™ื›ื•ืœื™ื ืœืจืื•ืช ื–ื” ืืช ื–ื” ื‘ื ื•ืกืฃ ืœืฉืจืช OpenVPN. ืื ืืชื” ืžืจื•ืฆื” ืžื”ืชืฆื•ืจื” ืฉืœืš, ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืืช ืฉืจืช OpenVPN:

# systemctl start openvpn

ื‘ืฉืœ ื”ืื•ืคื™ ื”ืžืฉืชื ื” ืฉืœ ืžืขืจื›ืช ื”ื™ื—ืกื™ื ื‘ื™ืŸ OpenVPN ืœ-systemd, ืœืคืขืžื™ื ื”ืชื—ื‘ื™ืจ ื”ื‘ื ืขืฉื•ื™ ืœื”ื™ื“ืจืฉ ื›ื“ื™ ืœื”ืคืขื™ืœ ืฉื™ืจื•ืช: systemctl start openvpn@server.

ื”ืคืขืœืช ip adr ื›ื“ื™ ืœืจืฉื•ื ืืช ืžืžืฉืงื™ ื”ืจืฉืช ืฉืœ ื”ืฉืจืช ืฉืœืš ืืžื•ืจื” ืœื”ื•ืฆื™ื ื›ืขืช ืงื™ืฉื•ืจ ืœืžืžืฉืง ื—ื“ืฉ ื‘ืฉื tun0. OpenVPN ืชื™ืฆื•ืจ ืื•ืชื• ื›ื“ื™ ืœืฉืจืช ืœืงื•ื—ื•ืช ื ื›ื ืกื™ื:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื” ืขืœื™ืš ืœืืชื—ืœ ืืช ื”ืฉืจืช ืœืคื ื™ ืฉื”ื›ืœ ื™ืชื—ื™ืœ ืœืขื‘ื•ื“ ื‘ืžืœื•ืื•. ื”ืชื—ื ื” ื”ื‘ืื” ื”ื™ื ืžื—ืฉื‘ ื”ืœืงื•ื—.

10.1.2. ื”ื’ื“ืจืช ืœืงื•ื— OpenVPN

ื‘ืื•ืคืŸ ืžืกื•ืจืชื™, ืžื ื”ืจื•ืช ื‘ื ื•ื™ื•ืช ืขื ืœืคื—ื•ืช ืฉืชื™ ื™ืฆื™ืื•ืช (ืื—ืจืช ื”ื™ื™ื ื• ืงื•ืจืื™ื ืœื”ืŸ ืžืขืจื•ืช). OpenVPN ืžื•ื’ื“ืจ ื›ื”ืœื›ื” ื‘ืฉืจืช ืžืคื ื” ืืช ื”ืชืขื‘ื•ืจื” ืคื ื™ืžื” ื•ืžื—ื•ืฅ ืœืžื ื”ืจื” ืžืฆื“ ืื—ื“. ืื‘ืœ ืชืฆื˜ืจืš ื’ื ืชื•ื›ื ื” ื›ืœืฉื”ื™ ื”ืคื•ืขืœืช ื‘ืฆื“ ื”ืœืงื•ื—, ื›ืœื•ืžืจ ื‘ืงืฆื” ื”ืฉื ื™ ืฉืœ ื”ืžื ื”ืจื”.

ื‘ืกืขื™ืฃ ื–ื”, ืื ื™ ื”ื•ืœืš ืœื”ืชืžืงื“ ื‘ื”ื’ื“ืจื” ื™ื“ื ื™ืช ืฉืœ ืกื•ื’ ื›ืœืฉื”ื• ืฉืœ ืžื—ืฉื‘ ืœื™ื ื•ืงืก ืฉื™ืคืขืœ ื›ืœืงื•ื— OpenVPN. ืื‘ืœ ื–ื• ืœื ื”ื“ืจืš ื”ื™ื—ื™ื“ื” ืฉื‘ื” ื”ื”ื–ื“ืžื ื•ืช ื”ื–ื• ื–ืžื™ื ื”. OpenVPN ืชื•ืžืš ื‘ื™ื™ืฉื•ืžื™ ืœืงื•ื— ืฉื ื™ืชืŸ ืœื”ืชืงื™ืŸ ื•ืœื”ืฉืชืžืฉ ื‘ืžื—ืฉื‘ื™ื ืฉื•ืœื—ื ื™ื™ื ื•ืžื—ืฉื‘ื™ื ื ื™ื™ื“ื™ื ืขื Windows ืื• macOS, ื›ืžื• ื’ื ืกืžืืจื˜ืคื•ื ื™ื ื•ื˜ืื‘ืœื˜ื™ื ืฉืœ Android ื•- iOS. ืจืื” openvpn.net ืœืคืจื˜ื™ื.

ื—ื‘ื™ืœืช OpenVPN ืชืฆื˜ืจืš ืœื”ื™ื•ืช ืžื•ืชืงื ืช ื‘ืžื—ืฉื‘ ื”ืœืงื•ื— ื›ืคื™ ืฉื”ื•ืชืงื ื” ื‘ืฉืจืช, ืื ื›ื™ ืื™ืŸ ืฆื•ืจืš ื‘-easy-rsa ื›ืืŸ ืžื›ื™ื•ื•ืŸ ืฉื”ืžืคืชื—ื•ืช ืฉื‘ื”ื ืืชื” ืžืฉืชืžืฉ ื›ื‘ืจ ืงื™ื™ืžื™ื. ืขืœื™ืš ืœื”ืขืชื™ืง ืืช ืงื•ื‘ืฅ ื”ืชื‘ื ื™ืช client.conf ืœืกืคืจื™ื™ืช /etc/openvpn/ ืฉื™ืฆืจืช ื–ื” ืขืชื”. ื”ืคืขื ื”ืงื•ื‘ืฅ ืœื ื™ื”ื™ื” ืžื›ื•ื•ืฅ, ืื– ื”ืคืงื•ื“ื” ื”ืจื’ื™ืœื” cp ืชืขืฉื” ืืช ื”ืขื‘ื•ื“ื” ืžืฆื•ื™ืŸ:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

ืจื•ื‘ ื”ื”ื’ื“ืจื•ืช ื‘ืงื•ื‘ืฅ client.conf ืฉืœืš ื™ื”ื™ื• ื“ื™ ืžื•ื‘ื ื•ืช ืžืืœื™ื”ืŸ: ื”ืŸ ืฆืจื™ื›ื•ืช ืœื”ืชืื™ื ืœืขืจื›ื™ื ื‘ืฉืจืช. ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžืงื•ื‘ืฅ ื”ื“ื•ื’ืžื” ื”ื‘ื, ื”ืคืจืžื˜ืจ ื”ื™ื™ื—ื•ื“ื™ ื”ื•ื ืžืจื—ื•ืง 192.168.1.23 1194, ืฉืื•ืžืจ ืœืœืงื•ื— ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉืจืช. ืฉื•ื‘, ื•ื“ื ืฉื–ื• ื›ืชื•ื‘ืช ื”ืฉืจืช ืฉืœืš. ืขืœื™ืš ื’ื ืœืืœืฅ ืืช ืžื—ืฉื‘ ื”ืœืงื•ื— ืœืืžืช ืืช ื”ืื•ืชื ื˜ื™ื•ืช ืฉืœ ืื™ืฉื•ืจ ื”ืฉืจืช ื›ื“ื™ ืœืžื ื•ืข ื”ืชืงืคื” ืืคืฉืจื™ืช ืฉืœ ืื“ื ื‘ืืžืฆืข. ืื—ืช ื”ื“ืจื›ื™ื ืœืขืฉื•ืช ื–ืืช ื”ื™ื ืœื”ื•ืกื™ืฃ ืืช ืฉืจืช ื”ืงื• remote-cert-tls (ืจื™ืฉื•ื 10.3).

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœืœื›ืช ืœืกืคืจื™ื™ื” /etc/openvpn/ ื•ืœื—ืœืฅ ืืช ืžืคืชื—ื•ืช ื”ืื™ืฉื•ืจ ืžื”ืฉืจืช. ื”ื—ืœืฃ ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉืจืช ืื• ืฉื ื”ื“ื•ืžื™ื™ืŸ ื‘ื“ื•ื’ืžื” ื‘ืขืจื›ื™ื ืฉืœืš:

ืกืคืจ "ืœื™ื ื•ืงืก ื‘ืคืขื•ืœื”"
ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืฉื•ื ื“ื‘ืจ ืžืจื’ืฉ ืœื ื™ืงืจื” ืขื“ ืฉืชืคืขื™ืœ ืืช OpenVPN ื‘ืœืงื•ื—. ืžื›ื™ื•ื•ืŸ ืฉืืชื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ื›ืžื” ื˜ื™ืขื•ื ื™ื, ืชืขืฉื” ื–ืืช ืžืฉื•ืจืช ื”ืคืงื•ื“ื”. ื”ืืจื’ื•ืžื ื˜ --tls-client ืื•ืžืจ ืœ-OpenVPN ืฉืชืคืขืœ ื›ืœืงื•ื— ื•ืชืชื—ื‘ืจ ื‘ืืžืฆืขื•ืช ื”ืฆืคื ืช TLS, ื•--config ืžืฆื‘ื™ืข ืขืœ ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœืš:

# openvpn --tls-client --config /etc/openvpn/client.conf

ืงืจื ื‘ืขื™ื•ืŸ ืืช ืคืœื˜ ื”ืคืงื•ื“ื” ื›ื“ื™ ืœื•ื•ื“ื ืฉืืชื” ืžื—ื•ื‘ืจ ื›ื”ืœื›ื”. ืื ืžืฉื”ื• ืžืฉืชื‘ืฉ ื‘ืคืขื ื”ืจืืฉื•ื ื”, ื™ื™ืชื›ืŸ ืฉื”ื“ื‘ืจ ื ื•ื‘ืข ืžืื™ ื”ืชืืžื” ื‘ื”ื’ื“ืจื•ืช ื‘ื™ืŸ ืงื‘ืฆื™ ื”ืชืฆื•ืจื” ืฉืœ ื”ืฉืจืช ื•ื”ืœืงื•ื— ืื• ืžื‘ืขื™ื™ืช ื—ื™ื‘ื•ืจ ืœืจืฉืช/ื—ื•ืžืช ืืฉ. ื”ื ื” ื›ืžื” ืขืฆื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช.

  • ืงืจื ื‘ืขื™ื•ืŸ ืืช ื”ืคืœื˜ ืฉืœ ืคืขื•ืœืช OpenVPN ื‘ืœืงื•ื—. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื”ื•ื ืžื›ื™ืœ ืขืฆื•ืช ื—ืฉื•ื‘ื•ืช ืœื’ื‘ื™ ืžื” ื‘ื“ื™ื•ืง ืœื ื ื™ืชืŸ ืœืขืฉื•ืช ื•ืœืžื”.
  • ื‘ื“ื•ืง ืืช ื”ื•ื“ืขื•ืช ื”ืฉื’ื™ืื” ื‘ืงื‘ืฆื™ openvpn.log ื•-openvpn-status.log ื‘ืกืคืจื™ื™ืช /etc/openvpn/ ื‘ืฉืจืช.
  • ื‘ื“ื•ืง ืืช ื™ื•ืžื ื™ ื”ืžืขืจื›ืช ื‘ืฉืจืช ื•ื‘ืœืงื•ื— ืขื‘ื•ืจ ื”ื•ื“ืขื•ืช ื”ืงืฉื•ืจื•ืช ืœ-OpenVPN ื•ืžืชื•ื–ืžื ื•ืช. (journalctl -ce ื™ืฆื™ื’ ืืช ื”ืขืจื›ื™ื ื”ืื—ืจื•ื ื™ื.)
  • ื•ื“ื ืฉื™ืฉ ืœืš ื—ื™ื‘ื•ืจ ืจืฉืช ืคืขื™ืœ ื‘ื™ืŸ ื”ืฉืจืช ืœืœืงื•ื— (ืขื•ื“ ืขืœ ื›ืš ื‘ืคืจืง 14).

ืขืœ ื”ืžื—ื‘ืจ

ื“ื™ื•ื•ื™ื“ ืงืœื™ื ื˜ื•ืŸ - ืžื ื”ืœ ืžืขืจื›ืช, ืžื•ืจื” ื•ื›ื•ืชื‘. ื”ื•ื ื ื™ื”ืœ, ื›ืชื‘ ื•ื™ืฆืจ ื—ื•ืžืจื™ื ื—ื™ื ื•ื›ื™ื™ื ืœื“ื™ืกืฆื™ืคืœื™ื ื•ืช ื˜ื›ื ื™ื•ืช ื—ืฉื•ื‘ื•ืช ืจื‘ื•ืช, ื›ื•ืœืœ ืžืขืจื›ื•ืช ืœื™ื ื•ืงืก, ืžื—ืฉื•ื‘ ืขื ืŸ (ื‘ืžื™ื•ื—ื“ AWS), ื•ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžื™ื›ืœ ื›ื’ื•ืŸ Docker. ื”ื•ื ื›ืชื‘ ืืช ื”ืกืคืจ Learn Amazon Web Services in a Month of Lunches (Manning, 2017). ื ื™ืชืŸ ืœืžืฆื•ื ืจื‘ื™ื ืžืงื•ืจืกื™ ื”ื“ืจื›ื” ืฉืœื• ื‘ื•ื•ื™ื“ืื• ื‘- Pluralsight.com, ื•ืงื™ืฉื•ืจื™ื ืœืกืคืจื™ื ืื—ืจื™ื ืฉืœื• (ืขืœ ื ื™ื”ื•ืœ ืœื™ื ื•ืงืก ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืฉืจืชื™ื) ื–ืžื™ื ื™ื ื‘ื›ืชื•ื‘ืช bootstrap-it.com.

ยป ืคืจื˜ื™ื ื ื•ืกืคื™ื ืขืœ ื”ืกืคืจ ื ื™ืชืŸ ืœืžืฆื•ื ื‘ื›ืชื•ื‘ืช ืืชืจ ื”ืื™ื ื˜ืจื ื˜ ืฉืœ ื”ื”ื•ืฆืื” ืœืื•ืจ
ยป ืชื•ื›ืŸ ื”ืขื ื™ื™ื ื™ื
ยป ืงื˜ืข

ืขื‘ื•ืจ Khabrozhiteley 25% ื”ื ื—ื” ื‘ืืžืฆืขื•ืช ืงื•ืคื•ืŸ - ืœื™ื ื•ืงืก
ื‘ืชืฉืœื•ื ื’ืจืกืช ื”ื ื™ื™ืจ ืฉืœ ื”ืกืคืจ ื™ืฉืœื— ืกืคืจ ืืœืงื˜ืจื•ื ื™ ื‘ืžื™ื™ืœ.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”