組み込み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