速くて汚い

速くて汚い

私の/etc/rc.firewallファイルには、攻撃者のDDoSers IPを禁止するために作成した次の追加行が含まれています。

${fwcmd} add deny ip from 122.228.19.80/24,\
                          185.234.219.65/24,\
                          92.118.38.57/24,\
                          185.36.81.143/24,\
                          141.98.10.137/24,\
                          45.125.66.144/24,\
                          185.100.87.190/24,\
                          45.142.195.6/24,\
                          45.143.223.52/24,\
                          103.7.10.131/24,\
                          52.178.192.68/24,\
                          80.82.77.33/24,\
                          164.68.112.178/24,\
                          81.95.5.34/24 to any

リストは毎週劇的に増加しています。テキストファイルを作成するにはどうすればよいですか?ipfwこのIPはそこから直接入手できますか?最も簡単な方法は何ですか?

PS:理由が見つかりません隠れる/ mask上記のIPは実際にランダムに埋め込まれたログファイルなので、通常のユーザーはまったくありません!他の人もこれを知ってブロックするのが役立ちます:)

オペレーティングシステム:FreeBSD 12.1

ベストアンサー1

速くて汚い

すべての設定はipfwコマンドを実行して実行されますipfw。あなたの場合は梱包されて${fwcmd}いますパラメータの置換(望むよりシェル (0)段落Parameter Expansion)。その後、これをシェルスクリプト(一部の追加ヘルパー機能を含む)/etc/rc.firewallとして処理できます。sh

もしそうなら、とても簡単です。

cat list.txt | xargs -I BANIP ${fwcmd} add deny ip from BANIP to any

ファイルはlist.txt次にパイプされます。パラメータコマンドを設定します。list.txt各行にはIPアドレスまたはサブネットを含める必要があります。

例:

122.228.19.80
185.234.219.65
92.118.38.57/24
185.36.81.143/24

静かな

${fwcmd}あなたの質問から拡張が何であるかわかりません。これは簡単かもしれませんipfw。スクリプトで使用するには、以下を使用するのが最善ですipfw -q(参照ipfw(8)) より堅牢にします。追加時にテーブルを作成し、同じアドレスを2回追加することを正常に処理します。

シート

上記のように、複数のdenyルールを追加するのは少し混乱します。テーブルに入れてテーブルに基づいてルールを作成すると、はるかにきれいになります。

まず、テーブル#1を作成して入力します。

ipfw -q table 1 add 122.228.19.80
ipfw -q table 1 add 185.234.219.65
ipfw -q table 1 add 92.118.38.57/24
ipfw -q table 1 add 185.36.81.143/24

次に、ルールでこのテーブルを使用します。

ipfw add deny ip from 'table(1)' to any

list.txt次に、以前と同じ方法を使用します。その後、いつでもテーブルを更新して再ロードできます。

ipfw table 1 flush
cat list.txt | xargs ipfw -q table 1 add

上記はプレイ中にコマンドラインから実行できます。

設定スクリプトの文脈で見ると、次のようになります。

cat list.txt | xargs ${fwcmd} table 1 add
${fwcmd} add deny ip from 'table(1)' to any

周囲の「表示」table(1)は、シェルが()何らかの方法でそれを解釈しようとしないようにするためのものです。あなたは選ぶことができます脱出する彼らも同じだ。結果は同じですが、人間が読むのは少し難しいです。

${fwcmd} add deny ip from table\(1\) to any

おすすめ記事