Ho un server PHP Apache Debian. Voglio proteggerlo dopo il classico processo di installazione.
I miei soliti passaggi sono:
- elenca gli elementi
- aggiorna tutti i pacchetti
- rimuovi tutti i servizi non necessari come named, portmap, lwresd ...
- aggiungi uno script di iptables di avvio: blocca tutto tranne 22 e 80 all'interno e consenti a tutti all'esterno. Forza i pacchetti SYN, forza i pacchetti dei frammenti di controllo, elimina i pacchetti XMAS, rilascia Elimina tutti i pacchetti NULL, elimina l'ip locale su wan, tutto solo icmp tipo 0 e 8.
- SSH: rimuove l'autenticazione di accesso e password di root. Utilizzare invece le chiavi. Consenti solo il nome utente valido. Solo protocollo 2
- PHP:
expose_php=Off
, limita i moduli PHP a quelli usati, non mostra errori al visitatore:display_errors=Off
elog_errors=On
,allow_url_fopen=Off
,allow_url_include=Off
e rimuovi pericolose funzioni - Apache:
ServerSignature Off
,ServerTokens Prod
- Installa pacchetto aggiuntivo: fail2ban (protezione bruteforce SSH), chkrootkit (rilevamento rootkit), logwatch (cura registro giorno per giorno), munin (monitoraggio risorse), apticron (guarda per il nuovo aggiornamento)
Vedi qualcos'altro?