CentOS 가상 사설망 (VPN) 구성

가상 사설망(Virtual Private Network, VPN)은 인터넷을 통해 안전하고 보안된 연결을 제공하는 기술입니다. CentOS는 안정성과 보안성으로 유명한 리눅스 배포판 중 하나이며, 가상 사설망을 구성하기에 적합한 플랫폼입니다. 이 블로그 포스트에서는 CentOS에서 간단하게 가상 사설망을 구성하는 방법에 대해 알아보겠습니다.

OpenVPN 설치

OpenVPN은 가상 사설망을 구축하기 위한 오픈 소스 소프트웨어입니다. CentOS에서 OpenVPN을 설치하기 위해 다음과 같은 명령을 실행합니다:

sudo yum install -y epel-release
sudo yum install -y openvpn

인증서 생성

가상 사설망에서 보안을 위해 인증서를 사용해야 합니다. 키와 인증서를 생성하기 위해 Easy-RSA 도구를 사용할 수 있습니다. 다음 명령을 실행하여 Easy-RSA를 설치합니다:

sudo yum install -y easy-rsa

Easy-RSA 설치가 완료되면, 인증서와 키를 생성하기 위해 다음과 같은 명령을 실행합니다:

cd /usr/share/easy-rsa/3.0.8
cp vars.example vars
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh

VPN 서버 구성

VPN 서버를 구성하기 위해 /etc/openvpn/server.conf 파일을 생성하고 다음과 같이 구성합니다:

sudo vi /etc/openvpn/server.conf

아래의 내용으로 파일을 작성합니다:

port 1194
proto udp
dev tun

ca /usr/share/easy-rsa/3.0.8/pki/ca.crt
cert /usr/share/easy-rsa/3.0.8/pki/issued/server.crt
key /usr/share/easy-rsa/3.0.8/pki/private/server.key
dh /usr/share/easy-rsa/3.0.8/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"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

tls-auth /usr/share/easy-rsa/3.0.8/ta.key 0
cipher AES-256-CBC
auth SHA256
key-direction 0

user nobody
group nobody
persist-key
persist-tun

status openvpn-status.log
verb 3

설정을 저장하고 파일을 종료합니다.

방화벽 설정

VPN 트래픽을 허용하기 위해 CentOS 방화벽에 추가 구성을 해야 합니다. 다음 명령을 실행하여 방화벽 구성 파일을 엽니다:

sudo vi /etc/sysconfig/iptables

다음 내용을 파일의 알맞은 위치에 추가합니다:

-A INPUT -p udp --dport 1194 -j ACCEPT

편집을 완료하고 파일을 저장합니다.

VPN 시작

OpenVPN 서버와 CentOS 시스템이 부팅될 때 자동으로 시작되도록 설정해야 합니다. 다음 명령을 실행하여 설정을 변경합니다:

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

이제 CentOS에서 VPN 서버를 구성했습니다. 클라이언트는 OpenVPN 클라이언트 소프트웨어를 사용하여 서버에 연결할 수 있습니다.

이렇게 CentOS에서 가상 사설망(VPN)을 구성하는 방법을 알아보았습니다. VPN은 보안 향상과 원격 접속을 위한 강력한 도구입니다. CentOS를 사용하여 안전하고 안정적인 가상 사설망을 구축해 보세요!

참고: 이 블로그 포스트는 CentOS 7 기준으로 작성되었습니다. 다른 버전의 CentOS를 사용하는 경우 몇 가지 달라질 수 있습니다.