我正在configuration我的web服务器上的fail2ban。 我的Web服务器在ELB后面。 所以我configuration了X转发来获取Apache Access日志中的真实IP。但不幸fail2ban在访问日志中启用x转发时无法扫描访问日志。这是我的回归条件
failregex = ^<HOST> -.*\"(GET|POST).*
而bellow是我的logformat,当x转发启用
10.0.2.18 (42.104.63.31) - - [01/May/2014:16:05:39 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14"
你的问题的一部分是,你正在拔出错误的<HOST> 。 你的^<HOST>会在开始时find一个<HOST> ,例如10.0.2.18,当我猜你真正想要的是42.104.63.31。 你可以通过告诉fail2ban来寻找<HOST> inside ()例如
failregex=\(<HOST>\) -.*(GET|POST)
这似乎与您的日志片段运行fail2ban-regex时运行
fail2ban-regex logsnippet '\(<HOST>\) -.*(GET|POST)' Running tests ============= Use failregex line : \(<HOST>\) -.*(GET|POST) Use log file : logsnippet Results ======= Failregex: 1 total |- #) [# of hits] regular expression | 1) [1] \(<HOST>\) -.*(GET|POST) | 42.104.63.31 Thu May 01 16:05:39 2014 `-
现在它可以读取客户端的IP,但一次又一次地得到这个警告。 <28> fail2ban.filter:警告无法find相应的IP地址 –