IPアドレスのリストをIP範囲にグループ化するツール[非公開]


2

現在、異なるIPアドレスからのHTTPリクエストで溢れているWebサイトの世話をしていますが、すべて同じユーザーエージェント文字列を使用しています

ログファイルをgrepし、1行に2696個の一意のIPアドレスすべてを含むファイルを作成しました。20個ごとに見えるIPは同じIP範囲に属します。つまり、1番目、2番目、および3番目のオクテットは同じです

これらのIPをグループ化して、各IP範囲のリストを表示する方法はありますか?ある種のコマンドラインウィザードまたはツールを使用してIPをドロップし、出力としてIP範囲を取得できますか?

編集:

たとえば、24個のIPアドレス104.140は、3つの異なる第3オクテットで始まります。8個のIPがで始まり104.140.183、別の8 個のIPが始まり104.140.211、最後の8 個のIPが始まる104.140.4

ファイアウォールマネージャーを使用すると、ネットワークプレフィックス長でIP範囲をブロックできます。また/24/32

私は出力がどうあるべきかを知るためにサブネット化について十分に知りませんが、私はA)そこにいくつの異なる範囲があるかを見て、B)理想的には、ファイアウォール


いくつかの実際の行と必要な結果の例
-jcbermu

これを解決できるオプションと場所は複数あります。fail2banはそれらのオプションの1つです。セットアップについてもう少し教えてください(例:OS、Webサーバー、ファイアウォールなど)。また、Windows、Linuxコマンドラインなどの実用的な答えを提供する必要があります...どのツールを知って使用していますか?今までに何を試しましたか?awkを読んでみてください。解決策を見つけたら、oenの質問に答えてください
-agtoever

@agtoever OSは、リバースプロキシサーバーとしてnginxを使用するApache 2.2.15を実行する「SLES拡張サポートプラットフォームリリース6.6」として自身を報告します。ファイアウォールは、「Cisco ASAの5505秒+」デバイスである
アンディ・

104.140.211と言いましたか?さて、104.140.211のARINの結果には、アドレスの割り当て先に関する情報と、悪用を報告するリクエスト(およびそのためのURL)を含むコメントが含まれています。そのページの右上隅にある「WhoisRWSを検索」ボックスは、他のIPアドレスを確認するために使用できるものです。
TOOGAM

回答:


5

わかりました、私はこれがあなたのために働くかもしれないと思う-あなたがawkをインストールしていて、IPアドレスがip.txtにあると仮定すると:

cat ip.txt | awk 'BEGIN { FS = "." } ; { printf("%s.%s.%s\n%s.%s.%s.%s\n", $1, $2, $3, $1, $2, $3, $4) }' | sort | uniq -c | sort -rn

少し説明:

  • catはファイルを出力します
  • awkはIPアドレスを4つの変数に分割し、/ 24と/ 32の両方のip範囲を出力します
  • sortはIPアドレスをソートするので、カウントできます
  • uniqはそれらをカウントし(-cオプションのおかげ)、IPアドレスの前に周波数を置きます
  • sortは、頻度カウントの降順(-r)でそれらを置きます(-nは文字列ではなく値を解釈します)

/ 32と/ 24の範囲が表示されていることに注意してください。/ 24の範囲のうち/ 32だけが必要な場合は、printfステートメントを調整します(したがってprintf("%s.%s.%sn", $1, $2, $3)、/ 24 printf("%s.%s.%s.%s\n", $1, $2, $3, $4)のみを印刷し、/ 32のみを印刷します。


素晴らしいもの。そのコマンドからの出力に基づいて、24の異なる範囲をブロックし、すべてのIPからのHTTP要求を完全に停止したように見えます:)
Andy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.