「出力」チェーンにジャンプするときのnftablesエラー

「出力」チェーンにジャンプするときのnftablesエラー

スクリプトmigrateから.に移動しようとしています。このスクリプトでは、ローカルプロキシ(特定のサブネットを除く)に送信されるいくつかのTCP / UDPトラフィックが必要です。スクリプトが動作します(IPが変更されました)。iptablesnftablesredirectiptablesas 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 から提供されます。

おすすめ記事