OpenBSDでpfを使用してIPアドレスの誤用を防ぐ方法は?

OpenBSDでpfを使用してIPアドレスの誤用を防ぐ方法は?

nginxログを見ると、不快なことをするIPアドレスがあることがわかります。

コマンドを使用してどのようにブロックし、pf次にを使用して永久にブロックできますか/etc/pf.log?このIPをどのようにブロックできますかx.x.x.x/24?例: 1.2.3.4

更新:いいえ、OpenBSDには/ etcに許可/拒否ファイルがないようです。私が知る限り、IPアドレスの誤用を防ぐための最善のアドバイスはpfを使用することです。

# cd /etc 
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 amd64
# 

ベストアンサー1

これを行う最善の方法は、テーブルを定義し、次のようにホストをブロックするルールを作成することですpf.conf

table <badhosts> persist
block on fxp0 from <badhosts> to any

次に、IPアドレスを動的に追加/削除します。

$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4

他の「テーブル」コマンドにはflush(すべて削除)replaceと詳細showが含まれますman pfctl

より永続的なリストが必要な場合は、ファイルとして保存できます。存在するpf.conf

table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any

IPアドレスの代わりにホスト名を追加することもできます。man pf.confとの「テーブル」セクションを参照してくださいman pfctl

ノート:上記の例では、インターネット接続インターフェイスを想定していますfxp0。設定に従って変更してください。また、の規則はpf.conf順次評価され、blockorpass規則の場合は最後の一致規則が適用されます。このルールセットを使用すると、

table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80

badhostsテーブルに1.2.3.4と192.168.0.10を追加した後

$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10

1.2.3.4および192.168.0.10のすべてのトラフィックは、2番目のホストを除いてブロックされます。〜するpassそのルールはそのルールと一致して上書きされるため、他のシステムのポート80に接続できますblock

おすすめ記事