>  기사  >  운영 및 유지보수  >  Linux의 소프트웨어 방화벽 iptables - nat 테이블 규칙 설정

Linux의 소프트웨어 방화벽 iptables - nat 테이블 규칙 설정

齐天大圣
齐天大圣원래의
2020-11-18 15:25:082298검색

가장 일반적으로 사용되는 필터 테이블 외에도 iptables는 때때로 nat 테이블을 사용합니다. NAT는 네트워크 주소 변환(Network Address Translation)으로, 소스 IP 주소 또는 대상 IP 주소를 수정하는 데 사용됩니다. 이제 iptables를 통해 백엔드 호스트로 전달되는 간단한 데이터 패킷의 테이블 및 체인 프로세스를 살펴보겠습니다. ... 테이블의 POSTROUTING 체인이 최종적으로 전송됩니다. NAT와 관련된 첫 번째와 마지막 단계는 PREROUTING 체인과 POSTROUTING 체인입니다.

PREROUTING 체인은 DNAT

POSTROUTING 체인이라고 하는 대상 IP를 수정합니다. SNAT

  • DNAT

  • 어떤 시나리오에서 DNAT를 사용해야 하는지, 그리고 SNAT에 공통적입니다. 애플리케이션은 무엇입니까? DNAT의 경우 가장 일반적인 것은 다른 사용자가 접속할 수 있도록 내부 네트워크 포트를 외부 네트워크에 매핑하는 것입니다. 이렇게 하면 외부 네트워크에서 내부 네트워크로 직접 데이터를 전송할 수 없기 때문에 내부 네트워크의 보안이 크게 향상됩니다.

  • 시나리오: 웹사이트가 설치된 인트라넷에 호스트 A(192.168.1.111)가 있고, 공인 IP(39.100.92.12)를 가진 인트라넷에도 호스트 B(192.168.1.2)가 있습니다. 그러면 외부 네트워크에서 사용자가 A 위의 웹사이트에 접속하도록 하는 방법은 다음과 같습니다.

이때 호스트 B에서 DNAT 작업을 수행하여 대상 주소를 공용 네트워크 ip39.100.92.12에서 내부 네트워크 주소 192.168.1.111로 변경해야 합니다. 작업은 다음과 같습니다.

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
> -j DNAT --to-destination 192.168.1.111:80
IP 수정 외에도 PREROUTING 체인에서 포트 수정도 가능합니다. 예를 들어 포트 80은 포트 8080에 매핑되지만 작업 이름은 더 이상 DNAT가 아니라 REDIRECT입니다.
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
> -j REDIRECT --to-ports 8080

SNAT

SNAT의 경우 가장 일반적인 응용 프로그램은 인트라넷 시스템이 프록시 서버를 통해 인터넷에 액세스하는 것입니다. 인트라넷 호스트에는 공용 IP가 없으므로 인트라넷 호스트 데이터 패킷이 프록시를 통과합니다. 서버, 프록시 서버 데이터 패킷의 소스 주소를 프록시 서버의 공용 IP로 변경해야 합니다.

시나리오: 인트라넷에 호스트 A(192.168.1.111)가 있고, 공용 IP(39.100.92.12)를 사용하는 인트라넷에 호스트 B(192.168.1.2)가 있습니다. 그렇다면 호스트 A는 어떻게 연결될 수 있습니까? 공용 네트워크?

# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 \
> -j SNAT --to-source 39.100.92.12

DNAT와 SNAT의 작동은 그다지 복잡하지 않습니다. 가장 중요한 것은 DNAT와 SNAT의 적용 시나리오를 처음 배울 때 혼동되기 쉽습니다. 관련 추천: "linux 비디오 튜토리얼"

위 내용은 Linux의 소프트웨어 방화벽 iptables - nat 테이블 규칙 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.