
Basado en estorepositorioQuiero usar filtros fail2ban para analizar mis registros de nginx y prohibir solicitudes e IP sospechosas.
En mi servidor estoy usando un formato de registro personalizado para nginx. Debido al hecho de que estoy alojando varios sitios, los archivos de registro tienen la siguiente estructura.
log_format custom_format '$server_name $remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'
¿Qué generará una entrada de registro como esta?
www.example.com 62.210.129.246 - - [24/Aug/2018:11:07:46 +0200] "POST /wp-login.php HTTP/1.1" 301 185 "http://example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" "-"
Debido al hecho de que estoy agregando server_name delante de remote_addr, el <HOST>
grupo de expresiones regulares (fail2ban resuelve que esto (?:::f{4,6}:)?(?P<host>\S+))
no coincida. No estoy seguro de cómo debo modificar la expresión regular para que coincida con mi formato de registro.
¿Algunas ideas?
Respuesta1
Honestamente, no desperdicies tu CPU, los "WebExploits" en realidad son solo ruido de fondo. Usar fail2ban para reducir los blogs en realidad no proporciona un beneficio de seguridad.
Si realmente es necesario, colóquelo $server_name
después de $remote_addr -
en el formato de registro nginx que coincida con la noción (no) de expresiones regulares de WebExploits.
Alternativamente reemplace ^<HOST>
su expresión regular con ^[^ ]* <HOST>
. Esto significa hacer coincidir caracteres que no sean espacios, seguidos de un espacio, seguido de<HOST>