본문으로 바로가기
728x90

 

2025.09.17 - [클라우드 아키텍처 전문가 양성과정/네트워크 보안] - iptables 방화벽 기반 NAT 게이트웨이 구성 및 내부망 외부 통신

 

iptables 방화벽 기반 NAT 게이트웨이 구성 및 내부망 외부 통신

1. 토폴로지 구성 및 통신 확인 내부망에 위치한 Kali가 외부 인터넷으로 나가기 위해서는 반드시 Ubuntu 방화벽 서버(NAT 게이트웨이)를 통과해야 한다.이번 실습에서는 IP 포워딩, iptables 규칙, NAT

djjin02.tistory.com

 

위 실습에 이어서 진행하였다.

 

 

1. 토폴로지 구성 및 네트워크 설정

기존 토폴로지에서 하단에 out-kali (Kali Linux 데스크톱)만 추가 구성하여,

이전 실습에서 구성한 Ubuntu 방화벽 서버를 대상으로 nmap을 활용하여 ACL 정책을 확인하고 특정 포트(80)를 개방하는 과정을 진행하였다.

  • out-Kali: 192.168.111.81/24, Gateway: 192.168.111.1
  • 방화벽 서버(Ubuntu-22.04_S): 192.168.111.254
  • ACL 정책: 기본적으로 모든 포트 차단, 특정 포트(80) 허용

 

  • IP 주소: 192.168.111.81 / 24
  • D/G 192.168.111.1
  • DNS: 8.8.8.8

 

기본 통신 확인 → ping 8.8.8.8

 

 

2. nmap으로 방화벽 포트 스캔

nmap -Pn --traceroute --script=firewall-bypass 192.168.111.254

 

nmap으로 방화벽 서버(192.168.111.254) 스캔 결과,

모든 포트 차단(filtered) 상태이다.

ACL에 의해 TCP 연결이 허용되지 않는다.

 

 

3. 방화벽 서버에서 80번 포트 열기

ufw allow 80/tcp
ufw enable
ufw status

 

방화벽 서버(Ubuntu)에서 ufw allow 80/tcp 명령으로  HTTP(80/tcp) 포트를 허용한다.

 

 

4. nmap 재실행 

nmap을 재실행하여 80번 포트가 열린 것을 확인한다.

 

이전에는 모든 포트가 filtered 표시되었다. → 방화벽이 차단하고 있다는 의미이다.

지금은 80/tcp closed http로 바뀌었다. → 방화벽에서는 통과 허용되었다는 의미이다.

(서버에 Apache/Nginx 같은 HTTP 서비스가 실행되지 않아서 closed 나오는 것)

 

 

ping은 ICMP 프로토콜이므로 80/tcp 포트와 직접적 관계는 없다.
다만, UFW가 활성화되며 ICMP 트래픽이 함께 허용된 것으로 보인다.

아직 정확한 원인은 모르겠다.

 

 

firewalk는 방화벽 ACL(Access Control List)에서 어떤 포트가 열려 있는지 간접적으로 추측하는 도구이다.

  • (a) 방화벽 포트가 닫힌 경우 → 아무 응답 없음
  • (b) 방화벽 포트가 열린 경우 → TTL 소진 후 ICMP Time Exceeded 메시지 도착

 

firewalk의 동작 방식은 아래와 같다.

  1. 특정 TTL(Time To Live) 값으로 패킷 전송
    • 방화벽을 막 지나칠 수 있는 TTL 값을 만들어 전송
    • 예: TTL = 방화벽 라우터까지 도달 가능한 값 + 1
  2. 방화벽 동작 확인
    • 포트 차단 상태 → 패킷이 방화벽에서 차단되며, 아무런 응답도 오지 않는다.
    • 포트 허용 상태
      → 패킷이 방화벽을 통과해 다음 라우터로 전달된다.
      → 다음 라우터에서 TTL 초과 → ICMP Time Exceeded (Type 11) 메시지를 공격자에게 회신
  3. 결과 해석
    • 공격자는 ICMP Time Exceeded 메시지를 받았는지 여부를 보고해당 포트가 방화벽에서 열려 있는지/닫혀 있는지 추측 가능

 

끝!!!

 

728x90
LIST