IT 기술 문서


2025.02.17 21:33

Windows & Linux에서 VPN 서버 구축 및 보안 강화 방법

  • it33 25일 전 2025.02.17 21:33
  • 39
    0

alt text


VPN(가상 사설망) 개요

VPN(Virtual Private Network)은 인터넷을 통한 보안된 네트워크 연결을 제공하여 원격 접속 및 데이터 보호에 활용됩니다. Windows에서는 내장 VPN 기능을 제공하며, Linux에서는 OpenVPN, WireGuard 등의 오픈소스 VPN 솔루션을 사용할 수 있습니다. 이번 포스팅에서는 Windows 및 Linux에서 VPN 서버를 구축하고 보안을 강화하는 방법을 정리해 보겠습니다.


1. Windows에서 VPN 서버 설정

Windows에서는 GUI 및 PowerShell을 이용하여 내장 VPN 서버를 설정할 수 있습니다.

① Windows VPN 서버 활성화

  1. Windows + Rncpa.cpl 입력 후 실행

  2. 새 연결 또는 네트워크 설정 클릭

  3. 직접 연결을 통한 VPN 설정 선택

  4. VPN 서버로 사용할 네트워크 인터페이스 선택 후 완료

② Windows VPN 포트 포워딩 설정

Windows VPN은 PPTP(1723), L2TP(1701), SSTP(443) 등의 포트를 사용합니다. 공유기 또는 방화벽에서 해당 포트를 열어줘야 합니다.

# 방화벽에서 PPTP(1723) 및 L2TP(1701) 포트 열기
New-NetFirewallRule -DisplayName "Allow PPTP" -Direction Inbound -LocalPort 1723 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Allow L2TP" -Direction Inbound -LocalPort 1701 -Protocol UDP -Action Allow

③ Windows VPN 계정 추가 및 사용자 설정

VPN을 사용하려면 사용자 계정을 설정해야 합니다.

  1. Windows + Rcompmgmt.msc 입력 후 실행

  2. 로컬 사용자 및 그룹사용자에서 새 계정 생성

  3. VPN 연결을 허용할 사용자에게 다이얼인 액세스 권한 부여


2. Linux에서 OpenVPN 서버 구축

Linux에서는 OpenVPN이 가장 널리 사용되는 VPN 솔루션입니다. OpenVPN은 강력한 보안 및 유연한 설정이 가능하며, 서버-클라이언트 모델을 지원합니다.

① OpenVPN 설치 및 설정 (Ubuntu/Debian)

sudo apt update && sudo apt install -y openvpn easy-rsa

② OpenVPN 서버 설정 파일 수정

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

주요 변경 설정:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0

③ OpenVPN 방화벽 규칙 설정

sudo ufw allow 1194/udp
sudo ufw enable

④ OpenVPN 서비스 활성화 및 시작

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

3. Linux에서 WireGuard VPN 설정

WireGuard는 OpenVPN보다 더 빠르고 가벼운 VPN 프로토콜입니다.

① WireGuard 설치 (Ubuntu/Debian)

sudo apt update && sudo apt install -y wireguard

② WireGuard 키 생성 및 설정

umask 077
wg genkey | tee privatekey | wg pubkey > publickey

/etc/wireguard/wg0.conf 파일 생성:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = (서버 프라이빗 키 입력)

[Peer]
PublicKey = (클라이언트 퍼블릭 키 입력)
AllowedIPs = 10.0.0.2/32

③ WireGuard 서비스 시작 및 활성화

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

4. Windows & Linux VPN 보안 강화

VPN 서버 구축 후 보안을 강화하는 것이 중요합니다.

① 강력한 암호화 적용 (OpenVPN & WireGuard)

OpenVPN:

cipher AES-256-CBC
auth SHA512
tls-auth ta.key 0

WireGuard:

PersistentKeepalive = 25

② VPN 접속 사용자 제한 (Windows & Linux 공통)

  • Windows: VPN 사용자 계정을 최소한으로 유지하고, 다이얼인 액세스 설정 제한

  • Linux: iptables 또는 firewalld를 사용하여 특정 IP만 VPN에 접속 가능하도록 설정

sudo iptables -A INPUT -p udp --dport 1194 -s 192.168.1.100 -j ACCEPT

③ VPN 로그 모니터링 및 자동 차단 (Linux)

sudo tail -f /var/log/openvpn.log

VPN 서버에서 비정상적인 로그인 시도를 자동으로 차단하도록 설정할 수도 있습니다.

sudo fail2ban-client status openvpn

5. Windows VPN vs. Linux VPN 비교

기능

Windows 내장 VPN

OpenVPN (Linux)

WireGuard (Linux)

설정 난이도

쉬움 (GUI 제공)

중간 (수동 설정 필요)

쉬움 (간결한 설정)

보안 수준

보통 (기본 암호화)

높음 (AES-256 지원)

매우 높음 (최신 암호화)

속도

보통

중간

매우 빠름

클라이언트 지원

Windows 기본 제공

Windows, Linux, Mac, Android

Windows, Linux, Mac, Android


Windows & Linux VPN 서버 구축 및 보안 최적화

Windows의 내장 VPN, OpenVPN, WireGuard는 각각의 장점이 있으며, 환경에 따라 적절한 솔루션을 선택할 수 있습니다.

VPN 보안 강화를 위해 강력한 암호화 적용 및 접속 제한 설정을 반드시 설정하세요!

  • 공유링크 복사