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

答え2

ブロックする悪意のあるホストの物理テーブルを作成する必要があることは、他の答えでは明確ではありません。

これは 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に一時アドレスを追加できるようになりました。 (悪いホストではなくテーブル名です)

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

答え3

この情報はウェブサイトから得られた情報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
    

関連情報