네트워크 보안: 방화벽과 VPN
네트워크 보안 완벽 가이드
1. 방화벽
Packet Filtering
# iptables (Linux)
# 포트 22 (SSH) 허용
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 포트 80, 443 (HTTP/HTTPS) 허용
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 나머지 차단
sudo iptables -P INPUT DROP
# 규칙 확인
sudo iptables -L -n
Stateful Firewall
# 기존 연결 허용
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 새 연결은 특정 포트만
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
2. VPN (Virtual Private Network)
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
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
# 클라이언트 설정
client
dev tun
proto udp
remote vpn.example.com 1194
ca ca.crt
cert client.crt
key client.key
WireGuard
# 서버
[Interface]
PrivateKey = server_private_key
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = client_public_key
AllowedIPs = 10.0.0.2/32
# 클라이언트
[Interface]
PrivateKey = client_private_key
Address = 10.0.0.2/24
[Peer]
PublicKey = server_public_key
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0
3. IDS/IPS
Snort 규칙
# SQL Injection 탐지
alert tcp any any -> any 80 (msg:"SQL Injection";
content:"UNION"; content:"SELECT"; sid:1000001;)
# Port Scan 탐지
alert tcp any any -> any any (msg:"Port Scan";
flags:S; threshold:type both, track by_src, count 20, seconds 60;
sid:1000002;)
4. DDoS 방어
SYN Flood 방어
# SYN Cookies
sudo sysctl -w net.ipv4.tcp_syncookies=1
# SYN Queue 크기
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096
# Rate Limiting
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute -j ACCEPT
5. Zero Trust
"신뢰하지 말고, 항상 검증하라"
기존: 내부 네트워크 = 신뢰
Zero Trust: 모든 접근 검증
- 사용자 인증
- 디바이스 검증
- 최소 권한
- 마이크로 세그멘테이션
결론
네트워크 보안은 다층 방어가 핵심입니다.
핵심:
- 방화벽: 첫 방어선
- VPN: 안전한 터널
- IDS/IPS: 공격 탐지/차단
- Zero Trust: 모든 접근 검증