TCP, UDP, TCP/UDP, GRE 프로토콜 에 관련해서
포트포워딩(port forwarding) 설정 시 자주 등장하는 TCP, UDP, TCP/UDP, GRE 프로토콜은 각각의 통신 방식에 따라 다르게 동작합니다.
아래는 네 가지의 특징과 차이를 정리한 설명입니다.
🔹 1. TCP (Transmission Control Protocol)
특징: 연결형(connected) 통신
→ 데이터를 전송하기 전에 송신자와 수신자 간의 연결을 확립(3-way handshake) 합니다.
장점: 데이터가 순서대로 도착하고 손실 없이 전송됨
단점: 연결 유지와 오류 검사 과정 때문에 약간의 지연(latency) 발생
사용 예시:
HTTP / HTTPS (웹 통신)
FTP (파일 전송)
SSH (원격 접속)
이메일 (SMTP, POP3, IMAP 등)
➡ 포트포워딩 시 예:
80/TCP → 웹 서버(HTTP)
22/TCP → SSH 서버
🔹 2. UDP (User Datagram Protocol)
특징: 비연결형(connectionless) 통신
→ 송신자는 단순히 데이터를 보내고 끝. 수신 여부나 순서 확인은 하지 않음.
장점: 빠름 (지연이 적고 오버헤드가 거의 없음)
단점: 데이터 손실 가능성이 있음
사용 예시:
DNS (53/UDP)
VoIP (인터넷 전화)
게임 서버
동영상/음성 스트리밍 (지연이 중요한 서비스)
➡ 포트포워딩 시 예:
53/UDP → DNS 서버
27015/UDP → Steam 게임 서버
🔹 3. TCP/UDP (모두 사용)
특징: TCP와 UDP 둘 다 사용하는 서비스에 열어줄 때 선택
→ 어떤 서비스는 TCP, 어떤 건 UDP로 통신하므로, 두 프로토콜을 모두 열어야 하는 경우가 있음
사용 예시:
VPN 서버 (예: OpenVPN)
특정 온라인 게임 서버 (예: Minecraft, 일부 P2P 게임)
BitTorrent 클라이언트
➡ 포트포워딩 시 예:
1194/TCP/UDP → OpenVPN
25565/TCP/UDP → Minecraft 서버
🔹 4. GRE (Generic Routing Encapsulation)
특징:
네트워크 계층(Layer 3)에서 작동하는 캡슐화 프로토콜
TCP/UDP처럼 “포트” 개념이 없음 (즉, 포트 번호가 존재하지 않음)
IP 패킷 전체를 다른 IP 패킷 안에 캡슐화하여 전송
주로 VPN 터널링에서 사용 (예: PPTP VPN)
사용 예시:
PPTP VPN (TCP 1723 + GRE 47)
→ PPTP 연결 시 TCP 1723 포트로 제어 신호를 주고받으며, 실제 데이터는 GRE 프로토콜로 전송
➡ 포트포워딩 시 예:
PPTP 서버 설정 시:
TCP 1723열기GRE프로토콜 허용 (포트가 아님)
🔸 정리 표
구분 | 연결 방식 | 포트 사용 | 신뢰성 | 대표 사용 예시 |
|---|---|---|---|---|
TCP | 연결형 | 있음 | 높음 | 웹, SSH, 이메일 |
UDP | 비연결형 | 있음 | 낮음 | 게임, 스트리밍, DNS |
TCP/UDP | 둘 다 | 있음 | 서비스별 혼합 | VPN, 일부 게임 |
GRE | 캡슐화 | 없음 | 중간 수준 | PPTP, 터널링 |
보안성은?
🔹 1. TCP — 상대적으로 안전하지만, 공격 표적이 많음
✅ 보안적 특징
TCP는 연결을 맺는 과정(3-way handshake) 이 있기 때문에
공격자가 임의로 데이터를 보내더라도, 일정 부분 세션 검증이 이루어집니다.
데이터의 무결성(Integrity)이 비교적 보장되므로, 신뢰성이 중요할 때 주로 사용됩니다.
⚠️ 보안 위험
포트 스캐닝(Port Scanning):
공격자는 TCP의 응답 특성을 이용해 열려 있는 포트를 손쉽게 탐지할 수 있습니다.
SYN Flood 공격:
TCP 연결 요청(SYN)을 무수히 보내 연결을 마비시키는 DoS(서비스 거부) 공격의 일종입니다.
평문 통신의 위험:
예를 들어
HTTP(80/TCP)는 암호화되지 않은 평문으로 주고받으므로, 패킷 스니핑에 취약합니다.
🔐 보안 대책
HTTPS(443/TCP)처럼 TLS 암호화된 프로토콜 사용
방화벽에서 필요한 포트만 허용
Fail2Ban이나 iptables rate limit 등으로 TCP 연결 시도 제한
🔹 2. UDP — 빠르지만 보안에 매우 취약
✅ 보안적 특징
연결을 맺지 않으므로, 속도와 지연이 중요한 서비스(게임, 스트리밍)에 적합
⚠️ 보안 위험
비연결형이라 인증/검증이 없음 → IP 스푸핑(위조된 IP로 데이터 전송) 공격이 쉽습니다.
UDP Flooding 공격:
공격자가 대량의 UDP 패킷을 전송해 대역폭을 고갈시키는 대표적인 DDoS 공격 방식입니다.
DNS 증폭 공격(DNS Amplification):
공격자가 조작된 요청을 보내서 트래픽을 몇 배로 증폭시켜 목표 서버를 마비시킵니다.
🔐 보안 대책
방화벽(ACL)에서 신뢰된 IP만 허용
UDP 트래픽 속도 제한 (rate limit)
DNS, NTP 등 공개 UDP 서비스는 내부망 전용으로 제한
🔹 3. TCP/UDP — 범용이지만, 방화벽 설정이 중요
✅ 보안적 특징
일부 서비스(OpenVPN, 게임 등)는 TCP와 UDP 둘 다 사용해야 함
특정 상황에서 유연하지만, 동시에 공격 표면이 두 배로 넓어짐
⚠️ 보안 위험
포트 하나를 열더라도, TCP와 UDP가 동시에 노출됨 → 탐지 위험 증가
잘못된 설정 시 외부에서 임의 접근 가능
🔐 보안 대책
실제 서비스가 양쪽 프로토콜 모두 필요한지 확인 후 선택
불필요한 방향(예: UDP만 필요하면 TCP는 차단)으로는 포워딩 금지
IDS/IPS(침입 탐지 시스템)으로 트래픽 모니터링
🔹 4. GRE — VPN 터널링용, 암호화가 기본적으로 없음
✅ 보안적 특징
GRE는 캡슐화(Encapsulation) 만 수행하고, 암호화 기능이 없습니다.
즉, VPN 터널을 만드는 데 쓰이지만, 전송되는 데이터는 평문 상태일 수 있습니다.
⚠️ 보안 위험
GRE 패킷 자체는 인증이나 암호화가 없으므로,
중간자 공격(Man-in-the-Middle) 가능성이 있습니다.
PPTP VPN은 GRE(47)와 TCP(1723)를 함께 쓰는데,
PPTP 자체가 오래되어 보안 취약점이 다수 존재합니다.
🔐 보안 대책
PPTP 대신 L2TP/IPsec, OpenVPN, WireGuard 등
암호화가 강화된 프로토콜 사용 권장
GRE 터널은 내부 네트워크 간에만 사용하고,
인터넷에 직접 노출 금지
🔸 정리 표
프로토콜 | 보안 강도 | 주요 위험 | 권장 대책 |
|---|---|---|---|
TCP | 중간~높음 | 포트 스캔, SYN Flood | TLS 사용, 포트 최소화 |
UDP | 낮음 | UDP Flood, IP 스푸핑 | IP 제한, 속도 제한 |
TCP/UDP | 중간 | 노출면 확대 | 실제 필요한 프로토콜만 허용 |
GRE | 낮음 | 암호화 부재, 중간자 공격 | IPsec 등 암호화 병행 |
📘 결론 요약
보안 관점에서 포트포워딩은 “최소한만, 필요한 범위로” 열어야 하며,
가능하면 TCP 기반의 암호화 프로토콜(예: HTTPS, SSH)을 사용하고,
UDP나 GRE 같은 비보안성 트래픽은 내부망 또는 VPN 내부로 제한하는 것이 안전합니다.