テキスト処理は、ログに頻繁に表示されるIPアドレスをフィルタリングして拒否リストに追加します。

テキスト処理は、ログに頻繁に表示されるIPアドレスをフィルタリングして拒否リストに追加します。

60秒間、私のウェブサイトのページを10回以上読み込むすべてのIPアドレスをnginxから抽出しようとしています。ただし、これはGET / HTTPnginxログのホームページ部分にのみ適用され、/var/log/nginx/access.logIPアドレスを拒否に変換する必要があります。リスト/etc/nginx/conf.d/includes-optional/deny.conf

2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31822 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31826 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31826 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31714 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31822 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31794 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31774 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31748 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31774 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31720 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31820 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
2.2.2.2 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31834 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31822 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31826 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31826 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31714 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31822 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31794 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31774 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31748 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31774 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31720 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31820 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
1.1.1.1 - - [06/Sep/2021:21:02:58 +0200] "GET / HTTP/1.1" 200 31834 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/18B92 Safari/604.1 Puffin/8.0.2LP"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"
3.3.3.3 - - [06/Sep/2021:21:13:36 +0200] "GET /image.php?xxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/175.0.393249130 Mobile/15E148 Safari/604.1"

これら2つのIPは10回以上表示され、/コマンド実行時にルートディレクトリにあるため、次の内容を追加する必要があります。/etc/nginx/conf.d/includes-optional/deny.conf

deny 1.1.1.1;
deny 2.2.2.2;

これはIPv6アドレスでも機能するはずです。

ベストアンサー1

私は小さなプロジェクトを書いたTxRこのようなことをすることをいわゆるtxrban。私は長年これを運営してきました。残念ながら文書化されていません。

プログラムapache.txrexim.txrおよびssh.txrはエントリポイントです。このプログラムは、Webサーバーログ、メールサーバーログ、およびauth.logSSHアクティビティを調べます。これらのプログラムのいずれかを複製し、apache.txr必要に応じて調整できます。

これらのプログラムは基本txrban.txrモジュールをロードし、名前を変更して編集する必要があるサンプルバージョンのみが存在しない.gitutils.txrリポジトリもロードします。config.txrconfig.txr

このstartup.shスクリプトは、起動時に3つのプロセスを開始するために使用されます。このプログラムはTXR Lispの機能を通じてdaemon独自にデーモン化され、禁止syslogおよび禁止解除イベントを報告するために使用されます。

禁止されたアドレスは持続せず、単にメモリ内のハッシュテーブルに保存されます。 (パッチウェルカム)起動時に、プログラムは既存のログを読み、すべての暗黙の禁止と禁止解除を実行し(時間がかかる場合があります)、ライブモードに切り替えてログを追跡し、新しいデータに反応します。

このconfig.txrファイルにはさまざまなパラメータがあります。

*ban-duration*ポイントベースの禁止に使用されます。ログスキャンポイントは、ゼロ以外のスコアだけでなくIPアドレスも報告できます。その住所は、*ban-duration*スコアをリストのインデックスとして使用して決定された期間中に即座に禁止されます。

パラメータ*short-period**short-limit*および*short-ban*対応するlong対応項目は、時間ベースの禁止を決定します。期間は関心のあるアクセス期間であり、この期間内の最大訪問数に制限されます。このban値は禁止期間です。 IPアドレスのアクセスパターンが長期禁止パラメータに違反している場合、そのIPアドレスは長期禁止の対象となります。そうでない場合は、短期禁止に違反するとそれに応じて禁止されます。

デフォルトプログラムはreportログをスキャンし、IPアドレス、時間、およびポイントの3つのパラメータでこの関数を呼び出して興味深いイベントを報告します。 (SSHモジュールは4番目のオプションパラメータを使用して、特定のIPアドレスからログインしようとしたユーザーIDを報告します。SSHモジュールは、複数のユーザーIDでログインに失敗したIPアドレスにペナルティを適用します。)

おすすめ記事