Mod_security è un modulo Apache che aiuta a proteggere il tuo sito Web da vari attacchi come cross-site scripting, attacchi SQL injection, attacchi path traversal ecc. Mod_evasive è un modulo Apache che aiuta a prevenire attacchi HTTP DoS (DDoS) o attacchi di forza bruta del server . Se hai CentOS installato sul tuo server, segui queste istruzioni per installare mod_security con il set di regole di base OWASP.
Per installare e configurare i moduli mod_security e mod_evasive su un VPS Ubuntu per rafforzare e proteggere il tuo server web Apache, segui i passaggi descritti di seguito:
Assicurati che tutti i pacchetti del sistema operativo siano aggiornati:
sudo apt-get updateudo apt-get upgrade
Installa mod-security e mod-evasive usando il seguente comando:
sudo apt-get install libapache2-mod-security2 libapache2-modsecurity libapache2-mod-evasive
Per abilitare le regole mod_security, copia il file di configurazione mod_security consigliato, quindi modificalo e imposta l'opzione "SecRuleEngine" su On:
sudo cp /etc/modsecurity/modsecurity.conf{-consigliato,}sudo vi /etc/modsecurity/modsecurity.conf
SecRuleEngine attivato
Inoltre, è una buona idea aumentare il valore 'SecRequestBodyLimit' alla dimensione massima dei file che accetti caricati sul server, ad esempio impostarlo su 32 MB e non consentire a mod_security di accedere ai corpi di risposta per risparmiare alcune risorse del server:
SecRequestBodyLimit 32768000SecRequestBodyInMemoryLimit 32768000SecResponseBodyAccess disattivato
Le regole mod_security sono disponibili nelle seguenti directory:
/usr/share/modsecurity-crs/base_rules/usr/share/modsecurity-crs/optional_rules/usr/share/modsecurity-crs/experimental_rules
Per abilitare tutte le regole di base CRS, creare collegamenti simbolici utilizzando il comando seguente:
sudo ln -s /usr/share/modsecurity-crs/base_rules/*.conf /usr/share/modsecurity-crs/activated_rules/
Per abilitare i file delle regole sperimentali e facoltative CRS che desideri utilizzare, crea di conseguenza collegamenti simbolici nella posizione della directory "activated_rules".
Si consiglia di scaricare e configurare il set di regole di base OWASP (Open Web Application Security Project):
sudo apt-get install gitsudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.gitsudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.baksudo mv owasp- modsecurity-crs /usr/share/modsecurity-crssudo mv /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf
Modifica i seguenti file:
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_35_bad_robots.conf
righe di commento 16, 21 e 28:
#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile modsecurity_35_bad_robots.data" \#SecRule REQUEST_HEADERS:User-Agent
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_40_generic_attacks.conf
riga di commento 169:
#SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@pmFromFile modsecurity_40_generic_attacks.data" \
sudo vi /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_50_outbound.conf
riga di commento 101:
#SecRule RESPONSE_BODY "!@pmFromFile modsecurity_50_outbound.data" \
Configura il modulo mod_evasive:
sudo vi /etc/apache2/mods-available/mod-evasive.conf
DOSHashTableSize 3097 DOSPageCount 10 DOSSiteCount 30 DOSPageInterval 1 DOSSiteInterval 3 DOSBlockingPeriod 3600 DOSLogDir /var/log/apache2/mod_evasive.log
Vedere il file README incluso con mod_evasive per i dettagli sui vari parametri di configurazione.
Crea file di registro per mod_evasive:
touch /var/log/apache2/mod_evasive.logsudo chown www-data:www-data /var/log/apache2/mod_evasive.log
Esegui il comando seguente per abilitare i moduli Apache:
sudo a2enmod headerssudo a2enmod evasivesudo a2enmod security2
Riavvia il server web Apache2 :
riavvio del servizio sudo apache2
Controlla se i moduli mod_security e mod_evasive sono abilitati sul tuo server:
sudo apachectl -M | grep security2security2_module (condiviso)sudo apachectl -M | grep evasiveevasive20_module (condiviso)
Se hai un sito Web basato su WordPress ospitato sul tuo VPS, molto probabilmente dovrai disabilitare alcune regole mod_security. Per disabilitare/escludere determinate regole mod_security puoi modificare l'host virtuale del tuo dominio definito nel file di configurazione Apache del tuo dominio, ad esempio:
Nomeserver tuodominio.com ServerAlias www.tuodominio.com DocumentRoot /var/www/html/wordpress/ Opzioni +SeguiSymLinks Consenti sovrascrivi Info file SecRuleRemoveById 300016 SecRuleRemoveById 300016 SecRuleRemoveById 950117 SecRuleRemoveById 950005
Non dimenticare di riavviare il server Web Apache per rendere effettive le modifiche, quindi esegui il seguente comando:
riavvio del servizio sudo apache2
Controlla il file di registro /var/log/apache2/modsec_audit.log per trovare le regole che vengono attivate da mod_security sul tuo server web.
Questo è tutto. Hai mod_security e mod_evasive installati sul tuo Ubuntu VPS.
Ovviamente non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installare mod_security e mod_evasive per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.