Torino ITA)
+39 01119115797
info@netpic.it

Sicurezza del Webserver

Sicurezza del Webserver

Le politiche di sicurezza del webserver in ambiente open source sono davvero varie. Di sicuro esporre un sito web senza alcuna forma di protezione rappresenta un grosso rischio.

E’ prassi proteggere un qualsiasi sistema server con un Firewall a monte oppure installato direttamente sul server. Strumenti irrinunciabili sono 

  • firewall (iptables, shorewall, ufw, firewall-cmd)
  • Antivirus clamav (free) e Antimalware maldet (free)
  • Apache mod_security2 e mod_dosevasive (modulo di analisi degli accessi alle pagine servite dal webserver)
  • fail2ban (sistema di blocco dinamico dei tentativi di accesso non autorizzato al sistema)

Approfondiamo le ultime due voci e vediamo come installare, attivare ed integrare mod security con fail2ban. Questo tipo di integrazione consente al sistema di bloccare dinamicamente gli indirizzi IP che tentano di fare azione i malevoli sul nostro web server e che comunque vengono intercettati dalle regole di Mod Security.

 

Installiamo mod_security2

 
# apt-get install libapache2-mod-security2
 
 

Configurazione e attivazione di mod_security

 
# cd /etc/modsecurity/
# cp modsecurity.conf-recommended modsecurity.conf
 
# nano modsecurity.conf
 

# — Rule engine initialization ———————————————-
# Enable ModSecurity, attaching it to every transaction. Use detection
# only to start with, because that minimises the chances of post-installation
# disruption.
SecRuleEngine On


# — Request body handling —————————————————
# Allow ModSecurity to access request bodies. If you don’t, ModSecurity
# won’t be able to see any POST parameters, which opens a large security
# hole for attackers to exploit.
SecRequestBodyAccess On

 
Ora attiviamo il modulo:

# a2enmod security2
Considering dependency unique_id for security2:
Enabling module security2.
To activate the new configuration, you need to run:
systemctl restart apache2
 
Riavviamo apache:
# systemctl restart apache2
 
A questo punto il mod_security2 proteggerà i tentativi di attacco al nostro web server. Ma attenzione, l’uso di questo modulo richiede una certa esperienza per i falsi positivi che può creare e permette comunque una raffinata configurazione delle regole di default, in modo da mettere eccezioni ed esclusioni in base al contenuto dei propri siti web.
 
 

Installiamo fail2ban

 
# apt-get install fail2ban
 
Il servizio si attiva e di default controlla la porta 22 (ssh) normalmente attivata per amministrare sistemi e per questo soggetta a continui tentativi di attacco bruteforce. Accanto a questa jail noi ne predisponiamo un’altra, per cui accediao da console alla directory del servizio:
 
# cd /etc/fail2ban/filter.d
 
# nano modsec.conf
 
# Fail2Ban configuration file
  [Definition]
  failregex = \[.*?\]\s[\w-]*\s<HOST>\s
  ignoreregex =
 
# nano  /etc/fail2ban/jail.conf
 
[modsec]
enabled  = true
filter   = modsec
action   = shorewall
logpath  = /var/log/apache2/modsec_audit.log
bantime  = 172800
maxretry = 5
 
A questo punto riavviamo fail2ban:
# systemctl restart fail2ban
 
Il file di log in cui il mod_security2 scrive i tentativi di attacco è il file /var/log/apache2/modsec_audit.log. Oltre un certo numero di tentativi di attacco intercettati il fail2ban blocca l’IP, sbloccandolo dopo un tempo determinato. Questo sistema molto versatile e potente, visto che lavora in totale autonomia, ha però lo svantaggio di creare in alcuni casi dei falsi positivi, per cui è bene usare la funzione di IP Whitelisting per gli IP certi, come i nostri o quelli dei nostri clienti.

L’argomento è molto vasto e non abbiamo la pretesa di esaurirlo con questo breve articolo, ricordiamo che si tratta di servizi molto diffusi e documentati per cui rimandiamo alla lettura dell’abbondante documentazione ufficiale e non.
 

Risorse e documentazione