강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

NAT 방화벽 설정을 위한 NAT 구성

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

NAT 방화벽 설정을 위한 NAT 구성

 

 

 

1994년에 처음 소개된 NAT 방식은 갈수록 부족해지는 IP 주소의 부족 현상을 해결할 수 있고, 실제 내부 네트워크에서는 외부에서 직접 접근이 불가능한 사설 IP를 사용함으로써 보안을 강화할 수 있다는 측면에서 지금도 많이 사용되고 있는 기술이다.

 

 

 

 

또한 초기에 방화벽이면 당연히 NAT를 떠올릴 정도로 초기 방화벽에 많이 사용된 기술이 NAT였다.

 

 

 

 

 

 

그러나 NAT를 사용할 경우 일종의 내부 게이트웨이 역할을 하는 하나의 장비에 모든 내부 네트워크가 연결되어 있어 트래픽이 많아질 경우 전반적인 속도 저하의 원인이 될 수 있고, 이 시스템에 장애가 발생할 경우에는 이하의 모든 시스템에 영향을 주게 된다는 단점도 있다.

 

(이러한 것을 Single Point of Failure라고 한다.)

 

 

그래서 최근에는 이러한 게이트웨이 구조를 2중화하여 만일의 장애에 대비하도록 구성하기도 한다.

 

NAT는 구성 형태에 따라 크게 두 가지 형태로 나뉠 수 있다.

 

 

 

 

 

첫 번째는 가장 전통적인 NAT 방식으로, 쉽게 생각하면 최근 많이 사용하는 인터넷 공유를 떠올리면 된다.

 

 

 

 

내부의 네트워크에서는 모두 사설 IP를 사용하면서 외부의 목적지로 접속하거나 데이터를 전송할 경우 내부의 사설 IP를 가진 컴퓨터가 아니라 마치 게이트웨이 역할을 하는 방화벽 자체에서 패킷이 나간 것처럼 보이게 된다.

 

 

 

 

그리고 외부의 호스트가 이 요청에 응답하면 응답 패킷을 받은 방화벽은 해당하는 데이터를 애초에 패킷을 요청했던 내부 네트워크의 PC나 호스트로 전달해 준다.

 

 

 

 

이러한 방법으로 내부 네트워크에 있는 컴퓨터는 사설IP를 사용하여 외부에서 보이지 않으면서도 외부로 연결되어 응답을 받을 수 있게 되므로 내부 네트워크에 있는 컴퓨터가 사설 IP를 사용하더라도 인터넷에 접속할 수 있는 것이다.

 

 

 

 

게다가 공인 IP 1개만으로도 내부에서는 무제한으로 인터넷을 이용할 수 있게 된다.

 

 

 

 

이와 같은 기능을 마스커레이딩한다고 하며 NAT의 가장 기본적인 기능이기도 하다.

 

 

 

 

(엄밀하게 이야기한다면 NAPT라고 하는 것이 정확한 표현이다.)

 

일반적으로 공유기를 이용하여 인터넷 공유를 할 때 192.168.1.0/24 대역을 사용하여 최대 254여개의 사설 IP를 사용할 수 있다고 알고 있다.

 

 

 

 

하지만 이는 netmask를 어떻게 설정하는가의 문제일 뿐 인터넷 공유 자체의 규모에 특별히 제한이 있는 것이 아니다.

 

 

 

 

이를테면 PC와 공유기에 사용할 netmask255.255.255.0으로 설정 한다면 공인 IP 1개에 250여개가 되겠지만, netmask255.255.254.0으로 한다면 510개를, netmask255.255.0.0으로 하면 내부에서 65,000여개의 사설 IP를 사용할 수 있게 된다.

 

 

 

 

 



a63295328a4a6e740f0da4d63aa3d4ab_1684221663_8358.png
 

[그림] 인터넷 공유(NAPT)

 

 

 

두 번째는 일종의 패킷 포워딩 기능이다.

 

 

 

 

마스커레이딩이 단순히 내부에서 외부 네트워크로 나갈 수는 있지만 외부에서는 직접 내부로 들어올 수 없다는 특징이 있는 반면에 포워딩 기능은 외부에서 내부로의 접속도 할 수 있도록 하는 특징이 있다.

 

 

 

 

물론 앞의 마스커레이딩과 함께 사용한다면 내부에서 외부로도 나갈 수 있다.

 

따라서 만약 사설 IP로 인터넷서버를 운영한다면 포트 포워딩 기능을 이용하면 된다.

 

 

 

 

 

 

이를테면 아래 그림을 참고로 공인 IP1개 있고 내부에 사설 IP로 설정된 3대의 서버가 있을 경우 211.47.64.125번으로 오는 패킷은 첫 번째 사설IP 서버인 192.168.1.2 서버의 25번으로 포워딩하고, 211.47.64.180번으로 오는 패킷은 두 번째 사설IP 서버인 192.1681.3 서버로 포워딩 해 주고, udp 53번으로 오는 패킷은 세 번째 사설IP 서버인 192.168.1.4 서버로 포워딩 해 주도록 설정하게 되면 충분히 사설IP로도 포트의 개수만큼 많은 서비스를 제공할 수 있게 되는 것이다.

 

 

 

 

물론 나머지 IPPC에 할당하여 앞의 그림과 같이 인터넷 공유를 사용하면 될 것이다.

 

 

 

 

 

a63295328a4a6e740f0da4d63aa3d4ab_1684221696_1224.png
 

[그림] 포트 포워딩 예

 

 

 

마스커레이딩은 패킷의 소스 주소를 변경(사설->공인)하므로 Source NAT(SNAT)라고 하는데 비하여 포트포워딩은 패킷의 목적지 주소를 변경(공인->사설)하므로 Destination NAT(DNAT)이라고 한다.

 

 

 

 

 

 

NAT를 구현하려면 커널 컴파일시 Full NAT 부분을 선택하여야 마스커레이딩이나 포트 포워딩을 사용할 수 있다.

 

 

 

 

그리고 유동 IP인 경우에는 MASQUERADE target support도 함께 선택하여 컴파일 해야 한다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  92 명