私はbr_netfilter
Linuxカーネルモジュールが正確に何をしているのかを明確に理解しようとしています(ネットワークに関連していることを知っています)。
ここで私が尋ねる簡単な質問は次のとおりです。
このモジュールを有効にすると実行できますが、このモジュールを無効にすると実行できない操作の例を挙げてください。私はこれがそれに関連していると思いましたが、iptables
モジュールを無効に/有効にするときは常に同じiptables
コマンドを実行できます。
注:カーネルモジュールを無効にしてもコンピュータがシャットダウンしないかどうかわからないため、テストするためにテストAWS EC2インスタンスを作成しました。
編集:明確にするために私が見たいのは、X、Y、Zコマンドの実行とも呼ばれる簡単なステップのセットです。有効にすると、システムは期待どおりに実行され、無効にするとそうではありません。
答え1
まず、このモジュールを便利に使用するには、まず次のことを行う必要があります。ブリッジング複数のネットワークインターフェイス(物理または仮想)間のトラフィック。
たとえば、システムでQEMU / KVM仮想マシンを実行し、仮想マシンを別々のIPアドレスでネットワークに提供できる場合(=仮想マシンでサービスを設定するためにポート転送が不要)、ホストシステムの物理ネットワークを実行できます。インターフェイスと仮想マシンの仮想ネットワークインターフェイス間のブリッジ。
hostapd
または、独自のWiFiアクセスポイントを実行し、ワイヤレスネットワークが別々のIPサブネットになることを望まない場合は、有線インターフェイスとワイヤレスネットワークインターフェイス間でブリッジを実行できます。
brctl show
デフォルトでは、orの出力が空のip link show type bridge
リストでない場合は、MACebtables
アドレスに基づいてブリッジを通過するトラフィックの制限を設定できます。
これら2つのコマンドに出力が表示されない場合は、フィルタリングを実行するサブシステムを使用していないbr_netfilter
ため、役に立ちません。br_netfilter
彼らはする出力を見ると、ブリッジのMACベースのフィルタリングのみが必要な場合でも、br_netfilter
このモジュールはまったく必要ありません。
しかし、ブリッジでIPアドレスまたはTCP / UDPポートに基づいてフィルタリングするにはどうすればよいですか?その後、実行できますecho 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
。br_netfilter
これがモジュールが有効になった理由です。iptables
ブリッジされたトラフィックにルールを適用できます。
私が正しく理解したと仮定すると、テストされていない例です。
vifX
ホストが示すように、名前付き仮想ネットワークインターフェイスを使用してKVM仮想マシンを実行する仮想化ホストを実行しています。仮想ネットワークは、物理インターフェイスと仮想インターフェイスbr0
に接続されたブリッジを介して実装されます。 VMのIPアドレス/マスクは10.6.6.6/24です。直接アクセスを介してアクセスできる同じネットワークセグメントには、10.6.6.100/24のIPアドレス/マスクを持つ別の物理サーバーがあります。eno1
vifX
eno1
最初は、SSH接続を10.6.6.100から10.6.6.6に、またはその逆に設定できます。 10.6.6.100から10.6.6.6への接続を許可しますが、10.6.6.6からのSSH接続をブロックしようとしています。
ネットワークインタフェースを介して標準接続トレースiptables FORWARDルールを作成できます。
iptables -A FORWARD -i vifX -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i vifX -p tcp --dport 22 -j DROP
しかし、最初は動作しません。なぜならあなたではないからです。ルーティング仮想マシンと外部世界間のトラフィック。ブリッジング。したがって、ブリッジされたトラフィックにもルールをbr_netfilter
適用できます。iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
これで、物理ホスト 10.6.6.100 は VM 10.6.6.6 に SSH で接続できますが、VM はどこからでもポート 22 への SSH 接続を確立できません。同じネットワークセグメント内の他のホストの場合も同様です。
詳しくはこちらをご覧くださいebtables
。https://ebtables.netfilter.org/index.html
具体的にbr_netfilter
有効にする方法は次のとおりです。https://ebtables.netfilter.org/documentation/bridge-nf.html