Yocto LinuxのIptablesとfailure2ban

Yocto LinuxのIptablesとfailure2ban

組み込みYocto-Linuxにiptablesとfailure2banをインストールしました。 Fail2banの場合は、次のコマンドを設定してください。

iptables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-NoScript

このエラーがあります。

iptables v1.8.4 (legacy): Couldn't load match `multiport':No such file or directory

ただし、ライブラリマルチポートは次のパスに存在します。

/usr/lib/xtables/libxt_multiport.so

どんな提案がありますか?他のオプションを使用してiptablesレシピを構築する必要がありますか?

答え1

iptables v1.8.4(レガシー):一致する「マルチポート」をロードできません。そのファイルやディレクトリはありません。

/usr/lib/xtables/これは、関連する.soライブラリ(通常はロードしない)をロードできないため、iptables用のマルチポートモジュールがないことを意味します/usr/lib/iptables/。 「マルチポート」モジュールに何が必要かを確認するために
呼び出すことができます...man iptables

「レガシー」と書かれているので、おそらく別の主要なネットワークフィルタリングサブシステム(おそらく単にiptablesエミュレートされている)があるので、iptablesの代わりに直接使用できます。

たとえば、nftables(sudo nft -vバージョンで応答)の場合は、デフォルトセクションでこれを指定できますjail.local(そしてpass2banを再起動します)。

[DEFAULT]
# banaction = nftables-multiport
banaction = nftables[type=multiport]
# banaction_allports = nftables-allports
banaction_allports = nftables[type=allports]

ただし、この場合、iptablesは主に書き込みで(nf_tables)はなく書き込みを実行します。(legacy)

したがって、異なる場合があります。この場合、システムが主に使用するネットワークフィルタが何であるかを確認し、適切なフィルタを選択します。禁止された行為または自分で書いてください。

役に立たない場合、または適切なアクションが見つからず、システムがマルチポートをサポートしていない場合は、allportsアクションを試してください。

[DEFAULT]
banaction = iptables-allports
banaction_allports = iptables-allports

(この場合、刑務所に設定されているポートに関係なくIPを完全に禁止するため、誤った肯定やhttp側などのいくつかのテスト試行によってすべてのポートのIPが禁止される可能性があります。手動でブロックを解除するには、このIPからSSH経由で接続してください。

答え2

解決策が見つかり、次のオプションを使用してカーネルを再コンパイルしました。

CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y

関連情報