IT Knowledge/Network/images/09-vpn과-보안-venn.svg

VPN과 보안

VPN은 인터넷을 통해 안전하게 사설 네트워크에 연결하고, 네트워크 보안은 데이터를 보호합니다.


🎯 이 파일을 학습하면 무엇을 알게 될까요?

이 파일을 학습하면 다음을 할 수 있게 됩니다:

  • VPN의 개념과 동작 원리 이해
  • VPN 프로토콜의 차이 파악
  • 네트워크 보안의 기본 개념 이해
  • 방화벽과 IPS의 역할 파악

🧠 학습 전 생각해볼 질문

  1. VPN은 왜 필요할까요?

    • 공공 와이파이에서 사설 네트워크에 안전하게 접속하려면?
    • 원격 근무를 안전하게 하려면?
  2. VPN은 어떻게 작동할까요?

    • 인터넷을 통해 사설 네트워크에 어떻게 연결할까요?
    • 데이터는 어떻게 암호화될까요?
  3. 네트워크 보안은 어떻게 이루어질까요?

    • 악성 트래픽을 어떻게 차단할까요?
    • 방화벽과 IPS는 어떻게 다를까요?

📖 1. VPN이란?

1.1 VPN의 정의

**VPN(Virtual Private Network)**는 공용 네트워크(인터넷)를 통해 사설 네트워크에 안전하게 연결하는 기술입니다.

비유: 사설 터널

  • 공용 도로: 인터넷 (위험)
  • 사설 터널: VPN (안전)

1.2 VPN 작동 원리

사설 네트워크 (회사)
    ↑
  VPN 터널 (암호화)
    ↑
인터넷 (공용 네트워크)
    ↑
VPN 게이트웨이
    ↑
원격 사용자 (집)

과정

1단계: 연결 요청

사용자: "VPN 서버에 연결하고 싶어!"

2단계: 인증

VPN 서버: "사용자가 맞나? 확인해보자"
사용자: "사용자명: user, 비밀번호: ***"

3단계: 암호화 설정

VPN 서버: "암호화 방식은 AES-256으로 하자!"
사용자: "알겠어!"

4단계: 터널 생성

VPN 터널 생성 → 데이터 암호화 전송

1.3 VPN 장점

장점설명
보안데이터 암호화
프라이버시IP 주소 숨김
원격 접속어디서나 사설 네트워크 접속
비용 절감전용선 없음

🔐 2. VPN 프로토콜

2.1 주요 VPN 프로토콜

프로토콜계층보안속도사용 사례
OpenVPNL7높음중간일반 VPN
WireGuardL3높음빠름최신 VPN
IPsecL3높음중간사이트 간 VPN
SSL/TLS VPNL7높음중간웹 브라우저 VPN
PPTPL2낮음빠름구형 VPN (추천 안 함)
L2TPL2중간느림사이트 간 VPN

2.2 OpenVPN

OpenVPN은 오픈 소스 SSL/TLS 기반 VPN입니다.

특징

특징설명
프로토콜SSL/TLS
암호화AES-256
포트443 (HTTPS 위장 가능)
유연성높음
복잡도중간

장단점

장점단점
오픈 소스설정 복잡함
높은 보안설정 파일 관리 필요
방화벽 우회 가능 (443 포트)

2.3 WireGuard

WireGuard는 최신의 가벼운 VPN 프로토콜입니다.

특징

특징설명
프로토콜UDP
암호화ChaCha20, Curve25519
포트51820
코드 크기4,000행 (매우 작음)
복잡도낮음

장단점

장점단점
매우 빠름비교적 최신 기술
설정 간단일부 기능 부족
낮은 리소스 사용

2.4 IPsec

IPsec은 IP 계층에서 동작하는 VPN 프로토콜입니다.

모드

모드설명
전송 모드 (Transport Mode)페이로드만 암호화
터널 모드 (Tunnel Mode)전체 패킷 암호화

SA (Security Association)

SA는 IPsec 연결의 매개변수입니다.

SA 구성:
- 암호화 알고리즘: AES-256
- 인증 알고리즘: SHA-256
- 수명: 3600초

🛡️ 3. 네트워크 보안 기초

3.1 방화벽 (Firewall)

방화벽은 네트워크 트래픽을 필터링하는 장치입니다.

비유: 경비원

  • 들어오는 사람: 인증
  • 나가는 사람: 확인

방화벽 유형

유형계층기준예시
패킷 필터링L3/L4IP, 포트iptables
상태 확인L4연결 상태iptables conntrack
프록시L7콘텐츠Squid
NGFW (Next-Gen)L7애플리케이션Palo Alto

방화벽 규칙

규칙 1: SSH (22) 허용
규칙 2: HTTP (80) 허용
규칙 3: HTTPS (443) 허용
규칙 4: 모든 거부

순서: 위 → 아래 (첫 번째 일치하는 규칙 적용)

3.2 IPS (Intrusion Prevention System)

IPS는 악성 트래픽을 감지하고 차단합니다.

IPS 유형

유형배치특징
NIPS (Network IPS)네트워크 경로실시간 차단
HIPS (Host IPS)호스트로컬 보호
WIPS (Wireless IPS)무선 네트워크무선 보호

IPS vs IDS

특징IDSIPS
역할감지차단
위치통과인라인
대응알림차단

3.3 ACL (Access Control List)

ACL은 네트워크 접근을 제어하는 규칙입니다.

ACL 유형

