lxc-containerでiptablesを実装する方法は?

lxc-containerでiptablesを実装する方法は?

Ubuntu 18.04システムにlxc-container(fedora 29 amd64)をインストールしました。 Linuxコンテナにはファイアウォールコマンドラインツールはありません。だから私はコンテナにiptablesをインストールし、正常にインストールされました。

しかし、入って来るすべてのパケットをドロップするようにインターフェイスを設定しようとしましたが、うまくいきませんでした。ここですべての詳細をお知らせします。

コマンドがip \a発行されました。

[root@fedora29~]# ip\a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue status UNKNOWN グループデフォルト qlen 1000
    リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 スコープホスト lo
       常に valid_lft 常に優先_lft
    inet6::1/128 スコープホスト
       常に valid_lft 常に優先_lft
7: eth0@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト qlen 1000
    リンク/エーテル 00:16:3e:4c:d8:bf brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.3.52/24 brd 10.0.3.255 範囲グローバル動的 eth0
       valid_lft 3456秒 Preferred_lft 3456秒
    inet6 fe80::216:3eff:fe4c:d8bf/64 範囲リンク
       常に valid_lft 常に優先_lft

私のiptablesルールは次のとおりです。

[root@fedora29 ~]# iptables -L
チェーン入力(ポリシー承認)
ターゲット保護の選択ソースターゲット         

チェーン転送(ポリシー承認)
ターゲット保護の選択ソースターゲット         

チェーン出力(ポリシー承認)
ターゲット保護の選択ソースターゲット    

だから、次の2つのルールを追加しました。

iptables --table filter --append INPUT --in-interface eth0@if8 --jump DROP
iptables --table filter --append OUTPUT --out-interface eth0@if8 --jump DROP

最後に設定を保存すると

iptables - 保存

[root@fedora29~]# iptables-save
#2019年2月20日水曜日08:41:43にiptables-save v1.8.0によって作成されました
*フィルター
:入力承認[0:0]
:転送を受け入れる[0:0]
:出力を許可[0:0]
-A 入力 -i eth0@if8 -j 削除
-A 出力 -o eth0@if8 -j 廃棄
犯罪
#2019年2月20日水曜日08:41:43完了

ただし、インターフェイス名がlxcbr0のUbuntuホストシステムでは正しく機能します。

ベストアンサー1

@if8インターフェイス名の一部ではないため、ルールのインターフェイス名から削除するだけです。インターフェイス名はeth0

@if8接続されたピアインターフェイスの手がかりで動的です。たとえば、コンテナを再起動した後に変更されることがあります。

あなたの意味についてもっと知りたい場合は、@if8私の答えを読んでください。
Ubuntuの「ip address」コマンド出力で、インターフェース名の「if1@if2」とはどういう意味ですか?

おすすめ記事