Fail2ban
Fail2ban 機器人搜尋失敗正則表達式不匹配錯誤日誌格式
我想禁止以下類型的機器人搜尋。但是預設的nginx-botsearch.conf不匹配這個錯誤日誌。
2019/04/19 12:42:22 [error] 1193#1193: *6 open() "/var/www/domain.com/htdocs/.well-known/dnt-policy.txt" failed (2: No such file or directory), client: 184.0.77.164, server: domain.com, request: "GET /.well-known/dnt-policy.txt HTTP/1.1", host: "domain.com"
然後我修改了預設的失敗正則表達式如下。但它與上述失敗日誌不匹配。
failregex = ^ \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>, server\: \S*\, request: \"(GET|POST|HEAD) \/".*?
我無法弄清楚哪個部分導致了這個錯誤。任何幫助表示讚賞。
只是最後一個錯字:
request: \"(GET|POST|HEAD) \/".*?
這沒有任何意義。為什麼你會逃避一個
"
但不逃避另一個,並且有兩個量詞彼此跟隨?我相信這就是你要寫的:request: \"(GET|POST|HEAD) \/.*\"
通過此更改,它確實與您的範例日誌條目匹配。下一次,使用視覺化的正則表達式編輯器(有一些基於 Web 的),它將為您節省很多時間。