## 우분트 환경에서 VPN 서버 구축하기 ##
1. 패키지 업데이트
apt update && apt upgrade -y
2. OpenVPN 및 Easy-RSA 설치
apt install openvpn easy-rsa -y
3. Easy-RSA 환경 설정
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
3. 인증서와 키 생성
# Easy-RSA 초기화
./easyrsa init-pki
# CA(인증기관) 생성
./easyrsa build-ca
#CA 비밀번호 입력하고 인중관 이름 입력
4. 서버 인증서 및 키 생성
./easyrsa gen-req server nopass (엔터)
./easyrsa sign-req server server
- yes - 위에 설정한 암호
5. Diffie-Hellman 파라미터 생성
./easyrsa gen-dh
6. TLS 인증 키 생성
openvpn --genkey secret ta.key
7. 생성된 파일 복사
cp -rp ~/openvpn-ca/pki/ca.crt /etc/openvpn/
cp -rp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/
cp -rp ~/openvpn-ca/pki/private/server.key /etc/openvpn/
cp -rp ~/openvpn-ca/pki/dh.pem /etc/openvpn/
cp -rp ~/openvpn-ca/ta.key /etc/openvpn/
# 설정 파일 확인
ll /etc/openvpn/
8. server.conf 설정
nano /etc/openvpn/server.conf
-------------------------------------------------------------------
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
remote-cert-tls client
server 192.168.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
cipher AES-256-CBC
auth SHA256
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
-------------------------------------------------------------------
9. IP Forwarding 활성화
nano /etc/sysctl.conf
net.ipv4.ip_forward=1 (앞에 # 삭제)
#적용
sysctl -p
10. IP Forwarding
apt install iptables-persistent -y
ip a
이더넷 확인
enp0s31f6
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o [외부인터페이스] -j MASQUERADE
예) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s31f6 -j MASQUERADE
# 부팅후 포워딩 유지하기
netfilter-persistent save
iptables-save > /etc/iptables/rules.v4
11. OpenVPN 서비스 시작
systemctl restart openvpn@server
systemctl enable openvpn@server
systemctl status openvpn@server
12. 클라이언트용 인증서 생성 (Windows 연결용)
cd ~/openvpn-ca
./easyrsa gen-req client1 nopass (엔터)
./easyrsa sign-req client client1
- yes - 암호
13. 클라이언트 설정 파일 만들기
ca.crt, client1.crt, client1.key, ta.key 4개 파일로 client1.ovpn 파일 생성 하기
cp /etc/openvpn/ca.crt /tmp
cp /root/openvpn-ca/pki/issued/client1.crt /tmp
cp /root/openvpn-ca/pki/private/client1.key /tmp
cp /etc/openvpn/ta.key /tmp
cd /tmp
# 파일 목록 확인
ll -t
# client1.ovpn 설정파일 만들기 스크립트
touch ovpn.sh
chmod +x ovpn.sh
nano ovpn.sh
------------------------------------------------------------------------
#!/bin/bash
FILE="client1.ovpn"
# client1.ovpn이 존재하면 백업
if [ -f "$FILE" ]; then
mv "$FILE" "$FILE.bak"
fi
# 새로운 client1.ovpn 파일 생성
cat <<EOF > "$FILE"
client
dev tun
proto udp
remote 서버IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
EOF
# 인증서 및 키 삽입
{
echo "<ca>"
cat ca.crt
echo "</ca>"
echo "<cert>"
awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/' client1.crt
echo "</cert>"
echo "<key>"
cat client1.key
echo "</key>"
echo "<tls-auth>"
cat ta.key
echo "</tls-auth>"
} >> "$FILE"
# 추가 설정 삽입
cat <<EOF >> "$FILE"
key-direction 1
cipher AES-256-CBC
auth SHA256
verb 3
EOF
echo "client1.ovpn 파일이 성공적으로 생성되었습니다."
------------------------------------------------------------------------
위 설정파일에서 remote 서버IP 로 수정함
./ovpn.sh 실행
14. 클라이언트 PC 로 파일 전송하기위해서 서버에서 파일 브라우저 설치해서 임시 파일 서버 만들기
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
# 설정 초기화
filebrowser config init
# 서버 ip 설정
filebrowser config set -a 192.168.0.140
# 포트 설정
filebrowser config set -p 80
# 공유폴더 설정
filebrowser config set -r /tmp
# 사용자 추가
filebrowser users add test 1
서비스 가동
filebrowser
15. 클라이언트 PC 에서 설정하기
https://openvpn.net/community-downloads/
openvpn 설치
웹 브라우져에서 서버 ip 로 접속하고 파일 서버 계정으로 로그인 하기
client1.ovpn
위 파일을 C:\Users\user\OpenVPN\config 로 복사합니다:
복사 했으면 서버에서 임시 파일 서버 Filebrowser 종료 Ctrl + C
클라이언트에서 바탕화면에서 OpenVPN GUI를 관리자 권한으로 실행
시스템 트레이에서 OpenVPN 아이콘 우클릭 → 연결
- 작성자 : gooddew (윈도우 포럼)
- 메일 : gooddew@naver.com
- 작성일 : 2025-05-12
VPN Server.txt
VPN Server.txt 표시 중입니다.