가장 일반적으로 사용되는 필터 테이블 외에도 iptables는 때때로 nat 테이블을 사용합니다. NAT는 네트워크 주소 변환(Network Address Translation)으로, 소스 IP 주소 또는 대상 IP 주소를 수정하는 데 사용됩니다. 이제 iptables를 통해 백엔드 호스트로 전달되는 간단한 데이터 패킷의 테이블 및 체인 프로세스를 살펴보겠습니다. ... 테이블의 POSTROUTING 체인이 최종적으로 전송됩니다. NAT와 관련된 첫 번째와 마지막 단계는 PREROUTING 체인과 POSTROUTING 체인입니다.
PREROUTING 체인은 DNAT
POSTROUTING 체인이라고 하는 대상 IP를 수정합니다. SNAT
DNAT
어떤 시나리오에서 DNAT를 사용해야 하는지, 그리고 SNAT에 공통적입니다. 애플리케이션은 무엇입니까? DNAT의 경우 가장 일반적인 것은 다른 사용자가 접속할 수 있도록 내부 네트워크 포트를 외부 네트워크에 매핑하는 것입니다. 이렇게 하면 외부 네트워크에서 내부 네트워크로 직접 데이터를 전송할 수 없기 때문에 내부 네트워크의 보안이 크게 향상됩니다.
이때 호스트 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
# 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!