![IPtables チェーン番号の永続性 - 最初のルールを一番上に維持するにはどうすればよいですか?](https://rvso.com/image/1646009/IPtables%20%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E7%95%AA%E5%8F%B7%E3%81%AE%E6%B0%B8%E7%B6%9A%E6%80%A7%20-%20%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E4%B8%80%E7%95%AA%E4%B8%8A%E3%81%AB%E7%B6%AD%E6%8C%81%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
まとめ
IPtables でチェーンの先頭にルールを保持する方法を理解しようとしています。カスタム チェーンを (ルールとして) INPUT チェーンの先頭、つまりチェーンの最初のルールとして保持したいと思います。
設定
- カスタムチェーン(INPUTチェーンの一番上に保持したい)
- fail2ban は禁止のステータスに基づいてチェーンを生成(作成および削除)します
現在の動作:
カスタム チェーンを設定するときに、それをルール番号 1 として設定できます。ただし、時間の経過とともに fail2ban が変更されると、カスタム チェーンは INPUT チェーンの下位に移動されてしまいます。
助けてくれてありがとう!すでに回答されている場合は申し訳ありません。残念ながら、提案された質問では見つけることができませんでした。
答え1
Fail2banによるこれ行 (たとえばiptables-multiport
) は、チェーンの最初の場所にルールを追加しますINPUT
。これは通常、この行に補間されます (例: 単純な sshd jail、IPv4 など)。
# <iptables> -I <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd
したがって、これを行うには 2 つの可能性があります。
- 別のチェーン(例
F2B
)を作成し、INPUTの最初のチェーンの後に追加し、fail2ban configでINPUTの代わりにその名前を指定します。たとえば、新しいチェーンを作成します。ローカルchain
すべての fail2ban チェーンを独自のものに上書きします。
[Init]
chain = F2B
jail.local
または、たとえばデフォルトのセクションまたは jail ごとに、その名前を指定します。
[DEFAULT]
banaction = %(known/banaction)s[chain=F2B]
banaction_allports = %(known/banaction_allports)s[chain=F2B]
- チェーンに独自のルール番号 (デフォルトは 1) を指定します。したがって、チェーンを に設定する代わりに
F2B
、chain = INPUT 2
ローカルの共通構成で使用するか、次のようにしますjail.local
。
[DEFAULT]
banaction = %(known/banaction)s[chain="INPUT 2"]
banaction_allports = %(known/banaction_allports)s[chain="INPUT 2"]
この場合、fail2ban は上記の追加ルール (sshd jail 用) を次のように補間します。
- iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd
+ iptables -I INPUT 2 -p tcp -m multiport --dports ssh -j f2b-sshd
どちらの場合も、チェーンF2B
と独自のチェーンがすでに iptables に追加されていることを確認してください (変更が行われた後に fail2ban が開始されます)。