TCP, UDP, TCP/UDP, GRE 프로토콜 ??


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 내부로 제한하는 것이 안전합니다.

Post a Comment

Previous Post Next Post
본 블로그에서는 제휴마케팅 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다.