Como posso bloquear o acesso IP direto ao meu servidor web sem código de erro de resposta?

Como posso bloquear o acesso IP direto ao meu servidor web sem código de erro de resposta?

Espero que as pessoas possam me ajudar com esta questão.

Exemplo:

Meu nome de domínio é: exemplo.com

Meu endereço IP é 103.103.103.103

Quando as pessoas tentam se conectar ao meu IP na porta 80. Ele não responderá a nenhuma solicitação.

Deve mostrar: conectando (no navegador)... sem resposta. (Parecerá que não foi possível conectar)

Tentei modificar o httpd.conf (estou usando o Apache 2.4), mas ainda não obtive sucesso.

Tentei pesquisar no Google, mas não há resultado para minha pergunta.

Obrigado

Responder1

Supondo que você queira que as solicitações sejamhttp://exemplo.compara servir seu site e solicitações parahttp://103.103.103.103para ser descartado explicitamente, você tem duas opções principais que eu conheço.

1) é usarmod_segurançamódulo e o dropdestino. Uma configuração 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>

retorna o site, se você acessarhttp://exemplo.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’

e se você tentar acessar o site padrão via 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.

A conexão foi interrompida

2) A segunda opção é usar o stringmódulo paratabelas de ipe descartar conexões com uma correspondência de cabeçalhoHost: 103.103.103.103

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

(Eu não testei as regras do iptables... então você teria que verificar os documentos para o encantamento correto...) No entanto, acho que a opção mod_security é mais simples

informação relacionada