Nginx + PHP-FPM comienza a fallar después de una solicitud de pentesting sospechosa con un verbo/método http hexadecimal

Nginx + PHP-FPM comienza a fallar después de una solicitud de pentesting sospechosa con un verbo/método http hexadecimal

Mi servidor falla cada vez que un pentester molesto intenta encontrar agujeros de seguridad en mi aplicación. Veo esto en el registro de errores:

17:48:48 +0200] "\x16\x03\x01\x00M\x01\x00\x00I\x03\x03\xDBJA\xC5\xB17\xF6\xDA \xD4\xEEEg0\xE0\xF2\xF2\xC9S\xE4\xF9v}\x1E\x00\xC8\xC3d\x 80h;= \x1F\xD2\xAF?\x88\x8A\xA2\xCF\x16G\x99\x1D\x91" 400 173 "-" "-"

El servidor está configurado como un servidor nginx + php-fpm normal. El puerto 80 se redirige al 443 y SSL está configurado correctamente.

También agregué esta línea:

if ($request_method !~ ^(GET|HEAD|POST|OPTIONS|DELETE|PUT|PATCH)$) { return 405; }

(en ambas configuraciones de servidor)

Esta es también la única solicitud de "pentesting" que da como resultado un 400. Todas las demás solicitudes dan como resultado 301 o 404. Encontré un problema similar en el que la sección SSL de nginx no está configurada correctamente. Revisé mi configuración pero se ve bien.

Tengo el mismo problema en otro servidor que tiene una configuración similar y en un servidor que tiene una configuración nginx -> apache_mpm_prefork_fpm.

¿Alguna idea de qué es esto y cómo proteger el servidor para que no falle? Cómo reproducir una solicitud de pentesting (lo probé en cartero pero obtuve un resultado diferente).

Muchas gracias.

EDITAR

Descubrí cómo reproducir ese registro: https://servername:80.

Pero no puedo entender cómo bloquear este tipo de solicitudes. Lo probé con $scheme pero la solicitud está cifrada. Intenté agregar SSL a la configuración pero nada cambió. Debe haber una razón por la cual esos sitios de pentesting/exploid intentan enviar una solicitud https al puerto 80.

información relacionada