1」を消せば、やはり3つとも通ることが確認できます。これは単に、アクセスログ出力~fail2ban検知~firewall設定まで(1秒くらい?)のタイムラグでしょう。これをログ監視で防ぐのは難しいので、止めるなら・・・WAFか?*5。変えつつ、様子を見ましょう。404の数がグッと減りました。切断」という手で様子を見ています。間に挟んで(監視ではなく中継させて)不正アクセスは切断するとか、色々できそうです。†ここからはフィルタ正規表現を足したり削ったりする作業例です。案の1つとして参考にして頂ければと思います。特定アクセスだけを止めるのか(ブラックリスト)。想定外のアクセスはすべて拒否する方針です。(次から次へと違うURLでアクセスしてくるので、ブラックリストは難しい)ちなみに、うちのサイトはPukiwikiで作っています。cgiも自分でアレンジしたもの以外は、Pukiwikiがベースです。クエリが続く、というのが基本書式です。HTTP/1.1※スペースを強調して書いています。Webサイトへ情報を渡すときに付きます。(Pukiwikiだとサイト間の移動や文字列検索など、色々使っています)一方で閲覧のみのファイル、画像ファイルとかには付きません。そこで、あくまで一例になりますが・・・ディレクトリ、ファイル名や拡張子、クエリ有無に着目するのはどうでしょうか。以下のパターンをホワイトリストの基本形とします。細かくは、のちのち調整するとして、まず試しにファイル名のリストを作ってみます。?という意味で、?は「\?」と表現します。これをアクセスログにかけてみます。以下、apacheの例です。別Webサーバの場合も流れは同じですが。軽く素振りしてみましょう。regexpでフィルタした結果を数行出してみます。応答ステータス(%s)と、リクエスト内容(%r)が何フィールド目か確認します。ステータスやリクエストがログ出力に無い場合は追加しましょう。”含まない”場合に指定、つまり除外条件指定。$3番目(ステータス)、$6~$8番目(HTTPリクエスト)を出しています。この出力結果でステータス・リクエストが無事表示できたら、更に絞り込みをかけます。'^2')を表示します。重複行を排除して表示行数を減らす為です。この出力が0件になるのが目標です。正常な通信はすべてregexp.txtに含まれる状態にします。等が抜けていることが分かりました。この出力が0件になったら、逆にリストの内容が甘くないかを確認します。'^[45]')を表示します。リストに入っていないか、確認しましょう。