Quindi, mi è stato commissionato di creare un sito web, mi è stata data un'infrastruttura piuttosto grande con cui lavorare, e ho mancanza di esperienza in questo.
Quindi, come auto-promemoria sto scrivendo alcune note su ciò che ho fatto o posso fare in generale.
Che cos'è ModSecurity?
ModSecurity è un modulo Apache (anche se può essere utilizzato come autonomo), che ti aiuta a proteggere il tuo sito Web utilizzando una serie di regole. Il set più comune di regole utilizzato per impostazione predefinita è il set di regole OWASP.
È definito come un firewall dell'applicazione Web (WAF, Web Application Firewall), ovvero che analizza e filtra il traffico a livello HTTP. E questo aspetto detta i suoi punti di forza e di debolezza.
Configurarlo
C'è una descrizione dettagliata dell'installazione nel wiki del repository: qui. Ma dovrei amministratore non ricordo di usarlo, sembra troppo complicato.
Questo sembra il tipo di processo di installazione che mi piace. Che possiamo riprendere con i seguenti comandi chiave:
sudo apt aggiornamento -y
sudo apt installare libapache2-mod-security2
Sudo SystemCTL Riavviare Apache2
E questo è tutto.
Farlo funzionare
È stato un po 'meno intuitivo, richiede molta ricerca e studio per padroneggiarlo, per fortuna devo solo farlo funzionare.
Ho installato il ruleset OWASP da qui (almeno se lo ricordo correttamente).
Poi ho dovuto mettere a punto alcuni file di configurazione:
il file modsecurity.conf
Questo richiede di passare da:
SecRuleEngine DetectionOnly
A
SecRuleEngine On
Quindi, a seconda dell'applicazione Web che si sta tentando di proteggere, è possibile annullare il commento di uno dei seguenti elementi:
setvar:tx.crs_exclusions_cpanel=1,
setvar:tx.crs_exclusions_drupal=1,
setvar:tx.crs_exclusions_dokuwiki=1,
setvar:tx.crs_exclusions_nextcloud=1,
setvar:tx.crs_exclusions_wordpress=1,
setvar:tx.crs_exclusions_xenforo=1"
Questo è fondamentalmente quello che ho fatto finora e sembra che applichi alcune regole di base che reindirizzano i potenziali aggressori a una pagina 403 (non autorizzata). È un minimo indispensabile e in realtà richiede alcune personalizzazioni per farlo funzionare correttamente.
Considerazioni
Ho un servizio di bilanciamento del carico tra i miei server e utenti, il che significa che non riesco a sfruttare alcune funzionalità utili come la possibilità di integrare fail2ban con esso.
Apparentemente, anche se modsec (in realtà è apache) può rilevare l'IP originale attraverso l'intestazione X-Forwarded-for, iptables non può bloccare l'IP originale. Un vero showstopper.