Nginxログから、厄介なことをしているIPアドレスがあることがわかります。
pf
コマンドでブロックし、その後/etc/pf.log
で永続的にブロックするにはどうすればよいですか?そのIPのx.x.x.x/24
をどのようにブロックできますか?例です:1.2.3.4
更新:いいえ、OpenBSDの/ etcにallow/denyファイルがないようです。また、不正なIPアドレスをブロックするための最善のアドバイスは、pfを使用することです。
# cd /etc
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 AMD64
#
これを行う最良の方法は、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
をご覧ください。
より永続的なリストが必要な場合は、1つ(または複数)のファイルに保存できます。 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
またはpass
ルールの場合は、最後に適用されるルールが適用されることに注意してください。このルールセット
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
そして1.2.3.4と192.168.0.10をbadhosts
テーブルに追加した後
$ 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番目のホストwillは、pass
ルールが一致するため、他のマシンのポート80に接続できますblock
ルールをオーバーライドします。
ブロックしようとしているbadhostsの実際のテーブルを作成する必要があるかどうかは、他の回答からは明らかではありません。
これはpf.confファイルに含まれます。たとえば、2つのbadguysファイルがあり、1&2 badguys1は行き来する人のためのもので、badguys2は永続的なブラックリストのためのものです。
したがって、一定期間迷惑である誰かのIPを追加する必要がある場合は、それらをbadguys1に追加します。
これで、pf.confファイルに次のようになります。私の例では、それが私のWiFiインターフェースであるため、en1を使用します。これを、ネットワークが接続するインターフェイスに設定します。
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on en1 from <badhosts> to any
これで、badguys1に一時アドレスを追加できます。 (badhostsではなく、それはテーブルの名前です)
Sudo pfctl -t badguys1 -T add 185.130.5.160
1 table created.
1/1 addresses added.
1つのテーブルが作成されたと表示されていますが、実際には新しいテーブルを作成せずに、IPを追加します。これでbadguys1を見ると、新しいIPが表示されています。
Sudo pfctl -t badhosts -T show
私はこの情報をウェブサイトから入手し、OpenBSD
についての私の知識の悪さを許してしまいましたが、それはここにあります。これを見てください [〜#〜] url [〜#〜] 。それによると、IPをブロックすると述べています:
echo '123.123.123.123' >> /etc/pf.blocked.ip.conf
次に、ファイアウォールを再起動します。
pfctl -d
pfctl -e -f /etc/pf.conf
または、ファイアウォールを再起動せずに追加するには、次のように入力します。
pfctl -t blockedips -T add 111.222.333.444
追加されたかどうかを確認するには、次のように入力します。
pfctl -t blockedips -T show
更新:多分これは役立つでしょう。
次のファイルをviで開きます。
vi /etc/pf.conf
次のコード行を追加します。
table <blockedips> persist file "/etc/pf.blocked.ip.conf" ext_if="bge0" # interface connected to internet
その後、ファイアウォールを再起動し、次のように入力してIPがブロックされていることを確認します。
pfctl -d
pfctl -e -f /etc/pf.conf
pfctl -t blockedips -T show