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

RSS Feed
๋งˆ์ง€๋ง‰ ์ˆ˜์ •์ผ์ž