방화벽 포트 80 및 443에 도착하는 모든 트래픽을 리디렉션하려고 합니다 10.133.8.11
.
나는에서 수집했다이것입력 체인의 NAT가 가능해야 합니다. 하지만 dnat는 그렇지 않은 것 같습니다. 어떤 종류의 NAT가 가능합니까?
입력 체인을 사용하여 이 작업을 수행하려는 이유는 이를 경로 전 체인에 넣으면 방화벽으로 가는 트래픽뿐만 아니라 모든 트래픽이 삭제되기 때문입니다.
지금까지 시도한 내용은 다음과 같습니다.
테이블 inet nat가 이미 존재합니다.
# nft 'add chain inet nat input { type nat hook input priority -100; }'
# nft 'add rule inet nat input tcp dport { 80, 443 } dnat ip to 10.133.8.11'
Error: Could not process rule: Operation not supported
add rule inet nat input tcp dport { 80, 443 } dnat ip to 10.133.8.11
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
``
답변1
로컬 포트에 도착하는 패킷을 로컬이 아닌 대상으로 리디렉션하려고 합니다. 성공하려면 라우팅 결정이 내려지기 전에(즉, PREROUTING 체인에서) 이 리디렉션이 완료되어야 합니다.
INPUT 체인의 패킷은 이미 일부 로컬 프로세스로 이동 중이므로 포트 번호 변경은 제한이 없어야 하지만 대상 IP 주소 변경은 불가능하거나 로컬 호스트에서 사용되는 주소로 제한될 수 있습니다.
당신은 다음과 같은 것을 할 수 있습니다
nft 'add chain inet nat prerouting { type nat hook prerouting priority -100; };'
nft 'add rule inet nat prerouting ip daddr <firewall's own IP here> tcp dport { 80, 443 } dnat ip to 10.133.8.11'
DNAT는 라우팅 결정(로컬 대 비로컬)에 영향을 미치기 때문에~ 해야 하다후크로 완료되었습니다 prerouting
.
예. 사전 라우팅 체인에서 변경하기 전에 원래 목적지 주소와 일치시킬 수 있습니다. 그러면 다른 체인에서는 대상 IP 주소가 변경된 패킷을 보게 되므로 예를 들어 forward
규칙에서 이를 허용하는지 주의해야 합니다 .
예, 패킷이 여러 항목과 일치하도록 요구할 수 있습니다(예: 대상 주소그리고대상 포트)를 동일한 규칙으로 적용합니다.