리눅스 가상 사설망(VPN) 구축

이번 포스트에서는 리눅스에서 가상 사설망(VPN)을 구축하는 방법에 대해 알아보겠습니다. VPN은 인터넷 연결을 통해 안전하고 개인적인 통신을 제공하기 위해 사용되는 기술입니다. 이를 통해 사용자는 공용 네트워크에서 안전하게 데이터를 전송할 수 있습니다.

OpenVPN 설치

OpenVPN은 오픈 소스 VPN 소프트웨어입니다. 먼저 OpenVPN을 설치해야합니다. 아래의 명령어를 사용하여 리눅스 배포판에 맞는 OpenVPN 패키지를 설치하세요.

sudo apt update
sudo apt install openvpn

인증서 생성

OpenVPN을 사용하기 위해 인증서를 생성해야합니다. 인증서는 통신의 보안을 위해 사용됩니다. 인증서를 생성하기 위해 다음 명령어를 실행하세요.

cd /usr/share/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca
sudo ./easyrsa gen-dh
sudo ./easyrsa gen-crl

VPN 설정 파일 생성

VPN을 구축하기 위해 VPN 설정 파일을 생성해야합니다. 아래의 명령어를 사용하여 server.conf 파일을 생성하세요.

sudo nano /etc/openvpn/server.conf

server.conf 파일을 다음과 같이 편집하세요.

port 1194
proto udp
dev tun
ca /usr/share/easy-rsa/pki/ca.crt
cert /usr/share/easy-rsa/pki/issued/server.crt
key /usr/share/easy-rsa/pki/private/server.key
dh /usr/share/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

네트워크 전달 설정

VPN을 사용하기 위해 네트워크 전달을 설정해야합니다. 아래의 명령어를 사용하여 네트워크 전달을 활성화하세요.

sudo sysctl -p

방화벽 설정

VPN 트래픽을 허용하기 위해 방화벽 설정을 조정해야합니다. 아래의 명령어를 사용하여 방화벽 설정을 추가하세요.

sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -j REJECT
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav

VPN 실행

이제 VPN을 실행할 준비가 되었습니다. 아래의 명령어를 사용하여 VPN을 시작하세요.

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

클라이언트 설정

마지막으로 VPN 클라이언트를 구성해야합니다. 다음과 같은 파일을 작성하여 클라이언트 설정을 저장하세요.

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
comp-lzo
verb 3

YOUR_SERVER_IP를 VPN 서버의 IP 주소로 바꾸세요.

이제 VPN을 사용할 수 있습니다. 클라이언트 설정 파일을 클라이언트에 복사하고 OpenVPN을 실행하여 VPN에 연결하세요.

이상으로 리눅스에서 가상 사설망(VPN)을 구축하는 방법에 대해 알아보았습니다. VPN을 사용하여 안전하게 인터넷 통신을 할 수 있습니다.