OpenVPN 서버 구축하는 방법


안녕하세요! 오늘은 OpenVPN 서버를 구축하는 방법에 대해 소개하려고 합니다. OpenVPN은 안전한 원격 접속과 VPN 연결을 제공하는 오픈 소스 소프트웨어로, 네트워크 보안이 중요한 요즘 많은 사람들이 VPN 서버를 사용하고 있습니다.

이 글에서는 리눅스 환경에서 OpenVPN 서버를 설정하는 방법을 단계별로 설명하겠습니다. 처음 서버를 구축해보시는 분들도 쉽게 따라 하실 수 있도록 세세하게 다뤘으니, 끝까지 함께하세요!

1. OpenVPN 및 필수 패키지 설치

먼저 OpenVPN과 관련 패키지를 설치해야 합니다. 리눅스(Ubuntu)의 경우 다음 명령어를 사용하세요.

sudo apt update
sudo apt install openvpn easy-rsa




이 명령어는 OpenVPN 서버 실행에 필요한 모든 소프트웨어를 설치합니다.

2. Easy-RSA 설정 및 인증서 생성

OpenVPN 서버를 운영하려면 인증서가 필요합니다. 이를 위해 Easy-RSA 도구를 사용합니다.

2-1. Easy-RSA 디렉터리 생성

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

2-2. 환경 변수 설정



vars 파일을 편집하여 기본값을 설정합니다. 환경에 맞게 정보를 수정한 후 저장하세요.

nano vars

다음과 같은 변수를 수정할 수 있습니다.

export KEY_COUNTRY="KR"
export KEY_PROVINCE="Seoul"
export KEY_CITY="Seoul"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="myemail@example.com"
export KEY_OU="MyDepartment"

2-3. 인증 기관(CA) 및 서버 인증서 생성

./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server

위 명령어로 인증 기관과 서버 인증서를 생성할 수 있습니다.

3. 서버 설정 파일 구성

이제 OpenVPN 서버의 설정 파일을 구성할 차례입니다. 미리 제공된 예제 설정 파일을 가져온 후 수정합니다.





설정 파일을 열어서 필요한 부분을 수정하세요.

설정 파일을 열어서 필요한 부분을 수정하세요.

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
sudo nano /etc/openvpn/server.conf

주요 수정 항목:

ca, cert, key, dh 파일 경로 설정

VPN 네트워크 서브넷 및 포트 설정

4. IP 포워딩 및 방화벽 설정

VPN을 통해 인터넷 트래픽을 전송하기 위해 IP 포워딩을 활성화해야 합니다.


sudo nano /etc/sysctl.conf

파일에서 다음 줄을 찾고 주석을 해제합니다.

net.ipv4.ip_forward=1




변경 사항을 적용하려면 다음 명령을 실행하세요.


sudo sysctl -p

이제 방화벽 규칙을 설정해야 합니다. 아래 명령어를 통해 OpenVPN 트래픽을 허용할 수 있습니다.


sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable

5. OpenVPN 서비스 시작 및 자동 실행 설정

이제 OpenVPN 서버를 시작하고 부팅 시 자동으로 실행되도록 설정합니다.


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

6. 클라이언트 설정

서버 설정이 완료되었으면 클라이언트에서 OpenVPN 서버에 접속할 수 있도록 설정해야 합니다.

6-1. 클라이언트 인증서 생성

클라이언트용 인증서를 생성합니다.


cd ~/openvpn-ca
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

6-2. 클라이언트 설정 파일 생성

클라이언트가 서버에 접속할 수 있도록 설정 파일을 만들어야 합니다. 예시 클라이언트 구성 파일을 사용하여 클라이언트 디바이스에 설정합니다.


sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/

6-3. 클라이언트 연결 테스트

클라이언트 장치에서 OpenVPN 클라이언트를 사용해 VPN 서버에 연결한 후, 네트워크 통신이 잘 이루어지는지 확인하세요.


맺음말

지금까지 OpenVPN 서버를 리눅스 환경에서 설치하고 구성하는 방법을 단계별로 알아보았습니다. 이 가이드를 따라 설정을 완료하셨다면, 안전하고 효율적인 VPN 서버를 통해 원격 접속을 사용할 수 있습니다. 보안을 강화하고 싶으신 경우, 추가적으로 방화벽 규칙이나 사용자 관리 기능을 설정하는 것도 좋은 방법입니다.


2930 Blog에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.