유형기준예시
표준 ACL소스 IPpermit 192.168.1.0 0.0.0.255
확장 ACL소스/목적지, 포트permit tcp 192.168.1.0 0.0.0.255 any eq 80

🔍 4. 네트워크 보안 위협

4.1 DDoS (Distributed Denial of Service)

DDoS는 여러 대의 컴퓨터로 서버에 과부하를 주는 공격입니다.

공격 과정:
1. 봇넷(Botnet) 조성 (감염된 컴퓨터)
2. 공격 대상 선정
3. 동시에 대량의 요청 전송
4. 서버 과부하 → 서비스 중단

DDoS 방어

방법설명
로드 밸런싱트래픽 분산
CDN콘텐츠 캐싱
WAF웹 애플리케이션 필터링
Rate Limiting요청 속도 제한

4.2 MITM (Man-in-the-Middle)

MITM은 중간에서 통신을 가로채는 공격입니다.

공격 과정:
사용자 → 공격자 → 서버
          ↑
    가로채기 및 수정

MITM 방어

방법설명
HTTPS암호화 통신
VPN안전한 터널
인증서 확인SSL 인증서 검증

🛠️ 5. 실무에서의 설정

5.1 OpenVPN 설정

서버 설정 (server.conf)

# OpenVPN 서버 설정
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
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
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

클라이언트 설정 (client.ovpn)

client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3

5.2 WireGuard 설정

서버 설정 (wg0.conf)

[Interface]
Address = 10.0.0.1/24
PrivateKey = 서버_프라이빗_키
ListenPort = 51820
 
[Peer]
PublicKey = 클라이언트_퍼블릭_키
AllowedIPs = 10.0.0.2/32

클라이언트 설정 (wg0.conf)

[Interface]
Address = 10.0.0.2/24
PrivateKey = 클라이언트_프라이빗_키
 
[Peer]
PublicKey = 서버_퍼블릭_키
Endpoint = vpn.example.com:51820
AllowedIPs = 10.0.0.0/24

5.3 Linux 방화벽 (iptables) 설정

# 기본 정책: 모두 거부
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
 
# 연결된 패킷 허용
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
 
# SSH 허용
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
# HTTP/HTTPS 허용
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 
# Loopback 허용
sudo iptables -A INPUT -i lo -j ACCEPT
 
# ICMP 허용 (ping)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
 
# 로깅
sudo iptables -A INPUT -j LOG --log-prefix "iptables: "
 
# 규칙 저장
sudo iptables-save > /etc/iptables/rules.v4

🎓 6. 심화 주제

6.1 Zero Trust 보안

Zero Trust는 모든 트래픽을 신뢰하지 않는 보안 모델입니다.

원칙:
1. 항상 검증
2. 최소 권한
3. 가정 없음

6.2 SASE (Secure Access Service Edge)

SASE는 네트워크와 보안 서비스를 클라우드로 통합합니다.

구성:
- SD-WAN (네트워크)
- CASB (클라우드 보안)
- FWaaS (방화벽)
- ZTNA (Zero Trust)

✅ 7. 학습 체크리스트

VPN 기초

  • VPN의 정의와 작동 원리 이해
  • VPN의 장점 이해
  • VPN 프로토콜의 특징 이해

VPN 프로토콜

  • OpenVPN 특징 이해
  • WireGuard 특징 이해
  • IPsec 특징 이해
  • 각 프로토콜의 장단점 이해

네트워크 보안

  • 방화벽의 역할 이해
  • IPS의 역할 이해
  • ACL의 역할 이해
  • DDoS 공격과 방어 이해
  • MITM 공격과 방어 이해

실무 활용

  • OpenVPN 설정 가능
  • WireGuard 설정 가능
  • iptables 방화벽 설정 가능

🧪 8. 실습 연습

연습 1: OpenVPN 구성

# 서버 설정
sudo apt-get install openvpn easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
source vars
./clean-all
./build-ca
./build-key-server server
./build-dh
 
# 클라이언트 키 생성
cd ~/openvpn-ca
source vars
./build-key client1
 
# 서버 시작
sudo systemctl start openvpn@server

연습 2: WireGuard 구성

# WireGuard 설치
sudo apt-get install wireguard
 
# 키 생성
wg genkey | tee privatekey | wg pubkey > publickey
 
# 설정 파일 생성
sudo nano /etc/wireguard/wg0.conf
 
# WireGuard 시작
sudo wg-quick up wg0
 
# 상태 확인
sudo wg show

연습 3: 방화벽 설정

# 방화벽 규칙 추가
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 
# 규칙 확인
sudo iptables -L -n -v
 
# 규칙 저장
sudo iptables-save > /etc/iptables/rules.v4

💡 9. 학습 후 생각해볼 질문

  1. 이 부분을 이해했나요?

    • VPN과 다른 네트워크 보안 기술의 차이를 설명할 수 있나요?
    • 각 VPN 프로토콜의 장단점을 설명할 수 있나요?
  2. 어떻게 확인하지?

    • wg show로 WireGuard 상태를 확인해보세요.
    • iptables -L로 방화벽 규칙을 확인해보세요.
  3. 무엇이 가장 어려웠나요?

    • 방화벽 규칙의 순서와 일치 원리를 이해하기 어렵지 않았나요?
  4. 어떻게 개선할까요?

    • 실제로 VPN 서버를 구축해보세요.

🔗 관련 노트


마지막 업데이트: 2026-01-29 다음 단계: 네트워크 트러블슈팅 학습