IP MASQUERADE

지난 네트워크 포스트에서는 NAT 라는 기술에 대해 설명하였습니다. NAT는 여러분들이 사용하는 공유기에 내장된 기능 중 가장 대표적인 기능으로, IP 고갈을 해결하기 위한 기술이자, 일반 가정에서 IP를 사용하는 네트워크 디바이스의 증가로 인해 생겨난 기술이기도 합니다.



IP MASQUERADE

IP MASQUERADE는 무엇일까요? MASQUERADE의 뜻은 '가면'이라는 뜻입니다. 그 말대로 IP MASQUERADE 기술은 IP 가면과 같은 기술입니다. 어떤 개념인지 한 번 알아보도록 합시다.



COM1과 COM2가 있습니다. COM1과 COM2는 ROUTER에 물려 있고, 오직 한 개의 회선만이 공인 IP를 가지고 있습니다. 이를 ROUTER가 가지고 있고, 나머지 COM1과 COM2는 ROUTER가 주어주는 사설 IP만을 가지고 있습니다.


원칙적으로 본다면, COM1과 COM2는 공인 IP를 가지고 있지 않기 때문에 정상적인 인터넷 사용을 할 수 없습니다. IP MASQUERADE는 이런 문제의 해소를 위해 공인 IP 아래에 있는 모든 네트워크에서 오는 패킷들을 자신의 IP가 보낸 것으로 가면을 쓰는 기술을 말합니다.


이 기술은 NAT라는 기술 안에 속해 있는 기술입니다. NAT가 사설 IP 주소를 공인 IP 주소로 변환하여 내보낸다고 하였습니다. 하지만 IP MASQUERADE는 NAT처럼 IP 주소를 변환하는 기술을 맞지만, 여기에 포트번호까지 포워딩시켜주는 부가적인 효과를 지니고 있습니다.


NAT와 차이가 있다고 한다면 포트 번호의 부분입니다. 만약, COM1이 DAUMKAKAO에 패킷을 보냈습니다. 그럼 NAT의 경우에는, 라우터에서 해당 IP가 변환되어 보내지고, DAUMKAKAO에서 응답 패킷을 받을 때는 ROUTER가 NAT 기술로 해당 사설 IP로 변환하여 받아집니다.


IP MASQUERADE는 COM1이 DAUMKAKAO에 패킷을 보냈을 때, ROUTER가 공인IP의 무작위 포트번호로 보내줍니다. 그러면 나중에 DAUMKAKAO가 응답 패킷을 보냈을 떄, 해당 포트번호로 패킷을 보낼 수 있도록 하고, ROUTER에서는 해당 포트번호를 이용해 패킷을 보낸 사설 IP로 패킷을 받게 해주는 역할을 합니다.




IP MASQUERADE의 보안

IP MASQUERADE의 보안은 매우 뛰어납니다. 왜냐하면 공인 IP 한 개로 여러 PC가 공유하기 때문에, 해당 PC에 함부로 접속할 수가 없기 때문입니다. (사실 이 부분, 이렇게 보면 보안이 뛰어나다고 말할 수 있지만, 다른 부분으로 보면.... 음) 


해커가 COM1번 PC에 침투하려고 합니다. 어떻게 침투해야할까요?


공인IP를 가지고 있는 해커는 COM1에 침투하기 위해 COM1의 사용자의 이메일 주소를 습득한 후, 악성코드가 첨부되어 있는 이메일을 전송하고, COM1 사용자가 해당 파일을 전송 받아 실행하면, 침투할 수 있는 환경이 만들어집니다.


하지만 해커는 바이러스 심는 데는 성공했지만, 접속하지 못합니다. 그 이유는 COM1 PC가 정식적으로 공인IP를 가지고 있지 않다는 것과 COM1에 해당하는 사설 IP 주소를 해커가 알지 못하는 것. 그리고 마지막 한 개는 IP MASQUERADE는 COM1의 사설 IP에서 쓰는 포트 번호와 같은 번호로 매핑 시켜서 패킷을 보내고 받지 않기 때문에, 무작위로 바뀌는 포트 번호에 대응할 수 없기 때문입니다.


사실 마지막 부분은 오직 사용자가 인터넷 접속을 용도로만 한다면, 굉장히 득이 될 수 있는 부분이지만, 반대로 사용자가 서비스를 운영하려고 하는 입장에서는 굉장히 난처해질 수 있습니다.



여기까지 IP MASQUERADE 기술에 대해 살펴봤습니다. 현재 공유기에는 IP MASQUERADE의 기술 지원 여부가 따로 기재되어 있지는 않다고 합니다. (IP MASQUERADE는 NAT에서 사용하는 기술이기 때문) IP MASQUERADE는 분명히 보안에 있어서 장점을 발휘하지만, 서비스를 운영하는 데에 있어서는 반대로 본다면, 역효과가 생길 수 있기 마련입니다. 그 문제에 대해서는 다음 포스트에서 다루기로 하겠습니다.


'Infrastructure > Network' 카테고리의 다른 글

MQTT 프로토콜 개념과 이해  (0) 2017.08.26
네트워크 프로그래밍의 기초 - Socket  (0) 2017.04.09
IP MASQUERADE  (0) 2016.07.02
NAT (Network Address Translation)  (0) 2016.06.24
comments powered by Disqus

Tistory Comments 0