In Apache, come faccio a distriggersre l'accesso a un sito web quando qualcuno utilizza solo l'indirizzo IP in un browser web?

Sto utilizzando il server Web apache su CentOS e devo distriggersre la possibilità per le persone di accedere al sito web utilizzando l'indirizzo IP del server in un browser web. Lo voglio in modo che quando qualcuno tenta di navigare all'indirizzo IP, ottengono un messaggio di errore proibito.

Quali configurazioni sarebbero necessarie per farlo?

  • Più "ServerName" per VHost?
  • Apache deve sapere sui certificati intermedi per l'authentication client?
  • "/etc/apache2/httpd.conf: Nessun file o directory" errori dopo l'aggiornamento di Ubuntu
  • Arrestare la risposta SSL predefinita su IP condiviso utilizzando SNI
  • Utilizzo random dell'alta CPU in Linux usando Apache
  • Problemi di authorization FTP e Apache
  • authentication gitlab usando la variabile di ambiente HTTP_REMOTE_USER
  • Come posso scoprire quale port fisica corrisponde l'indirizzo MAC di etersvi su un switch Cisco?
  • Apache: richiesta insicura inviata per proteggere la port ... desidera redirect
  • Server e Dashboard di networking
  • Queste impostazioni Apache "aumentano le performance" e / o "impediscono un eccessivo consumo di risorse"?
  • Perché ICMP è classificato come protocollo di livello 3?
  • 4 Solutions collect form web for “In Apache, come faccio a distriggersre l'accesso a un sito web quando qualcuno utilizza solo l'indirizzo IP in un browser web?”

    Basta impostare l'host virtuale predefinito. Esiste un esempio commentato in httpd.conf o fa qualcosa di banale come:

     <VirtualHost *:80> ServerName localhost DocumentRoot /var/www/html </VirtualHost> 

    È ansible get questo con mod_rewrite (nel file .htaccess o nel context predefinito del server o in un VirtualHost separato in cui il nome di server è l'indirizzo IP dell'host):

     RewriteEngine On RewriteCond %{HTTP_HOST} 1.2.3.4 # Replace with your own IP address RewriteRule .* - [F] 

    Ciò spiega che se l'intestazione HTTP_HOST corrisponde all'indirizzo ip 1.2.3.4, allora qualsiasi richiesta deve essere soddisfatta con un 403 Forbidden . Qualsiasi richiesta che abbia un'altra intestazione HTTP_HOST (ad esempio una con il nome di dominio effettivo piuttosto che l'indirizzo IP) non dovrebbe essere compromise.

    Non è ansible bloccare l'accesso diretto tramite IP. È necessario consentire la connessione, ma decidere cosa fare con esso. Questo potrebbe essere restituito un 403, un 404 o reindirizzarli alla pagina desiderata. Puoi farlo con mod_rewrite.

      RewriteEngine On RewriteCond %{HTTP_HOST} ^123\.123\.123\.123 RewriteRule ^(.*)$ - [F,L] 

    Questo corrisponderà all'intestazione HOST HTTP passata dal client Web. Tutte le altre richieste passerebbero.

    Tuttavia, si potrebbe desiderare di normalizzare i tuoi URL per scopi SEO.

    Con questo approccio si riscrive tutto ciò che non corrisponde al risultato desiderato.

     RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC] RewriteCond %{HTTP_HOST} !^$ RewriteCond %{SERVER_PORT} !^80$ RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R] 

    Riferimento: https://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#canonicalurl

    Riferimento: http://en.wikipedia.org/wiki/URL_normalization

    Questa soluzione non copre tutti i casi.

    Sostituisci un numero o un punto nell'URL IP per il relativo% ## per esempio 1 per% 31 … 8 per% 38 e arriverai all'ID, non sull'URL del dominio.

    Supponiamo che questo IP difettoso, utilizzato per facilitare la spiegazione: 123.45.6.789

    È necessario utilizzare le 2 alternative per tutte le cifre e punti: il punto è% 2E e 0..9 sono% 30 ..% 39

     RewriteEngine on RewriteCond %{HTTP_HOST} (1|%31)(2|%32)(3|%33)(\.|%2E)(4|%34)(5%35)(\.|%2E)(6|%36)(\.|%2E)(7|%37)(8|%38)(9|%39) RewriteRule . - [F] 

    Ugly, può essere ridotto con {1,3} e limitato a IP valido ma come è per il tuo IP, non c'è bisogno di farlo.

    Non dimenticare le porte come ": 80". HTTP_HOST lo contiene e SERVER_NAME non è affidabile.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.