Como rejeitar solicitações com o apache que não correspondem à lista de vhosts

3

Estou recebendo uma grande quantidade de solicitações para meu aplicativo da web para ips sem um host e hosts que não correspondam a nada que eu geralmente forneço.

Eu encontrei uma pergunta do stackoverflow relacionada a isso, mas Não tenho certeza onde colocar essa configuração do apache (ou se é algo que eu preciso adicionar às minhas configurações: 80 e: 443 separadamente).

Aqui está o que eles mostram para referência. Nota: isto parece suportar apenas um único host, como posso fazer isso para 2 ou 3 hosts?

SetEnvIfNoCase Host example\.com VALID_HOST  
Order Deny,Allow
Deny from All
Allow from env=VALID_HOST
    
por Toran Billups 19.01.2014 / 22:40

2 respostas

1

Mod_Security pode ser o que você está procurando. As regras padrão bloqueiam esse tipo de solicitação, aqui está um exemplo de reconhecimento sendo bloqueado em meus logs de depuração:

Mensagem: acesso negado com o código 403 (fase 2). Correspondência de padrões "^ [\ d.:]+$" em REQUEST_HEADERS: Host. [arquivo "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_21_protocol_anomalies.conf"] [linha "98"] [id "960017"] [rev "2"] [msg " O cabeçalho do host é um endereço IP numérico "] [data" 1.2.3.4 "] [gravidade" AVISO "] [ver" OWASP_CRS / 2.2.6 "] [maturidade" 9 "] [precisão" 9 "] [tag" OWASP_CRS / PROTOCOL_VIOLATION / IP_HOST "] [tag" WASCTC / WASC-21 "] [tag" OWASP_TOP_10 / A7 "] [tag" PCI / 6.5.10 "] [tag" link "]

    
por 19.01.2014 / 22:47
0

Você pode usar o recurso NameVirtualHost, definir um primeiro VirtualHost (normalmente, nomeio-o com o mesmo nome de host do sistema - se diferente do que está sendo usado no aplicativo da Web - ou com seu IP numérico). Deixe estar vazio e possivelmente Deny from All .

Em seguida, defina outro VirtualHost com o nome de host correto que deve ser usado para seu site / aplicativo e deixe que ele faça seus negócios.

    
por 19.01.2014 / 23:06