netfilterに初めてアクセスし、現在3つのインターフェイスeth0/eth1/eth2を使用するアプリケーションを実行しています。私のアプリケーションは2つのサーバーで実行されます。どちらのサーバーも、独自のインターフェース(eth0 / eth1 / eth2)を介してアクセスして互いに通信できます。
Ubuntu 18.04(カーネルバージョン4. *)では、iptablesコマンドを使用してそれら間の通信を中断します。
22.04(カーネルバージョン6.2。*)では、同じiptableコマンドを使用して2つのサーバー間の通信を中断しましたが、期待どおりに機能しませんでした(私のアプリケーションコードは同じままです)。 - 私のアプリケーションには存在を報告するメカニズムがあります。接続可能なネイバーサーバーの数 - 22.04に適用されたiptablesルールを使用すると、まだ他のサーバーに接続できることが報告されます(18.04ではそうではありません)。
2つのカーネルバージョン間でネットワークトラフィックがフィルタリングされる方法に多くの変更があることがわかります(最新バージョンにはより多くのツールがあります)。
nftablesとの衝突を避けるためにufwを削除しました。 1つの観察は、ルールを適用したときにアプリケーションがネイバーサーバーに接続できないことをしばらく報告してから、突然アクセスできるようになり、ルールを上書きしたことです。わかりません。
今、私が逃した部分を確認するためにここに助けを求めてください。
-A INPUT -s x.x.x.x/32 -d y.y.y.y/32 -i eth2 -j DROP
-A INPUT -s x.x.x.y/32 -d y.y.y.x/32 -i eth1 -j DROP
-A INPUT -s x.x.y.y/32 -d y.y.x.x/32 -i eth0 -j DROP
-A OUTPUT -s y.y.y.y/32 -d x.x.x.x/32 -o eth2 -j DROP
-A OUTPUT -s y.y.y.x/32 -d x.x.x.y/32 -o eth1 -j DROP
-A OUTPUT -s y.y.x.x/32 -d x.x.y.y/32 -o eth0 -j DROP
注:すべてのルールはチェーンに配置され、他のルールよりも優先されます。
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- xxxx yyyy
DROP all -- zzzz AAAA
DROP all -- BBBB CCCC
答え1
Ubuntu 22.04でデフォルトnftables
で使用されています。
Ubuntu 22.04 LTSの新しいセキュリティ機能は何ですか?
nftablesをデフォルトのファイアウォールバックエンドとして使用する
Linuxのファイアウォールは、Linuxカーネルのファイアウォールメカニズムと、ユーザー空間でファイアウォールを構成するために使用されるツールの2つのコンポーネントで構成されています。 Linuxカーネルは、伝統的にiptables / xtablesと最新のnftablesという2つの異なるファイアウォールポリシーサブシステムをサポートしてきました。 nftablesは、特にデュアルスタックIPv4 / IPv6システムの場合、ファイアウォールルールを作成して展開するときのパフォーマンスと柔軟性の点でかなりの利点を提供します。既存のiptablesユーザースペース管理ツールはnftablesカーネルバックエンドを構成し、既存のiptablesパラダイムでサポートされていないより柔軟なルールを作成できるようにするための新しいnftユーザースペースツールも提供されます。
iptables
ルールをnft
と で変換できます。たとえば、iptables-translate
ipt6ables-translate
iptables-translate -A INPUT -s x.x.x.x/32 -d y.y.y.y/32 -i eth2 -j DROP
iptablesに戻ります。
優先順位を表示および変更するには、次のコマンドを使用します。
update-alternatives --config iptables
出力例:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/sbin/iptables-nft 20 auto mode
1 /usr/sbin/iptables-legacy 10 manual mode
最高の優先順位を次に設定しますiptables
。
sudo update-alternatives --install /usr/bin/iptables iptables /usr/sbin/iptables-nft 30
デフォルトに設定:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
UFWとnftを無効にします。
sudo systemctl disable --now ufw
sudo systemctl disable --now nftables
sudo apt install iptables-persistent
sudo systemctl enable --now iptables