스크립트 migrate
에서 .으로 이동 하려고 합니다 . 이 스크립트에서는 로컬 프록시(특정 서브넷 제외)로 나가는 일부 TCP/UDP 트래픽을 원합니다 . 스크립트가 작동합니다 (IP 변경됨).iptables
nftables
redirect
iptables
as expected
iptables -t nat -N PROXY
iptables -t nat -A PROXY -d 1.1.1.1/32 -j RETURN
iptables -t nat -A PROXY -d 1.0.0.1/32 -j RETURN
iptables -t nat -A PROXY -p tcp -d 1.0.0.0/8 -j REDIRECT --to-ports 3127
iptables -t nat -A PROXY -p udp -d 1.0.0.0/8 -j REDIRECT --to-ports 3127
iptables -t nat -A OUTPUT -p tcp -d 1.0.0.0/8 -j PROXY
그러나 개조된 nftables
스크립트는 다음을 제공합니다 error
.
Error: Could not process rule: Operation not supported
add rule nat OUTPUT ip daddr { 1.0.0.0/8 } ip protocol { tcp, udp } jump PROXY
^^^^^
nftables
내가 적용한 스크립트는 다음과 같습니다 .
nft add table nat
nft add chain nat PROXY { type nat hook prerouting priority -1\; }
nft add chain nat OUTPUT { type nat hook output priority -1\; }
nft add rule nat PROXY ip daddr { 1.1.1.1/32, 1.0.0.1/32 } return
nft add rule nat PROXY ip daddr { 1.0.0.0/8 } ip protocol { tcp, udp } redirect to :3127
nft add rule nat OUTPUT ip daddr { 1.0.0.0/8 } ip protocol { tcp, udp } jump PROXY
몇 가지 참고사항:
- 각 스크립트를 실행하기 전에 모든 테이블/체인/규칙 세트가 플러시/제거됩니다.
- 실행하면
lsmod | grep ^nf
모든 커널 모듈이 로드되었음을 알 수 있습니다(내가 알 수 있는 한). - 모든 것은 루트에 의해 실행됩니다
감사해요.
편집하다:
nft list ruleset
다음 결과를 제공합니다.
table ip nat {
chain PROXY {
type nat hook prerouting priority filter - 1; policy accept;
ip daddr { 1.0.0.1, 1.1.1.1 } return
ip daddr 1.0.0.0/8 ip protocol { tcp, udp } redirect to :3127
}
chain OUTPUT {
type nat hook output priority filter - 1; policy accept;
}
}
오류로 인해 마지막 규칙이 첨부되지 않았습니다.
uname -a
: Linux Honeypot 6.1.7-1-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Jan 18 22:33:03 UTC 2023 x86_64 GNU/Linux
답변1
NFTables 구성을 보면 nft add chain nat PROXY { type nat hook prerouting priority -1\; }
IPTables 구성( )에서는 찾을 수 없는 사전 라우팅 후크가 포함된 행을 볼 수 있습니다 iptables -t nat -N PROXY
.
갈고리가 있기 때문에 점프하는 것은 불가능합니다.
후크가 없는 구성이 작동해야 합니다.
nft add table nat
nft add chain nat PROXY
nft add chain nat OUTPUT { type nat hook output priority -1\; }
nft add rule nat PROXY ip daddr { 1.1.1.1/32, 1.0.0.1/32 } return
nft add rule nat PROXY ip daddr { 1.0.0.0/8 } ip protocol { tcp, udp } redirect to :3127
nft add rule nat OUTPUT ip daddr { 1.0.0.0/8 } ip protocol { tcp, udp } jump PROXY
IPTables에서 NTFables로 마이그레이션하는 경우 다음을 확인하는 것이 좋습니다.원자 규칙 대체그리고기본 스크립팅 환경(/etc/nftables.conf)는 NTFables에서 제공됩니다.