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
順次評価され、block
orpass
規則の場合は最後の一致規則が適用されます。このルールセットを使用すると、
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
。