SharedIT | 묻고 답하기(AMP)

iptables nat 활성화 시 외부에서 내부 사설IP로의 Ping test 문의드립니다.

안녕하세요!

iptables로 nat를 활성화하고 외부에서 내부 사설IP로 Ping test했을 경우에 대해 문의드리려고 합니다.

일단 iptables 정책설정은 다음과 같습니다.

$iptables -S

-A FORWARD -i external -o internal -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i internal -o external -j ACCEPT


$iptables -t nat -S

-A POSTROUTING -s 192.168.0.0/24 -o external -j MASQUERADE


문의드리고자 하는 것은 NAT를 활성화했을 때 외부에서 내부 사설IP로 Ping test를 하면 안되어야 할 것 같은데 잘된다는 겁니다. 외부에서 NAT 사설IP로 보내어진 ICMP에 대한 응답으로, 내부 사설IP에서 출발한 Reply ICMP Packet이 NAT를 통과하며 Source IP가 공인IP로 교체되어야 할 것 같은데 교체되지 않고 사설IP 그대로 패킷이 통과합니다.

물론 내부 사설IP에서 외부로 Ping test했을 때 Echo-request, Reply ICMP Packet에 모두 NAT가 적용된 것을 확인했습니다.

질문은 크게 두 가지입니다.

1. 외부에서 내부 사설IP로 Ping test했을 때 Echo-request ICMP가 무사히 도착하는 것이 정상인가요?

2. 내부 사설IP에서 외부로 나가는 Echo-request ICMP는 NAT가 적용되는 반면, 내부 사설IP에서 외부로 나가는 Reply ICMP에는 왜 NAT가 적용되지 않는 걸까요?


4개의 답변이 있습니다.

빨간신발
  0 추천 | 약 4년 전
 wansoo 
님이 자세히 적어 주셨는데요..

공인IP에서 사설IP로 직접 핑은 불가하죠...

123.123.123.123 -> 192.168.1.1로 불가합니다.

123.123.123.123 ->  111.111.111.111 로 핑을 보내셨다면

포트포워딩되어 192.168.1.1.에서 응답을 하는지 111.111.111.111에서 응답을 하는지 먼저 확인 해보셔야 합니다.

Genghis Khan
  0 추천 | 약 4년 전

1. 외부에서 내부 사설IP로 Ping test했을 때 Echo-request ICMP가 무사히 도착하는 것이 정상인가요?

: 비정상적입니다. tracert로 우선 외부 소스에서 내부 ip 로 test를 해보세요

  그리고 가장 중요한 부분인데요 방화벽 설정에 해당 내부 IP에 대해 확인 해보세요

 

2. 내부 사설IP에서 외부로 나가는 Echo-request ICMP는 NAT가 적용되는 반면, 내부 사설IP에서 외부로 나가는 Reply ICMP에는 왜 NAT가 적용되지 않는 걸까요?

:방화벽에 어떻게 설정하느냐에 따라 달라집니다. 나가는 모든 부분에 대해 ANY이면 모든 서비스는 내부에서 외부로 나가는건 다 통과죠

차바라기
  0 추천 | 약 4년 전

외부에서 내부NAT IP Ping을 했을때 기본적으로 안되어야 하는데요~NAT속성을 확인해보세요~

wansoo
  0 추천 | 약 4년 전

외부에서 내부의 사설 ip로 ping이 된다면??

그건 사설 ip가 아니라 공인 ip인거 같은데요..?

사설 ip라는건 인트라넷(사설) 내에서만 유효한 ip라는 의미이죠.

포트 포워딩에 의해 내부 사설 ip로 접속이 가능하다 해도 포트 포워딩시켜둔 공인 ip로 접속을 시도해서 공인 ip를 가진 장비의 포트 포워딩에 의해 내부 사설  ip로 접속이 되는 것이지, 외부에서 내부의 사설 ip로 정보로  접속이 가능하지는 않고요.

내부 사설 ip로 ICMP 패킷이 그대로 전달된다고 하셨는데...

내부 사설ip를 가진 host를 꺼 둔 상태에서는 ICMP 패킷이 전달 안되는 걸 확인하셨을까 하는 의문이 느껴지고요.


외부에서 내부 사설 ip 정보를 이용해서 직접 접속이 가능하려면...

내부 사설ip가 사설 ip가 아닌 공인 ip 이거나...

외부가 VPN 등에의해 외부라고 착각은 느껴지지만 실제로는 외부가 아닌 내부 이거나 둘 중에 하나일거란 느낌이 오네요~


tracert 명령을 이용해서 어떤 경로를 통해 패킷이 전달되는지도 확인해 보시길 권장드리고요~