nftablesエラー:ルールを処理できません:公式のDebian Wikiにはそのファイルやディレクトリがありません

nftablesエラー:ルールを処理できません:公式のDebian Wikiにはそのファイルやディレクトリがありません

私はフォローしています公式 Debian Wiki チュートリアルDebian 11 で VPN サーバーを設定します。

Forward traffic to provide access to the Internet最後の段落を除いて、すべてが順調に進んだ。

次の行は機能しません。

IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24
#YOUR_OPENVPN_SUBNET=10.8.0.0/16 # if using server.conf from sample-server-config
nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
nft add rule ip filter FORWARD oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter accept
nft add rule ip nat POSTROUTING oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter masquerad

出力は次のとおりです。

root@server:/home/user# nft add rule ip filter FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
Error: Could not process rule: No such file or directory
add rule ip filter FORWARD iifname enp1s0 oifname tun0 ct state related,established counter accept
            ^^^^^^

3つのコマンドで同様のエラーが発生します。何か抜けましたか?チュートリアルから抜けた内容はありますか?

ベストアンサー1

iptables-nftDebian Wiki のガイドラインは、Debian 10 以降のデフォルトバージョン (またはパッケージに含まれるデフォルトスタブ) によって生成された互換性テーブルとチェーンの上に作成されたようです。/etc/nftables.confnftablesiptables

完全に空の構成で始まる場合は、nftablesルールを追加する前にまずテーブルとチェーンを作成する必要があります。

IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24

# Create a rules table for IPv4, named "custom":
nft create table ip custom

# Create a forward filter chain with the standard priority and 
# iptables-resembling name "FORWARD", into the "custom" table 
# created above:
# (priority filter == priority 0, see "man nft")
nft add chain ip custom FORWARD { type filter hook forward priority filter\; }

# Create a NAT filter chain with the iptables-like name "POSTROUTING" too:
nft add chain ip custom POSTROUTING { type nat hook postrouting priority srcnat\; }

# now you can start adding your filter rules
nft add rule ip custom FORWARD iifname "$IF_MAIN" oifname "$IF_TUNNEL" ct state related,established counter accept
nft add rule ip custom FORWARD oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter accept
nft add rule ip custom POSTROUTING oifname "$IF_MAIN" ip saddr $YOUR_OPENVPN_SUBNET counter masquerade

これにより、すべてのカスタムルールがという名前のテーブルに保存されますcustom。後で独自のnftablesルールを生成する別のソフトウェアを追加すると、独自のテーブルを使用する可能性が高く、誤ってカスタムルールを削除する可能性がなくなります。他のテーブルのルールチェーンが合理的な順序で処理されるようにフック優先順位を確認し、必要に応じて調整します。

注:customここFORWARDにはPOSTROUTING名前のみが記載されています。好きな名前に変更できます。その他すべての項目には特定の意味があります。

単一のコマンドですべてのカスタムルールをすぐに削除したり一時的に無効にしたりすることもできます。

nft add table ip custom { flags dormant; } # temporary disable
nft add table ip custom       # re-enable
nft delete table ip custom    # wipe custom rules completely

これは、ルールセットの問題を解決するのに役立ちます。

ルールを永続化するには、次の手順に従ってください。

nft list ruleset > /etc/nftables.conf  # save the current rules
systemctl enable nftables.service      # enable loading rules at boot

おすすめ記事