VPN
๐ VPN (Virtual Private Network) ๊ตฌ์ถ ๊ฐ์ด๋ ๐
1๏ธโฃ VPN์ด๋?
VPN(Virtual Private Network) ์ ๊ณต์ฉ ๋คํธ์ํฌ(์ธํฐ๋ท)๋ฅผ ํตํด ์ํธํ๋ ์์ ํ ์ฐ๊ฒฐ์ ์ ๊ณตํ๋ ๊ธฐ์ ์
๋๋ค.
์ด๋ฅผ ํตํด ์๊ฒฉ ์ฌ์ฉ์๊ฐ ๋ด๋ถ ๋คํธ์ํฌ์ ์์ ํ๊ฒ ์ ์ํ ์ ์์ผ๋ฉฐ, IP ์ฐํ ๋ฐ ๋ณด์ ๊ฐํ์๋ ํ์ฉ๋ฉ๋๋ค.
โ VPN์ ์ฃผ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ์ํธํ โ ์์ ํ ํต์ ์ ๋ณด์ฅ
- ์๊ฒฉ ์ ์ โ ๋ด๋ถ ๋คํธ์ํฌ์ ์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅ
- IP ์ฃผ์ ์จ๊น โ ๋ณด์ ๋ฐ ํ๋ผ์ด๋ฒ์ ๋ณดํธ
- ๋ฐฉํ๋ฒฝ ์ฐํ โ ํน์ ์ง์ญ์์ ์ฐจ๋จ๋ ์๋น์ค ์ ๊ทผ ๊ฐ๋ฅ
2๏ธโฃ VPN์ ์ ํ
์ ํ | ์ค๋ช |
---|---|
Site-to-Site VPN | ๋ ๊ฐ ์ด์์ ๋คํธ์ํฌ๋ฅผ VPN ํฐ๋๋ก ์ฐ๊ฒฐ |
Remote Access VPN | ๊ฐ๋ณ ์ฌ์ฉ์๊ฐ ๊ธฐ์ ๋คํธ์ํฌ์ ์์ ํ๊ฒ ์ ์ |
SSL VPN | ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํ ๋ณด์ ์ฐ๊ฒฐ (์: OpenVPN, AnyConnect) |
IPsec VPN | ๊ฐ๋ ฅํ ๋ณด์ ํ๋กํ ์ฝ ๊ธฐ๋ฐ VPN (์: StrongSwan) |
WireGuard VPN | ์ต์ ๊ฒฝ๋ํ VPN ๊ธฐ์ (๋น ๋ฅด๊ณ ๋ณด์์ฑ ์ฐ์) |
3๏ธโฃ VPN ์๋ฃจ์ ๋น๊ต
VPN ์๋ฃจ์ | ์ค๋ช | ํน์ง |
---|---|---|
OpenVPN | ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ์์ค VPN | ๊ฐ๋ ฅํ ์ํธํ, ๋ค์ ํ๋ซํผ ์ง์ |
WireGuard | ์ต์ VPN ๊ธฐ์ , ์ฑ๋ฅ ์ฐ์ | ๋น ๋ฅด๊ณ ๊ฒฝ๋, ์ค์ ๊ฐํธ |
IPsec (StrongSwan) | ๊ธฐ์ ํ๊ฒฝ์์ ์ฃผ๋ก ์ฌ์ฉ | ๋ค์ดํฐ๋ธ ์ง์, ๊ฐ๋ ฅํ ๋ณด์ |
L2TP/IPsec | ๊ธฐ๋ณธ ์ ๊ณต VPN ํ๋กํ ์ฝ | ๋น๊ต์ ์ค์ ์ด ์ฌ์ |
SoftEther VPN | ๋ค๋ชฉ์ VPN ์๋ฃจ์ | ๋ค์ํ VPN ํ๋กํ ์ฝ ์ง์ |
4๏ธโฃ OpenVPN ์๋ฒ ๊ตฌ์ถ (Ubuntu 22.04)
๐น 1. OpenVPN ์ค์น
sudo apt update
sudo apt install openvpn easy-rsa -y
๐น 2. ์ธ์ฆ์ ๋ฐ ํค ์์ฑ
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
source vars
./clean-all
./build-ca
./build-key-server server
./build-dh
./build-key client
๐น 3. ์๋ฒ ์ค์
OpenVPN ์ค์ ํ์ผ ํธ์ง
sudo nano /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
cipher AES-256-CBC
auth SHA256
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
๐น 4. OpenVPN ์๋น์ค ์์
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
5๏ธโฃ WireGuard VPN ๊ตฌ์ถ
๐น 1. WireGuard ์ค์น
sudo apt update
sudo apt install wireguard -y
๐น 2. ํค ์์ฑ
wg genkey | tee privatekey | wg pubkey > publickey
๐น 3. ์๋ฒ ์ค์
sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <์๋ฒ์ ๊ฐ์ธํค>
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <ํด๋ผ์ด์ธํธ์ ๊ณต๊ฐํค>
AllowedIPs = 10.0.0.2/32
๐น 4. WireGuard ์๋น์ค ์์
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
6๏ธโฃ VPN ํด๋ผ์ด์ธํธ ์ค์
๐น 1. OpenVPN ํด๋ผ์ด์ธํธ ์ค์
1๏ธโฃ client.ovpn
ํ์ผ ์์ฑ
2๏ธโฃ VPN ์ ์
sudo openvpn --config client.ovpn
๐น 2. WireGuard ํด๋ผ์ด์ธํธ ์ค์
1๏ธโฃ wg0.conf
์์ฑ
[Interface]
PrivateKey = <ํด๋ผ์ด์ธํธ์ ๊ฐ์ธํค>
Address = 10.0.0.2/24
[Peer]
PublicKey = <์๋ฒ์ ๊ณต๊ฐํค>
Endpoint = <VPN ์๋ฒ IP>:51820
AllowedIPs = 0.0.0.0/0
2๏ธโฃ VPN ์ ์
sudo wg-quick up wg0
7๏ธโฃ VPN ๋ฐฉํ๋ฒฝ ๋ฐ ํฌํธ ์ค์
โ OpenVPN ํฌํธ ์ด๊ธฐ
sudo ufw allow 1194/udp
โ WireGuard ํฌํธ ์ด๊ธฐ
sudo ufw allow 51820/udp
โ IP Forwarding ํ์ฑํ
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
8๏ธโฃ VPN ์ํ ํ์ธ ๋ฐ ๋ฌธ์ ํด๊ฒฐ
โ OpenVPN ์ํ ํ์ธ
sudo systemctl status openvpn@server
โ WireGuard ์ํ ํ์ธ
sudo wg show
โ ๋ก๊ทธ ํ์ธ
sudo journalctl -u openvpn@server -f
โ ํด๋ผ์ด์ธํธ ์ ์ ์ฌ๋ถ ํ์ธ
sudo wg
๐ ๊ฒฐ๋ก ๐
โ
VPN์ ๋ณด์์ด ์ค์ํ ๋คํธ์ํฌ ํ๊ฒฝ์์ ํ์์ ์ธ ๊ธฐ์
โ
OpenVPN, WireGuard, IPsec ๋ฑ ๋ค์ํ ์๋ฃจ์
์ ํ์ฉ ๊ฐ๋ฅ
โ
๋ณด์ ์ค์ ๋ฐ ์ํธํ๋ฅผ ์ฒ ์ ํ ์ ์ฉํ์ฌ ์์ ํ VPN ์ด์
๐ ์ถ๊ฐ ์๋ฃ
1๏ธโฃ OpenVPN ๊ณต์ ๋ฌธ์
2๏ธโฃ WireGuard ๊ณต์ ์ฌ์ดํธ
3๏ธโฃ StrongSwan IPsec VPN