it-swarm.dev

Le migliori pratiche per la protezione avanzata di Apache Server?

Quali sono alcune best practice, raccomandazioni e letture richieste per proteggere un server Apache?

104
Eric Warriner

Prendi la guida del Center for Internet Security (CIS) per proteggere Apache (descrive in dettaglio come migliorare la sicurezza):

Modifica: collegamento aggiornato CIS Apache HTTP Server 2.2.x Benchmark

Se hai una licenza per Nessus , puoi eseguire un controllo automatico afferrando il loro modello di controllo:

alt text

31
Tate Hansen
  • Usa accessi basati su chiave SSH
  • Proteggi MySQL
  • Disabilita phpMyAdmin, webmin, ecc
  • Chiudi tutte le porte/i processi che non sono necessari
  • Utilizzare un controllo di integrità dei file
  • Usa mod_security
  • Impostare le autorizzazioni/i gruppi corretti

Questa è una buona guida:
https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server

Guida di base per la tempra: http://www.wpsecure.net/server-guide/

Se stai utilizzando php: http://www.madirish.net/?article=229

Trova 404 (o altri codici di stato) nel registro di Apache
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

12
Wyck

La risposta inizialmente molto votata a questa domanda che è stata accettata è stata eliminata perché era un plagio diretto di 20 modi per proteggere la configurazione di Apache . Quella pagina è una risorsa fantastica.

@RoryMcCune ha anche pubblicato questo come link su quella risposta: esiste un progetto OWASP per sviluppare un ModSecurity Core Rule Set qui che potrebbe essere utile.

7
Jeff Ferland

Ci sono molti buoni consigli qui, quindi non ripeterò le cose già menzionate. Ma quello che dirò è:

Non dimenticare di sostituire le pagine di errore predefinite con elementi che non danno via la tua versione del server Web o la revisione del kernel. Tendo a sostituire ogni html predefinito con 1 fodere simili a "Errore 400". Dà molto poco del sistema. Questo principio si applica a tutti i server Web in grado di visualizzare pagine di errore personalizzate, praticamente tutte predefinite nel fornire troppe informazioni del necessario. Penseresti che ServerSignature lo nasconderebbe, ma in molti casi no.

Inoltre, non dimenticare di eliminare tutto il contenuto HTML predefinito (specifico della lingua, ecc.), Quindi l'impronta digitale è molto più difficile.

Per quanto riguarda le buone letture, c'era un white paper da Apcon 2008 che vale la pena leggere.

Mod_Security è menzionato alcune volte, questo è più adatto alle applicazioni web, quindi se stai offrendo solo contenuti statici, non ti aiuterà anche molto, anche se ci sono alcuni attacchi che aiuta a difendersi durante la gestione delle richieste che potrebbero influenzare un Web Server statico.

L'altra cosa che vorrei menzionare è una buona gestione dei registri, se non si stanno togliendo i tronchi e tenendo d'occhio il sistema si corre il rischio che un attaccante lo colpisca senza accorgersene.

6
Ori

Si applicano tutti i principi generali di sicurezza: esegui solo i moduli di cui hai bisogno, disattiva le funzionalità che non ti servono, riordina le tue autorizzazioni/proprietà (la maggior parte dei contenuti sono di sola lettura, quindi perché i file hanno bisogno di qualcosa di più di 400 permanenti?).

Le cose che sono particolari di Apache, come i lavori CGI o vhosts diversi che distribuiscono lo stesso contenuto due volte con due diversi meccanismi di sicurezza su di essi, sono molto più difficili da individuare; non esattamente un controllo automatico, devi effettivamente conoscere Apache, il sistema operativo sottostante e cosa stanno facendo le applicazioni in esecuzione in Apache.

Per completezza ecco un Apache 2.2 Security Checklist da DISA. AGGIORNAMENTO: ecco un link al loro intera raccolta di documenti di protezione del server web.

6
Marcin

Potrebbe valere la pena dare un'occhiata ad Apache mod_security .

Ultimamente ho provato alcuni dei miei server non solo esegue alcune modifiche di configurazione su Apache stesso come cambiare il numero di versione ecc., Ma funge anche da firewall per applicazioni Web che aiuta a proteggere da un'ampia varietà di attacchi come SQL iniezione ecc.

4
Mark Davidson

Come posso proteggere Apache Web Server

Quale risposta ti aspetteresti se ti chiedessi "Come faccio a volare un jumb-jet" o "Come faccio a fare un intervento chirurgico al cervello" - lo stesso vale per rendere sicuro un server web - devi fare migliaia di ore di formazione, pratica e ricerca . Ma dal momento che tutti devono iniziare da qualche parte ...

Ci sono molte liste di controllo di base su Internet su come rafforzare un server - ma secondo il mio commento altrove variano notevolmente in termini di qualità .

Consiglierei il sans one come una buona fonte.

Dopo aver seguito l'elenco di controllo, è necessario stabilire i mezzi con cui è possibile

  • verifica l'integrità del tuo server (hai sicuramente bisogno di un ID basato su Host come tripwire insieme a un rilevatore di rootkit)
  • essere consapevoli e applicare le patch
  • ripristinare il sistema a un buono stato noto

Non pianificare il modo in cui gestisci un incidente di sicurezza se accade. Pianifica cosa fare quando succede.

Dopo aver configurato e configurato il sistema, quindi sostituire il disco rigido e vedere quanto tempo è necessario per avviare nuovamente il servizio senza utilizzare il disco originale.

2
symcbean

questo non è solo relativo ad Apache (e conta anche per nginx + php-fpm), ma spesso dimenticato: php-eastereggs, che potrebbe essere cambiato tramite php.ini

  expose_php = off

non è terribile come lasciarsi alle spalle un phpinfo.php, ma di solito è un suggerimento per l'amministrazione del sistema molto pigra.

vedi ova di pasqua

Buon filo girato. Molte persone dicono la verità.

Hanno dimenticato uno, OpenBSD 's way:

In OpenBSD, il server httpd (8) di Apache è stato sottoposto a chroot (2) per impostazione predefinita

httpd (v.1 di Apache) incluso in OpenBSD per impostazione predefinita e chroot per impostazione predefinita.

Puoi ripeterlo facilmente con Apache2 o nginx su qualsiasi altro sistema operativo simile a Unix.

0
user29424

Usa l'ultima versione di Apache, patch il tuo sistema operativo e anche di terze parti come openssl o qualsiasi altra.

Blocca le porte indesiderate.

Questo ti proteggerà da alcune vulnerabilità conosciute, ma sarai sempre suscettibile a 0 giorni, ovviamente.

0
Novice User

Ecco 6 passaggi chiave:

  1. Proteggi il tuo codice dell'applicazione
  2. disabilita tutti i moduli non utilizzati. Prova a disabilitare tutto, quindi, uno ad uno, aggiungi i moduli.
  3. rimuovere tutti gli script e i file di backup nella cartella Web.
  4. disabilita l'elenco delle directory
  5. usa modsecurity per proteggere la tua applicazione dagli attacchi a livello di applicazione.
  6. Utilizzare Fail2ban per attivare errori HTTP (403, 404).

Non fare affidamento sul firewall di rete, è inutile quando si parla di sicurezza Web.

0
Mike