โ10.1. OpenVPN ํฐ๋ ์์ฑ"
์ ์ ํ๊ฒ ์ค๊ณ๋ VPN ํฐ๋์ ์์ ํ์ง ์์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ด๋ํ๋ ๋ฐ์ดํฐ๋ฅผ ์จ๊ธฐ๋ ๋ฐฉ์์ผ๋ก ์๊ฒฉ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์ ์ฐ๊ฒฐ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋์ ๋ญ? ์ํธํ๋ฅผ ํตํด ์ด๋ฅผ ์ํํ ์ ์๋ ๋ง์ ๋๊ตฌ๋ฅผ ์ด๋ฏธ ์ดํด๋ณด์์ต๋๋ค. VPN์ ์ง์ ํ ๊ฐ์น๋ ํฐ๋์ ์ด์ด ์๊ฒฉ ๋คํธ์ํฌ๊ฐ ๋ชจ๋ ๋ก์ปฌ์ธ ๊ฒ์ฒ๋ผ ์ฐ๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ค ์๋ฏธ์์๋ ์ฐํ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋๋ค.
์ด ํ์ฅ๋ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ์๋ ์ด๋์๋ ์๋ฒ์์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ์ค์ํ ๊ฒ์ ๋ฆฌ์์ค๊ฐ ์ฌ๋ฌ ์์น์ ๋ถ์ฐ๋์ด ์๋ ํ์ฌ๊ฐ ๋ฆฌ์์ค๊ฐ ํ์ํ ๋ชจ๋ ๊ทธ๋ฃน์ด ์ด๋์ ์๋ ์ด๋ฅผ ๋ชจ๋ ๋ณผ ์ ์๊ณ ์ก์ธ์คํ ์ ์๋๋ก ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค(๊ทธ๋ฆผ 10.1).
ํฐ๋ ์์ฒด๋ ๋ณด์์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํธํ ํ์ค ์ค ํ๋๊ฐ ๋คํธ์ํฌ ๊ตฌ์กฐ์ ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ๋ณด์ ์์ค์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค. ์คํ ์์ค OpenVPN ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํฐ๋์ ์ด๋ฏธ ์ฝ์ ๊ฒ๊ณผ ๋์ผํ TLS/SSL ์ํธํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. OpenVPN์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ผํ ํฐ๋๋ง ์ต์ ์ ์๋์ง๋ง ๊ฐ์ฅ ์ ์๋ ค์ง ํฐ๋๋ง ์ต์ ์ค ํ๋์ ๋๋ค. IPsec ์ํธํ๋ฅผ ์ฌ์ฉํ๋ ๋์ฒด ๋ ์ด์ด 2 ํฐ๋ ํ๋กํ ์ฝ๋ณด๋ค ์ฝ๊ฐ ๋ ๋น ๋ฅด๊ณ ์์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
ํ์ ๋ชจ๋๊ฐ ์ด๋ ์ค์ด๊ฑฐ๋ ๋ค๋ฅธ ๊ฑด๋ฌผ์์ ์์ ํ๋ ๋์ ์๋ก ์์ ํ๊ฒ ํต์ ํ๊ธฐ๋ฅผ ์ํ์ญ๋๊น? ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ณต์ ๋ฐ ์๋ฒ์ ๋ก์ปฌ ๋คํธ์ํฌ ํ๊ฒฝ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ OpenVPN ์๋ฒ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์๋ํ๋ ค๋ฉด ๋ ๊ฐ์ ๊ฐ์ ๋จธ์ ๋๋ ๋ ๊ฐ์ ์ปจํ ์ด๋(ํ๋๋ ์๋ฒ/ํธ์คํธ ์ญํ ์ ํ๊ณ ๋ค๋ฅธ ํ๋๋ ํด๋ผ์ด์ธํธ ์ญํ ์ ํจ)๋ฅผ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. VPN ๊ตฌ์ถ์ ๊ฐ๋จํ ๊ณผ์ ์ด ์๋๋ฏ๋ก ํฐ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๋ฐ ๋ช ๋ถ ์ ๋ ์๊ฐ์ ํฌ์ํ ๊ฐ์น๊ฐ ์์ ๊ฒ์ ๋๋ค.
10.1.1. OpenVPN ์๋ฒ ๊ตฌ์ฑ
์์ํ๊ธฐ ์ ์ ๋ช ๊ฐ์ง ์ ์ฉํ ์กฐ์ธ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ง์ ์ํํ ์์ ์ด๋ผ๋ฉด(๊ทธ๋ฆฌ๊ณ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค) ๋ฐ์คํฌํ์ ์ฌ๋ฌ ๊ฐ์ ํฐ๋ฏธ๋ ์ฐฝ์ ์ด๊ณ ๊ฐ๊ฐ ๋ค๋ฅธ ์ปดํจํฐ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ํ์์ ์์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์์ ์์ ์ฐฝ์ ์๋ชป๋ ๋ช ๋ น์ ์ ๋ ฅํ ์ํ์ด ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ํธ์คํธ ์ด๋ฆ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ค์ ํ์๋๋ ์ปดํจํฐ ์ด๋ฆ์ ํ์ฌ ์์น๋ฅผ ๋ช ํํ๊ฒ ์๋ ค์ฃผ๋ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด ์์ ์ ์ํํ ํ์๋ ์ ์ค์ ์ ์ ์ฉํ๋ ค๋ฉด ์๋ฒ์์ ๋ก๊ทธ์์ํ๋ค๊ฐ ๋ค์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๊ณ ์์
ํ๋ ๊ฐ ์ปดํจํฐ์ ์ ์ ํ ์ด๋ฆ์ ์ง์ ํ๋ฉด ํ์ฌ ์์น๋ฅผ ์ฝ๊ฒ ์ถ์ ํ ์ ์์ต๋๋ค.
ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ ํ ํ์ ๋ช ๋ น์ ์คํํ ๋ Unable to Resolve Host OpenVPN-Server ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค. ์ ์ ํ ์ ํธ์คํธ ์ด๋ฆ์ผ๋ก /etc/hosts ํ์ผ์ ์ ๋ฐ์ดํธํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
OpenVPN์ ์ํ ์๋ฒ ์ค๋น
์๋ฒ์ OpenVPN์ ์ค์นํ๋ ค๋ฉด openvpn๊ณผ easy-rsa(์ํธํ ํค ์์ฑ ํ๋ก์ธ์ค ๊ด๋ฆฌ์ฉ)๋ผ๋ ๋ ๊ฐ์ง ํจํค์ง๊ฐ ํ์ํฉ๋๋ค. CentOS ์ฌ์ฉ์๋ ํ์ํ ๊ฒฝ์ฐ 2์ฅ์์ ํ๋ ๊ฒ์ฒ๋ผ ๋จผ์ epel-release ์ ์ฅ์๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ ์คํธํ๋ ค๋ฉด Apache ์น ์๋ฒ(Ubuntu์์๋ apache2, CentOS์์๋ httpd)๋ฅผ ์ค์นํ ์๋ ์์ต๋๋ค.
์๋ฒ๋ฅผ ์ค์ ํ๋ ๋์ 22(SSH) ๋ฐ 1194(OpenVPN์ ๊ธฐ๋ณธ ํฌํธ)๋ฅผ ์ ์ธํ ๋ชจ๋ ํฌํธ๋ฅผ ์ฐจ๋จํ๋ ๋ฐฉํ๋ฒฝ์ ํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ์๋ Ubuntu์์ ufw๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด์ฌ ์ฃผ์ง๋ง, ์ฌ๋ฌ๋ถ์ 9์ฅ์ 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
์ด์ ์๋ฒ ํ๊ฒฝ์ด ์์ ํ ๊ตฌ์ฑ๋์์ง๋ง ์ค๋น๋๊ธฐ ์ ์ ์ํํด์ผ ํ ์์ ์ด ํ ๊ฐ์ง ๋ ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค(์์ธํ ๋ด์ฉ์ ๋ค์์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค).
- easy-rsa ํจํค์ง์ ํจ๊ป ์ ๊ณต๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ๊ณต๊ฐ ํค ์ธํ๋ผ(PKI) ์ํธํ ํค ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก OpenVPN ์๋ฒ๋ ์์ฒด ์ธ์ฆ ๊ธฐ๊ด(CA) ์ญํ ๋ ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ์ ์ ํฉํ ํค๋ฅผ ์ค๋นํ์ธ์.
- ์๋ฒ์ ๋ํ server.conf ํ์ผ ๊ตฌ์ฑ
- OpenVPN ํด๋ผ์ด์ธํธ ์ค์
- VPN์ ํ์ธํ์ธ์
์ํธํ ํค ์์ฑ
์์ ์ ๋จ์ํ๊ฒ ์ ์งํ๊ธฐ ์ํด OpenVPN ์๋ฒ๊ฐ ์คํ๋๋ ๋์ผํ ์์คํ ์ ์ฃผ์ ์ธํ๋ผ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก์์๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๋์ ๋ฐฐํฌ์ ๋ณ๋์ CA ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ํฉ๋๋ค. OpenVPN์์ ์ฌ์ฉํ๊ธฐ ์ํ ์ํธํํค ์์์ ์์ฑํ๊ณ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๊ทธ๋ฆผ 10.2๊ณผ ๊ฐ๋ค. XNUMX.
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 ํ์ผ์ด ํด๋น ๊ฐ์ ์ ธ ํ๊ฒฝ์ผ๋ก ์ ๋ฌํ์ฌ ์ ํค์ ๋ด์ฉ์ ํฌํจ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์๋ฃ๋์ง ์์ ํ๋ก์ธ์ค๋ฅผ ์๋ฃํ๋ ค๋ฉด ์ ์ ธ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ค์ ์คํํด์ผ ํฉ๋๋ค. ์ด ์์ ์ด ์๋ฃ๋๋ฉด ์คํฌ๋ฆฝํธ๋ /etc/openvpn/easy-rsa/keys/ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ธ clean-all์ ์คํํ๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
๋น์ฐํ ๋ค์ ๋จ๊ณ๋ clean-all ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ค์ pkitool ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฃจํธ ์ธ์ฆ์๋ฅผ ์์ฑํ๋ build-ca๋ฅผ ์คํํ๋ ๊ฒ์
๋๋ค. vars์์ ์ ๊ณตํ ID ์ค์ ์ ํ์ธํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key
๋ค์์ ๋น๋ ํค ์๋ฒ ์คํฌ๋ฆฝํธ์ ๋๋ค. ์ ๋ฃจํธ ์ธ์ฆ์์ ํจ๊ป ๋์ผํ pkitool ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํค ์ ์์ฑ์ ํ์ธํ๋ ๋์ผํ ์ง๋ฌธ์ด ํ์๋ฉ๋๋ค. ํค ์ด๋ฆ์ ์ ๋ฌํ ์ธ์์ ๋ฐ๋ผ ์ง์ ๋ฉ๋๋ค. ์ด ์์คํ ์์ ์ฌ๋ฌ 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 ์๊ณ ๋ฆฌ์ฆ(build-dh ์ฌ์ฉ)์ ์ํด ์์ฑ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐ๊ฒฐ์ ๋ํ ์ธ์ฆ์ ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์์ฑ๋ ํ์ผ์ ๋น๋ฐ์ผ ํ์๋ ์์ง๋ง ํ์ฌ ํ์ฑํ๋ RSA ํค์ ๋ํด build-dh ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋์ด์ผ ํฉ๋๋ค. ๋์ค์ ์ 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 ํ์ผ๊ณผ ํจ๊ป ํด๋ผ์ด์ธํธ๋ก ์์ ํ๊ฒ ์ ์ก๋์ด์ผ ํฉ๋๋ค. ์์ ๊ถ๊ณผ ์ ๊ทผ ๊ถํ์ผ๋ก ์ธํด ์ด๋ ์ฝ์ง ์์ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์์ค ํ์ผ์ ๋ด์ฉ(ํด๋น ๋ด์ฉ๋ง ์ ์ธ)์ PC ๋ฐํ ํ๋ฉด์์ ์คํ ์ค์ธ ํฐ๋ฏธ๋์ ์๋์ผ๋ก ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ค(ํ ์คํธ๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ ๋ฉ๋ด์์ ๋ณต์ฌ๋ฅผ ์ ํ). ๊ทธ๋ฐ ๋ค์ ์ด๋ฅผ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ๋ ๋ ๋ฒ์งธ ํฐ๋ฏธ๋์์ ์์ฑํ ๊ฒ๊ณผ ๋์ผํ ์ด๋ฆ์ ์ ํ์ผ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.
ํ์ง๋ง ๋๊ตฌ๋ ์๋ฅด๊ณ ๋ถ์ฌ๋ฃ์ ์ ์์ต๋๋ค. ๋์ , ์๋ผ๋ด๊ธฐ/๋ถ์ฌ๋ฃ๊ธฐ ์์ ์ด ๊ฐ๋ฅํ GUI์ ํญ์ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์์ฒ๋ผ ์๊ฐํ์ญ์์ค. ํ์ผ์ ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌํ ๋ค์(์๊ฒฉ scp ์์ ์ด ํด๋น ํ์ผ์ ์ก์ธ์คํ ์ ์๋๋ก) chown์ ์ฌ์ฉํ์ฌ ํ์ผ ์์ ๊ถ์ ๋ฃจํธ์์ ๋ฃจํธ๊ฐ ์๋ ์ผ๋ฐ ์ฌ์ฉ์๋ก ๋ณ๊ฒฝํ์ฌ ์๊ฒฉ 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 ํ์ผ์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
ํค ์ ๋ ฅ ํ์ ์ค์ด๊ธฐ
ํ์ดํ์ด ๋๋ฌด ๋ง๋์? ๋๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฅํ๋ฉด ์ด๋ฌํ XNUMX๊ฐ ๋ช ๋ น์ XNUMX๊ฐ๋ก ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋๋ ์ฌ๋ฌ๋ถ์ด ์ด ๋ ๊ฐ์ง ์๋ฅผ ์ฐ๊ตฌํ๊ณ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ๋ ์ค์ํ ๊ฒ์ ์์ญ ๋๋ ์๋ฐฑ ๊ฐ์ ์์๊ฐ ํฌํจ๋ ์์ ์ ์ด๋ฌํ ์์น์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
# 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/์์ ๋ณต์ฌํ easy-rsa ๋๋ ํ ๋ฆฌ ํ ํ๋ฆฟ์ ๊ธฐ์ตํ์๋์? 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(์ ์ก ์ ์ด ํ๋กํ ์ฝ) ๋๋ UDP(์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. TCP๋ ์ฝ๊ฐ ๋๋ฆด ์ ์์ง๋ง ํฐ๋์ ์์ชฝ ๋์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ ์์ ์ ์ด๊ณ ์ดํดํ ๊ฐ๋ฅ์ฑ์ด ๋ ๋์ต๋๋ค.
- ๋ฐ์ดํฐ ์ฝํ ์ธ ๋ง ์ ๋ฌํ๋ ๋ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ธ IP ํฐ๋์ ์์ฑํ๋ ค๋ ๊ฒฝ์ฐ dev tun์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ฌ๋ฌ ๋คํธ์ํฌ ์ธํฐํ์ด์ค(๋ฐ ํด๋น ์ธํฐํ์ด์ค๊ฐ ๋ํ๋ด๋ ๋คํธ์ํฌ)๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ด๋๋ท ๋ธ๋ฆฌ์ง๋ฅผ ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ dev ํญ์ ์ ํํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ดํดํ์ง ๋ชปํ๋ค๋ฉด tun ์ธ์๋ฅผ ์ฌ์ฉํ์ญ์์ค.
- ๋ค์ ๋ค ์ค์ OpenVPN์ ์๋ฒ์ ์๋ ์ธ ๊ฐ์ ์ธ์ฆ ํ์ผ ์ด๋ฆ๊ณผ ์ด์ ์ ์์ฑํ dh2048 ์ต์ ํ์ผ์ ์ ๊ณตํฉ๋๋ค.
- ์๋ฒ ๋ผ์ธ์ ๋ก๊ทธ์ธ ์ ํด๋ผ์ด์ธํธ์ IP ์ฃผ์๋ฅผ ํ ๋นํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฒ์์ ์๋ธ๋ท ๋ง์คํฌ๋ฅผ ์ค์ ํฉ๋๋ค.
- ์ ํ์ ํธ์ ๋งค๊ฐ๋ณ์ "route 10.0.3.0 255.255.255.0"์ ์ฌ์ฉํ๋ฉด ์๊ฒฉ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ๋ค์ ๊ฐ์ธ ์๋ธ๋ท์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด ์์ ์ ์ํํ๋ ค๋ฉด ๊ฐ์ธ ์๋ธ๋ท์ด OpenVPN ์๋ธ๋ท(10.8.0.0)์ ๋ํด ์ ์ ์๋๋ก ์๋ฒ ์์ฒด์ ๋คํธ์ํฌ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
- ํฌํธ ๊ณต์ localhost 80 ๋ผ์ธ์ ์ฌ์ฉํ๋ฉด ํฌํธ 1194์์ ๋ค์ด์ค๋ ํด๋ผ์ด์ธํธ ํธ๋ํฝ์ ํฌํธ 80์์ ์์ ๋๊ธฐํ๋ ๋ก์ปฌ ์น ์๋ฒ๋ก ๋ฆฌ๋๋ ์ ํ ์ ์์ต๋๋ค. (์ด๋ ์น ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ VPN์ ํ ์คํธํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.) ๊ทธ๋ฐ ๋ค์ tcp ํ๋กํ ์ฝ์ด ์ ํ๋๋ฉด.
- ์ธ๋ฏธ์ฝ๋ก (;)์ ์ ๊ฑฐํ์ฌ ์ฌ์ฉ์ none ๋ฐ ๊ทธ๋ฃน nogroup ์ค์ ํ์ฑํํด์ผ ํฉ๋๋ค. ์๊ฒฉ ํด๋ผ์ด์ธํธ๋ฅผ none ๋ฐ nogroup์ผ๋ก ์คํํ๋๋ก ๊ฐ์ ํ๋ฉด ์๋ฒ์ ์ธ์ ์ ๊ถํ์ด ๋ถ์ฌ๋์ง ์์ต๋๋ค.
- log๋ OpenVPN์ด ์์๋ ๋๋ง๋ค ํ์ฌ ๋ก๊ทธ ํญ๋ชฉ์ด ์ด์ ํญ๋ชฉ์ ๋ฎ์ด์ฐ๋๋ก ์ง์ ํ๋ ๋ฐ๋ฉด, log-append๋ ๊ธฐ์กด ๋ก๊ทธ ํ์ผ์ ์ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค. openvpn.log ํ์ผ ์์ฒด๋ /etc/openvpn/ ๋๋ ํฐ๋ฆฌ์ ๊ธฐ๋ก๋ฉ๋๋ค.
๋ํ OpenVPN ์๋ฒ ์ธ์๋ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๊ฐ ์๋ก๋ฅผ ๋ณผ ์ ์๋๋ก ํด๋ผ์ด์ธํธ-ํด๋ผ์ด์ธํธ ๊ฐ์ด ๊ตฌ์ฑ ํ์ผ์ ์ถ๊ฐ๋๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค. ๊ตฌ์ฑ์ ๋ง์กฑํ๋ฉด OpenVPN ์๋ฒ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
# systemctl start openvpn
OpenVPN๊ณผ systemd ๊ฐ์ ๊ด๊ณ ํน์ฑ์ด ๋ณํํ๊ธฐ ๋๋ฌธ์ ๋๋๋ก ์๋น์ค๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ๊ตฌ๋ฌธ์ด ํ์ํ ์ ์์ต๋๋ค. 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
๋ชจ๋ ๊ฒ์ด ์์ ํ ์๋ํ๊ธฐ ์ ์ ์๋ฒ๋ฅผ ์ฌ๋ถํ ํด์ผ ํ ์๋ ์์ต๋๋ค. ๋ค์ ์ค์ง๋ ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ๋๋ค.
10.1.2. OpenVPN ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ
์ ํต์ ์ผ๋ก ํฐ๋์ ์ต์ํ ๋ ๊ฐ์ ์ถ๊ตฌ๋ก ๋ง๋ค์ด์ก์ต๋๋ค(๊ทธ๋ ์ง ์์ผ๋ฉด ๋๊ตด์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค). ์๋ฒ์ ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋ OpenVPN์ ํ์ชฝ ํฐ๋ ์ํ์ผ๋ก ํธ๋ํฝ์ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋ผ์ด์ธํธ ์ธก, ์ฆ ํฐ๋์ ๋ฐ๋์ชฝ ๋์์ ์คํ๋๋ ์ผ๋ถ ์ํํธ์จ์ด๋ ํ์ํฉ๋๋ค.
์ด ์น์ ์์๋ OpenVPN ํด๋ผ์ด์ธํธ ์ญํ ์ ํ๋๋ก ์ผ๋ถ ์ ํ์ Linux ์ปดํจํฐ๋ฅผ ์๋์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ค์ ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ด ๊ธฐํ๋ฅผ ์ป์ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋๋๋ค. OpenVPN์ Windows ๋๋ macOS๋ฅผ ์คํํ๋ ๋ฐ์คํฌํฑ ๋ฐ ๋ ธํธ๋ถ์ ๋ฌผ๋ก Android ๋ฐ iOS ์ค๋งํธํฐ๊ณผ ํ๋ธ๋ฆฟ์ ์ค์นํ๊ณ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ openvpn.net์ ์ฐธ์กฐํ์ธ์.
OpenVPN ํจํค์ง๋ ์๋ฒ์ ์ค์น๋ ๊ฒ์ฒ๋ผ ํด๋ผ์ด์ธํธ ์์คํ ์ ์ค์นํด์ผ ํ์ง๋ง, ์ฌ์ฉ ์ค์ธ ํค๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฏ๋ก ์ฌ๊ธฐ์๋ easy-rsa๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฐฉ๊ธ ์์ฑํ /etc/openvpn/ ๋๋ ํฐ๋ฆฌ์ client.conf ํ ํ๋ฆฟ ํ์ผ์ ๋ณต์ฌํด์ผ ํฉ๋๋ค. ์ด๋ฒ์๋ ํ์ผ์ด ์์ถ๋์ง ์์ผ๋ฏ๋ก ์ผ๋ฐ 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 server ํ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค(๋ชฉ๋ก 10.3).
์ด์ /etc/openvpn/ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ฌ ์๋ฒ์์ ์ธ์ฆ ํค๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค. ์์ ์ ์๋ฒ IP ์ฃผ์ ๋๋ ๋๋ฉ์ธ ์ด๋ฆ์ ์ํ๋ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํด๋ผ์ด์ธํธ์์ OpenVPN์ ์คํํ๊ธฐ ์ ๊น์ง๋ ํฅ๋ฏธ๋ก์ด ์ผ์ด ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค. ๋ช ๊ฐ์ง ์ธ์๋ฅผ ์ ๋ฌํด์ผ ํ๋ฏ๋ก ๋ช
๋ น์ค์์ ์ํํฉ๋๋ค. --tls-client ์ธ์๋ OpenVPN์ ํด๋ผ์ด์ธํธ ์ญํ ์ ํ๊ณ TLS ์ํธํ๋ฅผ ํตํด ์ฐ๊ฒฐํ ๊ฒ์์ ์๋ฆฌ๊ณ --config๋ ๊ตฌ์ฑ ํ์ผ์ ๊ฐ๋ฆฌํต๋๋ค.
# openvpn --tls-client --config /etc/openvpn/client.conf
๋ช ๋ น ์ถ๋ ฅ์ ์ฃผ์ ๊น๊ฒ ์ฝ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ฐ๊ฒฐ๋์๋์ง ํ์ธํ์ญ์์ค. ์ฒ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ํ์ผ ๊ฐ์ ์ค์ ๋ถ์ผ์น ๋๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ/๋ฐฉํ๋ฒฝ ๋ฌธ์ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ฌธ์ ํด๊ฒฐ ํ์ ๋๋ค.
- ํด๋ผ์ด์ธํธ์์ OpenVPN ์์ ์ ์ถ๋ ฅ์ ์ฃผ์ ๊น๊ฒ ์ฝ์ผ์ญ์์ค. ์ฌ๊ธฐ์๋ ์ ํํ ์ํํ ์ ์๋ ์์ ๊ณผ ๊ทธ ์ด์ ์ ๋ํ ๊ท์คํ ์กฐ์ธ์ด ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ์๋ฒ์ /etc/openvpn/ ๋๋ ํฐ๋ฆฌ์ ์๋ openvpn.log ๋ฐ openvpn-status.log ํ์ผ์์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ธํ์ธ์.
- OpenVPN ๊ด๋ จ ๋ฉ์์ง์ ์๊ฐ ์ ํ ๋ฉ์์ง๊ฐ ์๋์ง ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์์คํ ๋ก๊ทธ๋ฅผ ํ์ธํ์ธ์. (journalctl -ce๋ ๊ฐ์ฅ ์ต๊ทผ ํญ๋ชฉ์ ํ์ํฉ๋๋ค.)
- ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ํ์ฑ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์๋์ง ํ์ธํ์ญ์์ค(์์ธํ ๋ด์ฉ์ 14์ฅ ์ฐธ์กฐ).
ะะฑ ะฐะฒัะพัะต
๋ฐ์ด๋น๋ ํด๋ฆฐํด - ์์คํ
๊ด๋ฆฌ์, ๊ต์ฌ ๋ฐ ์๊ฐ. ๊ทธ๋ Linux ์์คํ
, ํด๋ผ์ฐ๋ ์ปดํจํ
(ํนํ AWS), Docker์ ๊ฐ์ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋น๋กฏํ ์ฌ๋ฌ ์ค์ํ ๊ธฐ์ ๋ถ์ผ์ ๋ํ ๊ต์ก ์๋ฃ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์งํํ๊ณ , ์ ์ํ์ต๋๋ค. ๊ทธ๋ Learn Amazon Web Services in a Month of Lunches(Manning, 2017)๋ผ๋ ์ฑ
์ ์ผ์ต๋๋ค. ๊ทธ์ ๋น๋์ค ๊ต์ก ๊ณผ์ ์ค ๋ค์๋ Pluralsight.com์์ ์ฐพ์ ์ ์์ผ๋ฉฐ, ๊ทธ์ ๋ค๋ฅธ ์ฑ
(Linux ๊ด๋ฆฌ ๋ฐ ์๋ฒ ๊ฐ์ํ์ ๊ดํ)์ ๋ํ ๋งํฌ๋ ๋ค์์์ ๋ณผ ์ ์์ต๋๋ค.
ยป ์ฑ
์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
ยป
ยป
Khabrozhiteley์ ๊ฒฝ์ฐ ์ฟ ํฐ์ ์ฌ์ฉํ์ฌ 25% ํ ์ธ์ ๋ฐ์ผ์ธ์ - Linux
์ข
์ด์ฑ
์ ๊ฒฐ์ ํ์๋ฉด ์ ์์ฑ
์ด ์ด๋ฉ์ผ๋ก ๋ฐ์ก๋ฉ๋๋ค.
์ถ์ฒ : habr.com