¿Cómo puedo bloquear el acceso IP directo a mi servidor web sin un código de error de respuesta?

¿Cómo puedo bloquear el acceso IP directo a mi servidor web sin un código de error de respuesta?

Espero que la gente pueda ayudarme con esta pregunta.

Ejemplo:

Mi nombre de dominio es: ejemplo.com

Mi dirección IP es 103.103.103.103

Cuando la gente intenta conectarse a mi IP en el puerto 80, no responderá ninguna solicitud.

Debería mostrar: conectando (en el navegador)... sin respuesta. (Parecerá que no se puede conectar)

Intenté modificar httpd.conf (estoy usando Apache 2.4) pero aún no lo logré.

Intenté buscar en Google pero no hay resultados para mi pregunta.

Gracias

Respuesta1

Suponiendo que desea que las solicitudeshttp://ejemplo.compara servir su sitio web y solicitudes parahttp://103.103.103.103Para eliminarlo explícitamente, tiene 2 opciones principales que yo sepa.

1) es usarmod_seguridadmódulo y el dropobjetivo. Una configuración como esta;

    <VirtualHost *:80>
        ServerName default.only
        SecRuleEngine On
        SecRule REMOTE_ADDR "^\d" id:'1234',drop,phase:1
    </VirtualHost>

    <Directory /var/www/example.com >
      Options FollowSymLinks
      AllowOverride FileInfo Options
      Order allow,deny
      Allow from all
    </Directory>

    <VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/example.com
    </VirtualHost>

devuelve el sitio web, si vas ahttp://ejemplo.com

# wget -O-  http://example.com
--2018-03-09 15:35:35--  http://example.com/
Resolving example.com (example.com)... 127.0.0.1
Connecting to example.com (example.com)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24 [text/html]
Saving to: ‘STDOUT’

y si intentas ir al sitio predeterminado vía iphttp://127.0.0.1

# wget -O-  http://127.0.0.1
--2018-03-09 15:35:28--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... No data received.

La conexión se interrumpe

2) La segunda opción es utilizar el stringmódulo paraiptablesy eliminar conexiones con un encabezado que coincidaHost: 103.103.103.103

iptables -A INPUT -m string --string "Host: 103.103.103.103" -j DROP

(No probé las reglas de iptables... así que tendrías que revisar los documentos para ver el encantamiento correcto...) Sin embargo, creo que la opción mod_security es más simple

información relacionada