DockerコンテナのDHCP出力を制御するために、送信にファイアウォールルールを適用したいと思います。 DHCPコンテナを追加すると、コンテナはネットワークCAP_NET_ADMIN
スタックを効果的に制御できるため、DHCPコンテナはホスト上のネットワークスタックを共有したくありません。
私は気づいたここカーネル5.7のnetfilterに終了フックが追加されました(uname -r
5.10があるとします)。
データによるとこれ送信後、次の表を追加しました。
table netdev filterfinal_lan {
chain egress {
type filter hook egress device enp1s0 priority 0; policy accept;
}
}
ただし、構成を適用しようとすると認識できないというメッセージが表示されます。
/etc/nftables.conf:107:20-25: Error: unknown chain hook
type filter hook egress device enp1s0 priority 0; policy accept;
^^^^^^
どのバージョンのnftablesが送信フックをサポートしているのかわかりませんが、私はnft --version
送信nftables v0.9.8 (E.D.S.)
フックに関する情報を見つけるのが難しいようです。
このフックを使用するには何が必要ですか?
答え1
実際にnftables送信フックはカーネル5.16に追加され、fwd
5.17()ではサポートが改善されました。
以前はいくつかの試みがあり、そのうちの1つは元のコミットでNACK処理され、Kernel Newbiesの5.7バージョンに登場しました。nftables'wikiはLinux 5.16の代わりにLinux 5.7用のKernelnewbiesに正しく接続されていません。
以下は、2020年3月(カーネル5.7程度)の関連メーリングリストへのリンクです:
タイトル: Re: [パッチ 00/29] Netfilter アップデート net-next
送信者: David Miller <davem() davemloft!net>送信者:アレクセイスターロボイトフ<[Eメール保護]>
日時:2020年3月17日火曜日20:55:46 -10002020年3月17日火曜日午後2時42分 Pablo Neira Ayuso[Eメール保護]書いた:
- Lukas Wunnerの新しい出口リングを追加しました。
NACK 作成者: Alexey Starovoitov[Eメール保護]
申し訳ありません。このプル要求をキャンセルするまで、このコンテンツは表示されませんでした。
誰かが回復などを通じてこの問題を処理してください。
以来、このコミットから復元されました。netfilter:シャットダウンフックの導入を復元。この回答はまだ関連するすべてのメーリングリストに公開されていない可能性があり、それによって混乱が加重されます。
ほぼ2年が経ちました。質問と懸念(tc / qdiscとの相互作用を含む)が解決されました。出口カーネル5.16(2022年1月9日)に再度追加されました。Linux 5.16 カーネルの新機能次の項目があります。
Webフィルタ
Linuxカーネルドライバデータベースから:
CONFIG_NETFILTER_EGRESS: Netfilter エクスポートのサポート
[...]
- Linux カーネルで発見: 5.16–5.19, 5.19+HEAD
同様に、nftablesユーザーモードのサポート出口nf-nextでカーネルサポートがコミットされた後(5.16がリリースされる前)、正式に追加されました。nftables 1.0.1 リリース:
このリリースには、Linuxカーネル5.16-rc1以前に利用可能な新機能が含まれています。
[...]
- シャットダウンフックサポート(5.16-rc1から利用可能)
CONFIG_NETFILTER_EGRESS
OPのルールセットは、バージョン> = 5.16でなければならない関連カーネルオプションを持つカーネルで許可されています。nftables>= 1.0.1。