áá±á¬ááºáá¯ááºáá»áẠâáá.áá OpenVPN á¥áááºááá¯ááºáá±á«ááºáž áááºáá®ážááŒááºáž"
á áá áºááá» áá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ VPN á¥áááºáá áºáá¯ááẠáá¯á¶ááŒá¯á¶ááŸá¯áááŸááá±á¬ ááœááºáááºáá áºáá¯áá±á«áºááœáẠááœá¬ážáá¬áá±á áẠáá±áá¬ááᯠáá¯á¶ážááœááºáá¬ážááá·áº áááºážáááºážááŒáá·áº á¡áá±ážá០áá¯á¶ážá áœá²áá°áá»á¬ážááŸáá·áº áá¬áá¬ááŒá¬áž ááá¯ááºááá¯ááºáá»áááºáááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áá¬ááŒá áºááá²? áá¯ááºááŸááºááŒááºážááŒáá·áº áááºážááá¯áá¯ááºáá±á¬ááºááá¯ááºááá·áº áááááá¬áá»á¬ážá áœá¬ááᯠáááºááœá±á·ááŒááºááŒá®ážááŒá áºáááºá VPN áá¡á á áºá¡ááŸááºáááºááá¯ážááŸá¬ á¥áááºááá¯ááºáá±á«ááºážáá áºáá¯ááœáá·áºááŒááºážááŒáá·áº áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠáá±ááá¹ááááœááºáááºáá»á¬ážáá²á·ááá¯á· á¡áá±ážááááºážááœááºáááºáá»á¬ážááᯠáá»áááºáááºááá¯ááºáááºá áá áºáááºážá¡á¬ážááŒáá·áº áááºááẠááŸá±á¬ááºááœááºážááᯠá¡áá¯á¶ážááŒá¯áá±áá«áááºá
á€ááá¯ážáá»á²á·ááœááºáááºááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº á á®áá¶ááá·áºááœá²áá°áá»á¬ážááẠáááºážááá¯á·ááá¬áá¬áá»á¬ážááœáẠáááºážááá¯á·áá¡áá¯ááºáá»á¬ážááᯠáááºááá·áºáá±áá¬ááŸáááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá ááá¯á·áá±á¬áº ááá¯áá¡áá±ážááŒá®ážáááºááŸá¬á áá±áá¬áá±á«ááºážá á¯á¶ááœáẠááŒáá·áºáá»ááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááŸááá±á¬ áá¯áá¹ááá®áá áºáá¯ááẠáááºážááá¯á·ááᯠááá¯á¡ááºááá·áºá¡ááœá²á·áá»á¬ážá¡á¬ážáá¯á¶ážá áááºážááá¯á·ááŸááá±ááá·áºáá±áá¬ááá¯ááºážááœáẠááŒááºááá¯ááºá á±áááºááŸáá·áº áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáááºááŸááºážáá®ááá¯ááºá á±ááẠ(áá¯á¶ 10.1)á
á¥áááºááá¯ááºáá±á«ááºážááá¯ááºááá¯ááºá áá¯á¶ááŒá¯á¶áá±ážá¡á¬ááá¶áá»ááºáááŸááá«áá°ážá ááá¯á·áá±á¬áº áá¯á¶ááŒá¯á¶áá±ážá¡ááá·áºááᯠáááááá¬áá¬ááá¯ážááŒáá·áºá á±ááá·áº ááœááºáááºááœá²á·á ááºážáá¯á¶ááœáẠáá¯ááºááŸááºááŒááºážá á¶ááŸá¯ááºážáá»á¬ážáá²á០áá áºáá¯ááᯠááá·áºááœááºážááá¯ááºáááºá ááœáá·áºáááºážáááºážááŒá ẠOpenVPN áááºáá±á·áá»áºááᯠá¡áá¯á¶ážááŒá¯á áááºáá®ážáá¬ážááá·áº á¥áááºáá»á¬áž ááẠáááºáááºááŸá¯ááŒá®ážáá±á¬ TLS/SSL áá¯ááºááŸááºá áá áºááᯠá¡áá¯á¶ážááŒá¯áááºá OpenVPN ááẠáááá¯ááºáá±á¬áá áºáá¯áááºážáá±á¬ tunneling option ááá¯ááºáá²á áááºážááẠáá°áááá»á¬ážáá±á¬ áá áºáá¯ááŒá áºáááºá IPsec áá¯ááºááŸááºááŒááºážááá¯á¡áá¯á¶ážááŒá¯ááá·áº á¡ááŒá¬ážá¡ááœáŸá¬ 2 á¥áááºáááá¯ááá¯áá±á¬ááẠá¡áááºážáááºááá¯ááá¯ááŒááºáááºááŒá®áž áá¯á¶ááŒá¯á¶áááºáᯠáá°ááá«áááºá
ááá·áºá¡ááœá²á·ááŸááá°á¡á¬ážáá¯á¶ážááᯠáááºážáá±á«áºááœááºááŒá áºá á± ááá¯á·ááá¯áẠááá°áá®áá±á¬á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬ážááœáẠá¡áá¯ááºáá¯ááºáá±áá»áááºááœáẠá¡áá»ááºážáá»ááºáž áá¯á¶ááŒá¯á¶á áœá¬ááŒá±á¬ááá¯áááºáá¶á á±ááá¯áá«ááá¬ážá áááºážááá¯áá¯ááºáá±á¬ááºáááºá áááºááẠá¡ááºááºáá®áá±ážááŸááºážáá»áŸáá±ááŒááºážááŸáá·áº áá¬áá¬ááá±ááá¶ááœááºáááºáááºáááºážáá»ááºááá¯á· áááºáá±á¬ááºááœáá·áºááŒá¯ááẠOpenVPN áá¬áá¬ááᯠáááºáá®ážááẠááá¯á¡ááºáááºá áááºážááá¯áá¯ááºáá±á¬ááºáááºá¡ááœáẠáááºáá¯ááºáá±á¬ááºáááºááŸá¬ virtual machine ááŸá áºáᯠááá¯á·ááá¯áẠcontainer ááŸá áºáá¯ááᯠrun áááºááŒá áºáááº- áá áºáá¯ááẠserver/host á¡ááŒá áºáá¯ááºáá±á¬ááºáááºááŸáá·áº áá áºáá¯ááẠclient á¡ááŒá áºáá¯ááºáá±á¬ááºáááºááŒá áºáááºá VPN áá áºáá¯ááᯠáááºáá±á¬ááºááŒááºážááẠááá¯ážááŸááºážáá±á¬ áá¯ááºáááºážá ááºáá áºáᯠááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áº áá¯á¶ááŒá®ážáá áºáá¯á¶ááŒá®ážááᯠááááááẠáááá áºá¡áááºážááẠá¡áá»áááºáá°ááá»áá¯ážáááºáá«áááºá
áá.á.áá OpenVPN áá¬áᬠááœá²á·á ááºážááŸá¯
áá áááºáááºááŸá¬ á¡áá¯á¶ážáááºáá²á· á¡ááŒá¶áá¬ááºá¡áá»áá¯á·ááᯠáá±ážáá«á·áááºá áááºááá¯ááºááá¯ááºááŒá¯áá¯ááºáááºááá¯áá«á (áááºáá¯ááºááẠá¡áá°ážá¡ááŒá¶ááŒá¯ááá¯áá«áááº)á ááá·áº Desktop áá±á«áºááœááºááœáá·áºáá¬ážáá±á¬ terminal windows á¡áá»á¬ážá¡ááŒá¬ážááŸáá·áº á¡áá¯ááºáá¯ááºáá±áá¯á¶á áá áºáá¯á á®ááẠááá°áá®áá±á¬á ááºáá áºáá¯ááá¯á· áá»áááºáááºáá¬ážááŒááºážááŒá áºáááºá áá áºáá»áááºáá»áááºááœáẠáááºááẠWindow áá²ááá¯á· ááŸá¬ážááœááºážáá±á¬ command ááá¯ááá¯ááºááá·áºáááºááá¯áá«á á¡áá¹ááá¬ááºááŸááá«áááºá áááºážááá¯ááŸá±á¬ááºááŸá¬ážáááºá áááºááẠcommand line ááœááºááŒááá¬ážáá±á¬á ááºá¡áááºááá¯ááá·áºá¡á¬ážááŸááºážáááºážá áœá¬ááŒá±á¬ááŒááá·áºá¡áá¬ááá¯á·ááŒá±á¬ááºážáá²ááẠhostname command ááá¯áá¯á¶ážááá¯ááºáááºá áááºá€ááá¯á·áá¯ááºáá±á¬ááºááŒá®ážáááºááŸáá·áº áááºááẠáá¬áá¬ááŸááœááºááŒá®áž áááºáááºá¡áá áºáá»á¬ážá¡áá»áá¯ážáááºáá±á¬ááºá á±áááºá¡ááœáẠááŒááºáááºáááºáá±á¬ááºááẠááá¯á¡ááºáááºááŒá áºáááºá á€á¡áá¬ááẠáá¯á¶ááá¹áá¬ááºááŒá áºáááº-
á€áá»ááºážáááºáááºážááᯠááá¯ááºáá¬ááŒá®áž áááºááŸáá·áºá¡áá¯ááºáá¯ááºáá±á¬ á
ááºáá
áºáá¯á
á®á¡á¬áž ááá·áºáá»á±á¬áºáá±á¬á¡áááºáá»á¬ážáá±ážááŒááºážááŒáá·áºá áááºáá±á¬ááºááŸááá±ááá·áºáá±áá¬ááᯠá¡ááœááºááá°ááŒá±áá¬áá¶ááá¯ááºáááºááŒá
áºáááºá
hostname ááá¯á¡áá¯á¶ážááŒá¯ááŒá®ážáá±á¬ááºá áá±á¬ááºáááºááœá² command áá»á¬ážááá¯áá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœáẠHost OpenVPN-Server áááºáá±á·áá»áºáá»á¬ážááá¯ááŒá±ááŸááºážááááá±á¬á áááºá¡ááŸá±á¬ááºá¡ááŸááºááŒá áºá áá¬áá»á¬ážááŸáá·áºááŒá¯á¶ááœá±á·áááá¯ááºáááºá ááá·áºáá»á±á¬áºáá±á¬ hostname á¡áá áºááŒáá·áº /etc/hosts ááá¯ááºááᯠá¡ááºááááºáá¯ááºááŒááºážááẠááŒá¿áá¬ááᯠááŒá±ááŸááºážááá·áºáááºá
OpenVPN á¡ááœáẠááá·áºáá¬áá¬ááᯠááŒááºáááºáá±áá«áááºá
OpenVPN ááᯠááá·áºáá¬áá¬ááœáẠááá·áºááœááºážáááºá áááºááẠáááºáá±á·áá»áºááŸá áºáᯠááá¯á¡ááºáááº- openvpn ááŸáá·áº easy-rsa (áá¯ááºááŸááºááŒááºáž áá±á¬á·áá¯ááºáá¯ááºááŒááºážáá¯ááºáááºážá ááºááᯠá á®áá¶ááá·áºááœá²áááº)á á¡áááºáž 2 ááœáẠáááºáá¯ááºáá±á¬ááºáá²á·ááá·áºá¡ááá¯ááºáž ááá¯á¡ááºáá«á CentOS á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠááá¯á¡ááºáá«á epel-release repository ááᯠáŠážá áœá¬ááá·áºááœááºážááá·áºáááºá áá¬áá¬á¡ááºááºáá®áá±ážááŸááºážááá¯á· áááºáá±á¬ááºááŒáá·áºááŸá¯á ááºážáááºááá¯ááºá á±áááºá áááºááẠApache áááºáá¬áᬠ(apache2 ááœáẠUbuntu ááŸáá·áº CentOS ááœáẠhttpd) ááá¯á·ááá¯áááºáž ááá·áºááœááºážááá¯ááºáááºá
ááá·áºáá¬áá¬ááᯠá áá áºááá·áºááœááºážáá±áá»áááºááœááºá 22 (SSH) ááŸáá·áº 1194 (OpenVPN ááá°áááá¯á·ááº) ááŸááœá²á ááááºáááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááááºááá¯á·ááá·áº firewall ááᯠá¡áááºááœááºážááẠá¡ááŒá¶ááŒá¯áá«áááºá á€á¥ááá¬ááẠUbuntu ááœáẠufw á¡áá¯ááºáá¯ááºáá¯á¶ááᯠááá¯ááºáá±á¬áºáá¬ážáá±á¬áºáááºáž á¡áááºáž á á០CentOS firewalld áááá¯ááááºááᯠáááºááŸááºáááá±áá±ážááŒá±á¬ááºáž áá±áá»á¬áá«áááºá
# ufw enable
# ufw allow 22
# ufw allow 1194
áá¬áá¬áá±á«áºááŸá ááœááºáááºá¡ááºáá¬áá±á·á áºáá»á¬ážá¡ááŒá¬áž á¡ááœááºážááá¯ááºážáááºážááŒá±á¬ááºážááᯠááœáá·áºáááºá áááºááẠ/etc/sysctl.conf ááá¯ááºááœáẠá á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºáž (net.ipv4.ip_forward = 1) ááᯠááŸááºáá»ááºááá±ážááá¯áá«á áááºážá áá»áááºáááºááŒá®ážáááºááŸáá·áº á¡áá±ážá០áá¯á¶ážá áœá²áá°áá»á¬ážááᯠááá¯á¡ááºáááᯠááŒááºááœáŸááºážááá¯ááºá á±áááºááŒá áºáááºá ááœá±ážáá»ááºááŸá¯á¡áá áºááᯠá¡áá¯ááºááŒá áºá á±ááẠsysctl -p ááá¯ááœáá·áºáá«á
# nano /etc/sysctl.conf
# sysctl -p
áááºááá¬áá¬áááºáááºážáá»ááºááᯠááᯠá¡ááŒáá·áºá¡áááŒááºáááºáááºááŸááºáá¬ážááŒá®ážááŒá áºáá±á¬áºáááºáž áááºá¡áááºááá·áºáááŒá áºáá® áá±á¬ááºáááºáá¯ááºáá±á¬ááºá áá¬áá áºáá¯ááŸááá±áá±ážáááº- á¡á±á¬ááºáá«á¡ááá·áºáá»á¬ážááᯠááŒá®ážááŒá±á¬ááºááẠááá¯á¡ááºáááºááŒá áºááẠ(áááºážááá¯á·ááᯠáá±á¬ááºááœááºá¡áá±ážá áááºáá±á¬áºááŒáá«áááº)á
- ááœááºáá°áá±á¬ rsa áááºáá±á·áá»áºááŒáá·áº áá±ážáá¬ážááá·áº script áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá¬áá¬áá±á«áºááœáẠá¡áá»á¬ážáá°ááŸá¬áá±á¬á·á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ (PKI) áá¯ááºááŸááºááŒááºážáá±á¬á·á¡á á¯á¶ááᯠáááºáá®ážáá«á á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá OpenVPN áá¬áá¬ááẠáááºážáááá¯ááºááá¯áẠáááºááŸááºá¡á¬áá¬ááá¯áẠ(CA) á¡ááŒá áºáááºáž áá¯ááºáá±á¬ááºáááºá
- áá¯á¶ážá áœá²áá°á¡ááœáẠááá·áºáá»á±á¬áºáá±á¬áá±á¬á·áá»á¬ážááᯠááŒááºáááºáá«á
- áá¬áá¬á¡ááœáẠserver.conf ááá¯ááºááᯠá á®á ááºáááºááŸááºáá«á
- áááºá OpenVPN áá¯á¶ážá áœá²áá°ááᯠá áá áºááá·áºááœááºážáá«á
- áááºá VPN ááá¯á á áºáá±ážáá«á
áá¯ááºááŸááºááŒááºážáá±á¬á·áá»á¬ážááᯠáá¯ááºáá¯ááºááŒááºážá
á¡áá¬áá»á¬ážááᯠááá¯ážááŸááºážá á±áááºá OpenVPN áá¬áá¬áááºáááºáá±ááá·áº áá°áá®áá±á¬á ááºááœáẠáááºáá¡áááá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠáááºáááºááŸááºááá¯ááºáááºá ááá¯á·áá±á¬áºá áá¯á¶ááŒá¯á¶áá±áž á¡áá±á¬ááºážáá¯á¶áž á¡áá±á·á¡áá»áá·áºáá»á¬ážááẠáá¯ááºáá¯ááºááŸá¯ ááŒáá·áºáá»ááºááŸá¯á¡ááœáẠáá®ážááŒá¬áž CA áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá«áááºá OpenVPN ááœááºá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá¯ááºááŸááºááŒááºážáá±á¬á·á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá¯ááºáá¯ááºááŒááºážááŸáá·áº ááŒáá·áºáá±ááŒááºážáá¯ááºáááºážá ááºááᯠáá¯á¶ááœááºáá±á¬áºááŒáá¬ážáááºá áá.áá
OpenVPN ááᯠáááºááá·áºááœááºážáá±á¬á¡áá«á /etc/openvpn/ áááºážááœáŸááºááᯠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážáá¬ážáá±á¬áºáááºáž áááºážááœáẠáá¬áá»áŸáááŸááá±ážáá«á openvpn ááŸáá·áº easy-rsa packages áá»á¬ážááẠááá·áº configuration á¡ááœáẠá¡ááŒá±áá¶á¡ááŒá
Ạáááºáá¯á¶ážááá¯ááºáá±á¬ á¥ááᬠtemplate ááá¯ááºáá»á¬áž áá«ááŸááááºá á¡ááá¡ááŸááºááŒá¯ááŒááºážáá¯ááºáááºážá
ááºááá¯á
áááºáááºá ááœááºáá°áá±á¬-rsa ááá°áá¬áááºážááœáŸááºááᯠ/usr/share/ á០/etc/openvpn ááá¯á·áá°ážáá°ááŒá®áž easy-rsa/ áááºážááœáŸááºááá¯á·ááŒá±á¬ááºážáá«á
# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa
ááœááºáá°áá±á¬ rsa áááºážááœáŸááºááœáẠááá¯á¡áá« áá¬ááºááœáŸááºážá¡áááºážáááºáá«ááŸááááºá á á¬ážááœá²áá±á«áºááŸá¬ 10.1 ááẠáá±á¬á·áá»á¬ážáááºáá®ážááẠáááºá¡áá¯á¶ážááŒá¯ááá·áº áááááá¬áá»á¬ážááᯠá á¬áááºážááŒá¯á á¯áá¬ážáááºá
á¡áááºáá±á¬áºááŒáá« áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠroot á¡ááœáá·áºáá°ážáá»á¬áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº sudo su ááŸáá áºááá·áº root ááŒá áºáá¬ááẠááá¯á¡ááºáá«áááºá
áááºááŸáá·áºá¡áá°á¡áá¯ááºáá¯ááºááá·áº ááááá¯á¶ážááá¯ááºááᯠvars áá¯áá±á«áºááŒá®áž áá±á¬á·áá»á¬ážáááºáá®ážáá¬ááœáẠááœááºáá°áá±á¬ rsa á¡áá¯á¶ážááŒá¯ááá·áº áááºáááºážáá»ááºááŒá±á¬ááºážááœá²áá»á¬ážáá«ááŸááááºá ááŸáááŸáá·áºááŒá®ážáá¬áž áá°áááºážáááºááá¯ážáá»á¬ážá¡á á¬áž ááá·áºááá¯ááºááá¯ááºáááºááá¯ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯ááºááᯠáááºážááŒááºááẠááá¯á¡ááºáááºá á€á¡áá¬ááẠáá»áœááºá¯ááºáááá¯áẠ(Listing 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 ááá¯ááºááᯠrun ááŒááºážááẠáááºážááááºááá¯ážáá»á¬ážááᯠááá·áºáá±á¬á·á¡áá áºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááœáẠáááºážááá¯á·ááá·áºááœááºážááá·áº shell áááºáááºážáá»ááºááá¯á· áá±á¬ááºááŸááááºááŒá áºáááºá sudo command á áá¬ááŒá±á¬áá·áº áá°á·á¡ááá¯ááᯠá¡áá¯ááºááá¯ááºáá¬áá²á áá¬ááŒá±á¬áá·áºáá²ááá¯áá±á¬á· áááá¡ááá·áºááŸá¬ vars ááá¯á· á¡áááºáá±ážáá¬ážáá²á· áá¬ááºááœáŸááºážááᯠáááºážááŒááºááŒá®áž á¡á²áá«ááᯠá¡áá¯á¶ážááŒá¯ááá¯á·áá«áá²á á¡áá¯á¶ážáá»ááŒááºážááŸáá·áº ááá¯ááá¯áááºááŸá¬ vars ááá¯ááºááẠáááºážááááºááá¯ážáá»á¬ážááᯠááá·áºáá±á¬á·á¡áá áºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááœáẠáááºážááá¯á·ááá·áºááœááºážááá·áº shell áááºáááºážáá»ááºááá¯á· áá±á¬ááºááŸáááœá¬ážáááºááŒá áºáááºá
áááŒá®ážáá¯á¶ážáá±ážáá±á¬ áá¯ááºáááºážá ááºááᯠá¡ááŒá®ážáááºááẠshell á¡áá áºááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááᯠááŒááºááœáá·áºááẠáá±áá»á¬áá«á á±á áááºážááá¯ááŒá®ážáá±á¬á¡áá«á script ááẠ/etc/openvpn/easy-rsa/keys/ directory á¡ááœááºážááŸá áááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááá¯áááᯠáááºááŸá¬ážáááºá clean-allá á¡ááŒá¬áž script ááᯠrun ááẠááá·áºá¡á¬áž ááááá±ážáááºááŒá áºáááºá
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áá±á¬ááºáá
áºááá·áºááŸá¬ root áááºááŸááºááá¯áááºáá®ážááẠpkitool script ááá¯á¡áá¯á¶ážááŒá¯ááá·áº clean-all script ááᯠrun áááºááŒá
áºáááºá vars ááŸáá±ážáá±á¬ á¡áá±á¬ááºá¡áá¬ážáááºáááºáá»á¬ážááᯠá¡áááºááŒá¯ááẠááá·áºá¡á¬áž áá±á¬ááºážááá¯áááá·áºáááº-
# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key
áá±á¬ááºáá áºáá¯ááá±á¬á· build-key-server script áá«á áááºážááẠroot áááºááŸááºá¡áá áºááŸáá·áºá¡áá° áá°áá®áá±á¬ pkitool script ááá¯á¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áºá áá±á¬á·á¡ááœá²áááºáá®ážááŸá¯ááᯠá¡áááºááŒá¯ááẠáá°áá®áá±á¬áá±ážááœááºážáá»á¬ážááᯠáááºááœá±á·ááá«áááºá á€á ááºáá±á«áºááœáẠVPN á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºá¡áá¯á¶ážááŒá¯ááŒááºážáááŸááá«áá á¥ááá¬ááœááºááŸáááá²á·ááá¯á· áááºááŒááºáááºážáá±á¬ á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á áá±á¬á·áá»á¬ážááᯠá¡áááºáá±ážáá«áááºá
# ./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 algorithm (build-dh ááá¯á¡áá¯á¶ážááŒá¯áááº) ááŸáá¯ááºáá±ážáá±á¬áá±á¬ááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áááºá á€áá±áá¬ááœáẠáááºáá®ážáá¬ážáá±á¬ááá¯ááºááẠáá»áŸáá¯á·ááŸááºáá¬ážááẠáááá¯á¡ááºáá±á¬áºáááºáž áááºááŸáá¡áá¯á¶ážááŒá¯áá±áá±á¬ RSA áá±á¬á·áá»á¬ážá¡ááœáẠbuild-dh script ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±ážááá«áááºá á¡áá¬áááºááœáẠRSA áá®ážá¡áá áºáá»á¬ážááᯠáááºáá®ážáá«áá Diffie-Hellman ááá¯ááºááá¯áááºáž á¡ááºááááºáá¯ááºááẠááá¯á¡ááºáááá·áºáááº-
# ./build-dh
áááºááá¬áá¬áá±ážááœááºáá±á¬á·áá»á¬ážááẠááᯠ/etc/openvpn/easy-rsa/keys/ directory ááœáẠá¡áá¯á¶ážáááºááœá¬ážáááá·áºáááºááŒá áºáá±á¬áºáááºáž 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
Client áá¯ááºááŸááºááŒááºážáá±á¬á·áá»á¬ážááᯠááŒááºáááºáá±áá«áááºá
áááºááŒááºááŒá®ážááŒá áºááá·áºá¡ááá¯ááºáž TLS áá¯ááºááŸááºááŒááºážááẠáá°áá®áá±á¬áá±á¬á·á¡ááœá²áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááº- áá¬áá¬ááœáẠááá·áºááœááºážáá¬ážááá·áºáá áºáá¯ááŸáá·áº á¡áá±ážááááºážáááá¯ááºážááá·áºááœáẠááá·áºááœááºážáá¬ážááá·áºáá áºáá¯á ááá¯ááá¯áááºááŸá¬ áááºááẠáá¯á¶ážá áœá²áá°áá±á¬á·áá»á¬áž ááá¯á¡ááºáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áááááºááœá±áá±á¬ááºáž pkitool ááẠá€á¡ááœáẠáááºááá¯á¡ááºáá±á¬á¡áá¬ááŒá áºáááºá á€á¥ááá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááá¯ááááºááᯠ/etc/openvpn/easy-rsa/ directory ááœáẠrun áá±á¬á¡áá«á client.crt ááŸáá·áº client.key áá¯áá±á«áºáá±á¬ ááá¯ááºáá»á¬ážáá¯ááºáá¯ááºáááºá¡ááœáẠclient.crt ááŸáá·áº client.key áá¯áá±á«áºáá±á¬ ááá¯ááºáá»á¬ážááá¯áá¯ááºáá±ážááẠáááºážááᯠclient argument ááá¯áá±ážáá«áááºá
# ./pkitool client
áá±á¬á·áá»á¬áž/áááºážááœáŸááºááœááºááŸááá±áá²ááŒá áºáá±á¬ áá°áááºáž ca.crt ááá¯ááºááŸáá·áºá¡áá° áááá¯ááºážááá·áºááá¯ááºááŸá áºáá¯ááᯠááá¯á¡áá« ááá·áºáá±á¬ááºáááºáᶠáá¯á¶ááŒá¯á¶á áœá¬ ááœáŸá²ááŒá±á¬ááºážáá±ážááá·áºáááºá áááºážááá¯á·á ááá¯ááºááá¯ááºááŸá¯ááŸáá·áº ááá°ááá¯ááºááœáá·áºáá»á¬ážááŒá±á¬áá·áºá á€áá»áŸ áááœááºáá°ááá¯ááºáá«á á¡ááá¯ážááŸááºážáá¯á¶ážáááºážáááºážááŸá¬ á¡áááºážá¡ááŒá áºááá¯ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠ(ááá¯á¡ááŒá±á¬ááºážá¡áá¬ááŸááœá²á á¡ááŒá¬ážááá¯ááº) ááᯠááá·áº PC á desktop áá±á«áºááŸá terminal áá áºáá¯ááá¯á· ááá¯ááºááá¯ááºáá°ážáá°áááºááŒá áºááẠ(á á¬áá¬ážááá¯ááœá±ážáá«á áááºážááᯠright-click ááŸáááºááŒá®áž áá®áá°ážá០Copy ááá¯ááœá±ážáá»ááºáá«)á ááá¯á·áá±á¬áẠáááºážááᯠáááºá client ááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ áá¯ááá terminal ááœáẠáááºáááºáá®ážááá·áº á¡áááºáá° ááá¯ááºá¡áá áºáá áºáá¯áá²ááá¯á· áá°ážááá·áºáá«á
áá«áá±ááá·áº áááºáá°áááᯠááŒááºááŒá®áž áááºááá¯ááºáá«áááºá áááºážá¡á á¬ážá ááŒááº/áá°ážááá·áºááŒááºážáá¯ááºáá±á¬ááºááŸá¯áá»á¬áž ááŒá áºááá¯ááºááá·áº GUI ááᯠáááºá¡ááŒá²áááºáá±á¬ááºááœáá·áºáááŸááá±á¬ááŒá±á¬áá·áº á á®áá¶ááá·áºááœá²áá°áá áºáŠážáá²á·ááá¯á·ááœá±ážáá«á ááá¯ááºáá»á¬ážááᯠááá·áºá¡áá¯á¶ážááŒá¯áá°á áááºááááºážááœáŸááºááá¯á· áá°ážáá°áá« (á¡áá±ážááááºáž scp áá¯ááºáá±á¬ááºáá»ááºá áááºážááá¯á·ááᯠáááºáá±á¬ááºááá¯ááºá á±áááº)á ááá¯á·áá±á¬áẠá¡áá±ážááááºáž scp áá¯ááºáá±á¬ááºáá»ááºááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±áááºá¡ááœáẠááá¯ááºáá»á¬ážá ááá¯ááºááá¯ááºááŸá¯ááᯠroot á០áá¯á¶ááŸáẠroot ááá¯ááºáá±á¬ á¡áá¯á¶ážááŒá¯áá°ááá¯á· ááŒá±á¬ááºážáá²ááẠchown ááᯠá¡áá¯á¶ážááŒá¯áá«á ááá·áºááá¯ááºá¡á¬ážáá¯á¶ážááᯠáá±á¬áá±á¬ááẠááá·áºááœááºážááŒá®áž á¡áá¯á¶ážááŒá¯ááá¯ááºááŒá±á¬ááºáž áá±áá»á¬áá«á á±á áááºááẠáááºážááá¯á·ááᯠáááá¯ááºážááá·áºáᶠá¡áááºážáááºá¡ááŒá¬ááœáẠááœáŸá±á·áá«áááº-
# 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 ááá¯áẠáááºááá¯áá¯á¶á á¶ááŸáááá·áºáááºááá¯áᬠáááºáááºááá¯ááááá¯ááºááá²á /usr/share/ á០áááºáá°ážáá°áá¬ážáá±á¬ ááœááºáá°áá±á¬-rsa áááºážááœáŸááºáá¯á¶á á¶ááᯠáááááá«á OpenVPN ááᯠáááºááá·áºááœááºážáá±á¬á¡áá«á áááºááẠ/etc/openvpn/ ááá¯á· áá°ážáá°ááá¯ááºáá±á¬ áá»á¯á¶á·áá¬ážáá±á¬ ááœá²á·á ááºážááŸá¯áá¯á¶á ᶠááá°áá¬ááá¯ááºáá áºáᯠáá»ááºáá²á·áááºá ááá°áá¬áá¯á¶á á¶ááᯠááááºážáááºážááŒá®áž á¡áá¯á¶ážáááºáá±á¬ tool áá áºáá¯ááŒá áºááá·áº zcat ááŸáá·áºááááºáááºáá±ážáááºáá°áá±á¬á¡áá»ááºááᯠáá»áœááºá¯ááºáááºáá±á¬ááºáá«áááºá
cat command ááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºáá áºáá¯á á á¬áá¬ážá¡ááŒá±á¬ááºážá¡áá¬ááᯠá ááááºááá¯á· áá¯á¶ááŸáááºááŒááºážá¡ááŒá±á¬ááºáž áááºáááá¬ážááŒá®ážááŒá áºáá±á¬áºáááºážá ááá¯ááºááᯠgzip ááᯠá¡áá¯á¶ážááŒá¯á áá»á¯á¶á·áá¬ážáá»áŸááºáá±á¬á áááºááẠááá¯ááºááᯠá¡ááŒá²áááºáž áá áºááœáá·áºááŒá®ážáá±á¬áẠááŒá±á¬ááºá áááºážááᯠáá»á±á¬áºááœáŸááºá áœá¬ áá¯ááºáá±ážáááá·áºáááºá ááá¯á·áá±á¬áº áááºážááẠááá¯á¡ááºáááºááẠá¡ááá·áºáá Ạááá¯á·ááá¯áẠááŸá áºááŸááºážáᬠááá¯á¡ááºáááºá áááºážá¡á á¬ážá áááºááŸááºážááá¬ážááá·áºá¡ááá¯ááºážá áááºááẠáá¯ááºááá¯ážáá¬ážáá±á¬á á¬áá¬ážááᯠááŸááºáá¬ááºáá²ááá¯á· á¡ááá·áºáá áºááá·áºáááºááẠzcat á¡áááá·áºááᯠáá¯ááºááá¯ááºáááºá á¡á±á¬ááºáá«á¥ááá¬ááœááºá áá»ááºááŸá¬ááŒááºááá¯á· á á¬áá¬ážááá¯áá¯á¶ááŸáááºááŒááºážá¡á á¬ážá áááºááẠáááºážááᯠserver.conf áá¯áá±á«áºáá±á¬ ááá¯ááºá¡áá áºááá¯á· ááŒááºááœáŸááºážáááá·áºáááº-
# zcat
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
> /etc/openvpn/server.conf
$ cd /etc/openvpn
ááá¯ááºááŸáá·áºá¡áá°áá«áá¬áá±á¬ áá»ááºááŒáá·áºááŒá®áž á¡áá±á¬ááºá¡áá°ááŒá áºá á±ááá·áº á á¬ááœááºá á¬áááºážáá»á¬ážááᯠáá±ážáááºáá¬ážááŒá®áž áááºáááºážááŒááºááŒá®ážáá«á áááºááá¯á·áááºáá¯á¶ááŸáááá¯ááºáááºááᯠááŒáá·áºááŒáá«á áá¯á·á semicolon (;) ááẠOpenVPN á¡á¬áž áá±á¬ááºá á¬ááŒá±á¬ááºážá¡á¬áž ááááºááẠááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºááẠ(á á¬áááºážááŒá¯á á¯ááŒááºáž 10.2) ááᯠááŸááºáá¬ážáá¬ážáá«á
á€áááºáááºáá»á¬ážáá²á០á¡áá»áá¯á·ááᯠááœá¬ážááŒáá·áºáá¡á±á¬ááºá
- áá°áááºážá¡á¬ážááŒáá·áº OpenVPN ááẠport 1194 ááœááºá¡áá¯ááºáá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠáááºááá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá±á¬ááºáááºáá¯á¶ážááœááºááẠááá¯á·ááá¯áẠá¡ááŒá¬ážáá¯ááºáá±á¬ááºáá±áá±á¬ á¥áááºáá»á¬ážááŸáá·áº áááááá¹ááá»á¬ážááá¯ááŸá±á¬ááºááŸá¬ážááẠáááºážááá¯ááŒá±á¬ááºážáá²ááá¯ááºáááºá 1194 ááẠáá±á¬ááºáááºáá»á¬ážááŸáá·áº ááŸáááŸáá¯ááºážááŸá¯ á¡áááºážáááºáᬠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº á€áááºážá¡ááá¯ááºáž ááŒá¯áá¯ááºááŒááºážááẠá¡áá±á¬ááºážáá¯á¶ážááŒá áºáááºá
- OpenVPN ááẠáá±áá¬áá±ážááá¯á·ááẠTransmission Control Protocol (TCP) ááá¯á·ááá¯áẠUser Datagram Protocol (UDP) ááᯠá¡áá¯á¶ážááŒá¯áááºá TCP ááẠá¡áááºážáááºááŸá±ážááœá±ážáá±ááá¯ááºáá±á¬áºáááºáž á¥áááºáá¡á áœááºážááŸá áºáááºá áá¯á¶ážááœáẠáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá ááá¯ááá¯áá¯á¶ááŒááºá áááºáá»áááŒá®áž áá¬ážáááºááá¯ááºááŒá±ááá¯áá»á¬ážáááºá
- áá±áá¬á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážááᯠáááºáá±á¬ááºáá±ážááá·áº ááá¯ááá¯ááá¯ážááŸááºážááŒá®áž ááá¯ááá¯áááá±á¬ááºáá±á¬ IP á¥áááºááᯠáááºáá®ážááá¯ááá·áºá¡áá«ááœáẠdev tun ááᯠáááºááŸááºááá¯ááºáááºá á¡ááŒá¬ážáá áºáááºááœáẠáááºááẠááœááºáááºá¡ááºáá¬áá±á·á áºá¡áá»á¬ážá¡ááŒá¬áž (ááŸáá·áº áááºážááá¯á·ááá¯ááºá á¬ážááŒá¯áá±á¬ááœááºáááºáá»á¬áž) ááᯠáá»áááºáááºááẠááá¯á¡ááºáá«áá Ethernet áá¶áá¬ážááᯠáááºáá®ážáá«áá dev ááá¯ááŸáááºááẠááœá±ážáá»ááºááááºááŒá áºáááºá á€á¡áá¬á¡á¬ážáá¯á¶ážáá¡áááá¹áá«ááºááᯠáááºáá¬ážááááºáá«á tun argument ááá¯áá¯á¶ážáá«á
- áá±á¬ááºááá¯ááºážáá±ážáá¯ááœáẠOpenVPN ááẠáá¬áá¬ááŸá á á áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááŒááá¯ááºáá¯á¶ážáá¯áá¡áááºáá»á¬ážááŸáá·áº á¡á á±á¬ááá¯ááºážá áááºáááºáá®ážáá²á·áá±á¬ dh2048 ááœá±ážáá»ááºááŸá¯ááá¯ááºááá¯áá±ážáááºá
- áá¬áá¬ááá¯ááºážááẠá¡áá±á¬áá·áºáááºááá·áºá¡áá« áá¯á¶ážá áœá²áá°áá»á¬ážáᶠIP ááááºá á¬áá»á¬ážááᯠáááºááŸááºáá±ážáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááá¯ááºážá¡ááŒá¬ážááŸáá·áº subnet mask ááᯠáááºááŸááºáá±ážáá«áááºá
- ááœá±ážáá»ááºááá¯ááºáá±á¬ ááœááºážááá¯á·ááŸá¯ ááá·áºáááºáá±á¬áẠ"áááºážááŒá±á¬ááºáž 10.0.3.0 255.255.255.0" ááẠá¡áá±ážááááºážáá±á¬ááºáááºáá»á¬ážá¡á¬áž áá¬áá¬áá±á¬ááºááœááºááŸá áá®ážááá·áºááœááºáááºáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááœáá·áºáá±ážáááºá á€áá¯ááºáááºážááá¯áá¯ááºáá±á¬ááºáááºá¡ááœáẠOpenVPN subnet (10.8.0.0) á¡ááŒá±á¬ááºážááᯠáá®ážááá·áº subnet á០ááááŸáááá¯ááºá á±áááºá¡ááœáẠáá¬áá¬ááá¯ááºááá¯áẠááœááºáááºááᯠá áá áºááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá
- port-share localhost 80 ááá¯ááºážááẠport 1194 ááŸáá¬áá±á¬ client traffic ááᯠport 80 ááœáẠáá¬ážáá±á¬ááºáá±áá±á¬ local web server ááá¯á· ááŒááºááœáŸááºážááá¯ááºá á±áá«áááºá (áááºá VPN ááᯠá ááºážáááºáááºá¡ááœáẠweb server ááá¯á¡áá¯á¶ážááŒá¯áááºááá¯áá«á áááºážááẠá¡áá¯á¶ážáááºáááºááŒá áºáá«áááºá) áááºážáááºáᬠá¡áá¯ááºáá¯ááºáá«áááºá ááá¯á·áá±á¬áẠtcp áááá¯ááá¯áá±á¬ááᯠááœá±ážáá»ááºáá±á¬á¡áá«á
- á¡áá¯á¶ážááŒá¯áá° áááºáá°á០ááŸáá·áº á¡ááœá²á·ááá¯áẠnogroup ááá¯ááºážáá»á¬ážááᯠsemicolons (;) ááá¯áááºááŸá¬ážááŒááºážááŒáá·áº ááœáá·áºáá¬ážááá«áááºá áááºáá°áá»áŸáááŸááá±á¬ááŒá±á¬áá·áº á¡áá±ážááááºážáá±á¬ááºáááºáá»á¬ážá¡á¬áž ááá¯ááºážá á±ááŒááºáž ááŸáá·áº nogroup ááẠáá¬áá¬áá±á«áºááŸá áááºááŸááºáá»á¬ážááᯠá¡ááœáá·áºáá°ážááá¶áá² áá±áá»á¬á á±áá«áááºá
- áá±á¬á·ááºááẠOpenVPN ááᯠá áááºáá»áááºááá¯ááºáž áááºááŸá ááŸááºáááºážááá·áºááœááºážááŸá¯áá»á¬ážááẠá¡áá±á¬ááºážáá»á¬ážááᯠá¡á á¬ážááá¯ážáááºááŒá áºáá±á¬áºáááºážá ááŸááºáááºáž-append ááẠááŸáááŒá®ážáá¬áž ááŸááºáááºážááá¯ááºááœáẠááá·áºááœááºážááŸá¯á¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºáááºááŒá áºáááºá openvpn.log ááá¯ááºááá¯ááºááá¯ááºá /etc/openvpn/ áááºážááœáŸááºááá¯á· áá±ážáá¬ážáááºá
ááá¯á·á¡ááŒááºá OpenVPN áá¬áá¬á¡ááŒáẠáá¯á¶ážá áœá²áá°áá»á¬ážá áœá¬ááẠáá áºáŠážááŸáá·áºáá áºáŠáž á¡ááŒááºá¡ááŸááºááŒááºááá¯ááºá á±ááẠáááá¯ááºážááá·áºá០áá±á¬ááºáááºáááºááá¯ážááá¯áááºáž ááœá²á·á ááºážááŸá¯ááá¯ááºááá¯á· áááŒá¬ááááá·áºááœááºážáá¬ážáááºá áááºáááœá²á·á ááºážáá¯á¶ááᯠáá»á±áááºáá«áá áááºááẠOpenVPN áá¬áá¬ááᯠá áááºááá¯ááºáááº-
# systemctl start openvpn
OpenVPN ááŸáá·áº systemd á¡ááŒá¬áž áááºá ááºááŸá¯á ááá±á¬ááá¬á ááŒá±á¬ááºážáá²ááŒááºážááŒá±á¬áá·áºá áááºáá±á¬ááºááŸá¯áá áºáᯠá áááºááẠá¡á±á¬ááºáá« syntax ááᯠáá áºáá«áá áºáᶠááá¯á¡ááºááá¯ááºáááº- systemctl start openvpn@serverá
ááá·áºáá¬áá¬áááœááºáááºá¡ááºáá¬áá±á·á áºáá»á¬ážááá¯á á¬áááºážááŒá¯á á¯ááẠip addr ááá¯áá¯ááºáá±á¬ááºááŒááºážááẠááᯠ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
á¡áá¬á¡á¬ážáá¯á¶áž á¡ááŒáá·áºá¡á á¡áá¯ááºááá¯ááºáá® áá¬áá¬ááᯠááŒááºáááºá áááºááẠááá¯á¡ááºááá¯ááºáááºá áá±á¬ááºáá áºáá¯ááá±á¬á· client computer áá«á
áá.á.áá OpenVPN áááá¯ááºážááá·áºááᯠááŒááºáááºáááºááŸááºááŒááºážá
á¡á ááºá¡áá¬á¡á¬ážááŒáá·áºá á¥áááºááá¯ááºáá±á«ááºážáá»á¬ážááᯠá¡áááºážáá¯á¶áž ááœááºáá±á«ááºááŸá áºáá¯ááŒáá·áº áááºáá±á¬ááºáá¬ážáá«ááẠ(ááá¯ááºááẠáááºážááá¯á·ááᯠááá¯ááºáá°áá»á¬ážáᯠáá±á«áºáááº)á áá¬áá¬ááŸá ááŸááºáááºá áœá¬ááœá²á·á ááºážáá¬ážáá±á¬ OpenVPN ááẠáá áºáááºááŸá á¥áááºááá¯ááºáá±á«ááºážá¡ááœááºáž á¡ááœá¬ážá¡áá¬áá»á¬ážááᯠááœáŸááºááŒá¬ážáááºá ááá¯á·áá±á¬áº áááºááẠáá±á¬ááºáááºáááºááœáẠáááºáááºáá±ááá·áº áá±á¬á·ááºáá²á¡áá»áá¯á·áááºáž ááá¯á¡ááºáááá·áºáááºá ááá¯ááá¯áááºááŸá¬ á¥áááºááá¯ááºáá±á«ááºážá á¡ááŒá¬ážáá áºáááºááœáẠááŒá áºáááºá
á€ááá¹áááœáẠOpenVPN áááá¯ááºážááá·áºá¡ááŒá áºáá¯ááºáá±á¬ááºááẠLinux ááœááºáá»á°áá¬á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯á·ááᯠááá¯ááºááá¯ááºáááºááŸááºááŒááºážá¡áá±á«áº á¡á¬áá¯á¶á áá¯ááºáá«áááºá áá«áá±ááá·áº áá®á¡ááœáá·áºá¡áá±ážááᯠáááá¯ááºáá²á· áá áºáá¯áááºážáá±á¬ áááºážáááºážáá±á¬á· ááá¯ááºáá«áá°ážá OpenVPN ááẠWindows ááá¯á·ááá¯áẠmacOS á¡áá¯á¶ážááŒá¯ááá·áº áááºá áá±á¬á·áá»á¬ážááŸáá·áº áááºááºáá±á¬á·áá»á¬ážáá±á«áºááœáẠáááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áá±á¬ááºáááºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áºá¡ááŒáẠAndroid ááŸáá·áº iOS á áááºáá¯ááºážáá»á¬ážááŸáá·áº áááºááááºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡áá±ážá áááºá¡ááœáẠopenvpn.net ááá¯ááŒáá·áºáá«á
OpenVPN áááºáá±á·áá»áºááᯠáá¬áá¬ááœáẠááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááᯠáááá¯ááºážááá·áºá ááºááœáẠááá·áºááœááºážáá¬ážááẠááá¯á¡ááºáá±á¬áºáááºážá áááºá¡áá¯á¶ážááŒá¯áá±áá±á¬áá±á¬á·áá»á¬ážááẠá€áá±áá¬ááœáẠá¡ááœááº-rsa á¡ááœáẠáááá¯á¡ááºáá±á¬áºáááºážá áááºááá¯áááºáá®ážáá²á·áá±á¬ client.conf ááá°áá¬ááá¯ááºááᯠ/etc/openvpn/ áááºážááœáŸááºááá¯á· áá°ážáá°ááẠááá¯á¡ááºáááºá á€áá áºááŒáááºááœáẠááá¯ááºááᯠáá áºááœá²áááºááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áº áá¯á¶ááŸáẠcp command ááẠáá±á¬ááºážááœááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááá·áºáááº-
# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf
/etc/openvpn/
áááºá client.conf ááá¯ááºááŸá áááºáááºá¡áá»á¬ážá á¯ááẠá¡ááœááºá¡ááá¯ááᯠááŸááºážááŒááá¯ááºáááá·áºáááº- áááºážááá¯á·ááẠáá¬áá¬áá±á«áºááŸá áááºááá¯ážáá»á¬ážááŸáá·áº ááá¯ááºáá®ááá·áºáááºá á¡á±á¬ááºáá« á¥ááá¬ááá¯ááºá០áááºááœá±á·ááŒááºááá¯ááºáááºá¡ááá¯ááºážá áá°ážááŒá¬ážáá±á¬ ááá·áºáááºáá±á¬ááºááẠáá±á¬ááºáááºá¡á¬áž áá¬áá¬á IP ááááºá á¬ááᯠááŒá±á¬ááŒááá·áº á¡áá±ážááááºáž 192.168.1.23 1194 ááŒá áºáááºá ááááºá á€áááºááŸá¬ áááºááá¬áá¬ááááºá á¬ááŒá áºááŒá±á¬ááºáž áá±áá»á¬áá«á á±á ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ á¡áááºá¡áááºááá¯ááºááá¯ááºááŸá¯ááᯠáá¬ážáá®ážááẠáá¬áá¬á¡ááá¡ááŸááºááŒá¯áááºááŸááºá á á áºááŸááºááŒá±á¬ááºážááᯠá á áºáá±ážááẠáááºááẠáá±á¬ááºáááºááœááºáá»á°áá¬ááᯠááœááºážá¡á¬ážáá±ážááá·áºáááºá áááºážááá¯áá¯ááºáá±á¬ááºáááºáá áºáááºážááŸá¬ line remote-cert-tls server (Listing 10.3) ááá¯ááá·áºáááºááŒá áºáááºá
ááᯠáááºááẠ/etc/openvpn/ áááºážááœáŸááºááá¯á·ááœá¬ážáᬠáá¬áá¬á០á¡ááá¡ááŸááºááŒá¯áá®ážáá»á¬ážááᯠáá¯ááºáá°ááá¯ááºáá«ááŒá®á á¥ááá¬ááœáẠáá¬áᬠIP ááááºá
ᬠááá¯á·ááá¯áẠááá¯ááááºážá¡áááºááᯠááá·áºáááºááá¯ážáá»á¬ážááŒáá·áº á¡á
á¬ážááá¯ážáá«-
ááẠOpenVPN ááᯠclient ááœááºáááœáá·áºááá»ááºáž á
áááºááŸá¯ááºááŸá¬ážá
áá¬áá¬ááŸááŒá
áºáá¬ááá¯ááºááœááºáááŸááá«á áááºááẠá¡ááŒá±á¬ááºážááŒáá»ááºá¡áá»áá¯á·ááᯠáá»á±á¬áºááŒááºááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºá áááºááẠáááºážááᯠcommand line á០áá¯ááºáá±á¬ááºáááºááŒá
áºáááºá --tls-client argument ááẠOpenVPN á¡á¬áž áááá¯ááºážááá·áºá¡ááŒá
Ạáá¯ááºáá±á¬ááºááŒá®áž TLS áá¯ááºááŸááºááŒááºážááŸáá
áºááá·áº áá»áááºáááºáááºááŒá
áºááŒá®áž --config ááẠáááºá configuration file ááá¯á· á¡áá»ááºááŒáááº-
# openvpn --tls-client --config /etc/openvpn/client.conf
ááŸááºáááºá áœá¬áá»áááºáááºáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±ááẠá¡áááá·áºáá±ážááá·áºá¡ááœááºááᯠááá¯áá áá¯ááºáááºáá«á áááá¡ááŒáááºááœáẠáá áºáá¯áá¯ááŸá¬ážááœááºážáá±áá«áá áá¬áá¬ááŸáá·áº client configuration ááá¯ááºáá»á¬ážá¡ááŒá¬áž áááºáááºáá»á¬ážááœáẠáááá¯ááºáá®ááŸá¯áá»á¬áž ááá¯á·ááá¯áẠááœááºáááºáá»áááºáááºááŸá¯/ firewall ááŒá¿áá¬ááŒá±á¬áá·áº ááŒá áºááá¯ááºáááºá á€áááºááŸá¬ ááŒá¿áá¬ááŒá±ááŸááºážááŒááºážááá¯ááºáᬠá¡ááŒá¶ááŒá¯áá»ááºá¡áá»áá¯á·ááŒá áºáááºá
- client áá±á«áºááŸá OpenVPN áá¯ááºáá±á¬ááºáá»ááºá output ááᯠááá¯áá áá¯ááºáááºáá«á á¡ááá¡áá» ááá¯ááºáá±á¬ááºááá¯ááºáá¬áá²á· áá¬ááŒá±á¬áá·áºáá²ááá¯áá²á· áááºááá¯ážááŸááá²á· á¡ááŒá¶áá¬ááºááœá± áááŒá¬áá áá«ááŸááá«áááºá
- áá¬áá¬ááŸá /etc/openvpn/ áááºážááœáŸááºááŸá openvpn.log ááŸáá·áº openvpn-status.log ááá¯ááºáá»á¬ážááœáẠá¡ááŸá¬ážá¡ááœááºážá á¬ááá¯áá»á¬ážááᯠá á áºáá±ážáá«á
- OpenVPN ááá¯ááºáá¬ááŸáá·áº á¡áá»áááºáááºááŸááºáá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážá¡ááœáẠáá¬áá¬ááŸáá·áº áááá¯ááºážááá·áºááŸá á áá áºááŸááºáááºážáá»á¬ážááᯠá á áºáá±ážáá«á (journalctl -ce ááẠáááºááá±á¬ ááá·áºááœááºážááŸá¯áá»á¬ážááᯠááŒááá«áááºá)
- áá¬áá¬ááŸáá·áº áááá¯ááºážááá·áºááŒá¬ážááœáẠá¡áá¯á¶ážááŒá¯áá±áá±á¬ ááœááºáááºáá»áááºáááºááŸá¯áá áºáá¯ááŸááá±ááŒá±á¬ááºáž áá±áá»á¬áá«á á±á (á¡áááºáž 14 ááœáẠáá±á¬ááºáááºáá±á¬áºááŒáá¬ážáááº)á
á á¬áá±ážáá°ááŸááºá· áááºáááº.
áá±ážáá
áºááááºááẠ- á
áá
áºá
á®áá¶ááá·áºááœá²áá°á ááá¬ááŸáá·áºá
á¬áá±ážááá¬á áá°ááẠLinux á
áá
áºáá»á¬ážá cloud computing (á¡áá°ážáááŒáá·áº AWS) ááŸáá·áº Docker áá²á·ááá¯á·áá±á¬ ááœááºááááºáá¬áááºážááá¬áá»á¬áž á¡áá«á¡ááẠá¡áá±ážááŒá®ážáá±á¬ áááºážááá¬ááá¯ááºáᬠááá¬áááºáá»á¬ážá
áœá¬á¡ááœáẠá
á®áá¶ááá·áºááœá²ááŒááºážá áá±ážáá¬ážááŒááºážááŸáá·áº áááºáá®ážááŒááºážááá¯á·ááᯠááŒá¯áá¯ááºáá²á·áááºá áá°ááẠLearn Amazon Web Services in a Month of Lunches (Manning, 2017) á
á¬á¡á¯ááºááᯠáá±ážáá¬ážáá²á·áááºá áá°ááá®áá®ááá¯áá±á·áá»áá·áºáá±ážáááºáááºážá¡áá»á¬ážá¡ááŒá¬ážááᯠPluralsight.com ááœááºááœá±á·ááá¯ááºááŒá®áž áááºážáá¡ááŒá¬ážá
á¬á¡á¯ááºáá»á¬áž (Linux á
á®áá¶ááá·áºááœá²áá±ážááŸáá·áº áá¬áá¬ááᯠvirtualization) ááœáẠáááŸáááá¯ááºáá«áááºá
» á
á¬á¡á¯ááºááŸáá·áºáááºáááºáá±á¬ á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡á±á¬ááºáá«ááá·áºááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
»
»
Khabrozhiteley áá°ááœááºááá¯á¡áá¯á¶ážááŒá¯á 25% áá»áŸá±á¬á·á
á»á±ážá¡ááœáẠ- Linux ááá¯
á
á¬á¡á¯ááºá á
áá¹áá°áá¬ážááŸááºážááᯠááœá±áá±ážáá»á±ááŒá®ážáá«á á¡á®áááºáááœááºáá
áºá
á¬á¡á¯ááºááᯠá¡á®ážáá±ážááºááŒáá·áº áá±ážááá¯á·áááºááŒá
áºáááºá
source: www.habr.com