Versione 1.2
Autore:Till Brehm
Segui howtoforge su Twitter
Pubblicato 2014-10-16
Nella seguente guida descriverò i passaggi per proteggere il tuo server dal recente attacco SSL del barboncino. Userò un server perfetto ISPConfig 3 su Debian 7 per i miei esempi, ma gli stessi passaggi funzioneranno anche su qualsiasi altra distribuzione Linux. Un server di hosting ISPConfig predefinito esegue i seguenti servizi:Server Web (Nginx o apache), server di posta (Postfix e Dovecot / Courier), Server FTP (pure-ftpd) che offrono connessioni SSL/TLS e sono potenziali bersagli per un attacco di barboncini.
Presumo che tu abbia effettuato l'accesso al tuo server come utente root. Se lavori su Ubuntu e non sei loggato come root, anteponi "sudo" a tutti i comandi o esegui "sudo -" per diventare utente root.
Server Web Apache
Per proteggere un server web apache, la linea
SSLProtocol tutti -SSLv2 -SSLv3
deve essere aggiunto in ogni vhost SSL sul server. Se l'impostazione SSLProtocol non è impostata in modo esplicito in un vhost, viene applicata l'impostazione globale. Nel caso di un server ISPConfig 3, l'impostazione SSLProtocol può essere impostata a livello globale poiché i vhost non sovrascrivono tale impostazione. Su un server Debian o Ubuntu, apri il file /etc/apache2/mods-available/ssl.conf in un editor
nano /etc/apache2/mods-available/ssl.conf
scorri verso il basso fino a visualizzare le righe:
# abilita solo protocolli sicuri:SSLv3 e TLSv1, ma non SSLv2
SSLProtocol all -SSLv2
e cambiali in:
# abilita solo protocolli sicuri:ma non SSLv2 e SSLv3
SSLProtocol all -SSLv2 -SSLv3
Quindi riavvia Apache
servizio apache2 riavvio
server web Nginx
Per un server web nginx, la linea
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
deve essere aggiunto in ciascuna sezione del server SSL { }. Se l'impostazione SSLProtocol non è impostata in modo esplicito in una sezione del server { }, viene applicata l'impostazione globale della sezione http { }. Nel caso di un server ISPConfig 3, l'impostazione SSLProtocol può essere impostata globalmente nella sezione http { } poiché le sezioni del server { } non sovrascrivono tale impostazione. Su un server Debian o Ubuntu, apri il file /etc/nginx/nginx.conf in un editor
nano /etc/nginx/nginx.conf
e aggiungi la riga:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
dopo la riga:
http {
quindi riavvia nginx:
riavvio del servizio nginx
Server di posta Postfix
Per forzare postfix a non fornire il protocollo SSLv2 e SSLv3, esegui questi comandi:
postconf -e 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'
postconf -e 'smtpd_tls_protocols=!SSLv2,!SSLv3'
postconf -e 'smtp_tls_protocols=!SSLv2,!SSLv3'
Questo aggiungerà le righe:
smtpd_tls_mandatory_protocols =!SSLv2,!SSLv3
smtpd_tls_protocols =!SSLv2,!SSLv3
smtp_tls_protocols =!SSLv2,!SSLv3
nel file /etc/postfix/main.cf. Quindi esegui questo comando per applicare la nuova configurazione:
riavvio suffisso del servizio
Server Dovecot IMAP / POP3
Dovecot supporta le impostazioni del protocollo SSL nella versione 2.1 e successive. Quindi il primo passo è scoprire quale versione di Dovecot usi. Il comando è:
dovecot --versione
sul mio server ho ottenuto il seguente risultato:
[e-mail protetta]:~# dovecot --version
2.1.7
[e-mail protetta]:~#
che indica che il mio server supporta le impostazioni ssl_protocol.
Modifica il file di configurazione di dovecot
nano /etc/dovecot/dovecot.conf
e aggiungi la riga
ssl_protocols =!SSLv2 !SSLv3
subito dopo la riga ssl_key, quindi il tuo file dovrebbe assomigliare a questo:
ssl_key =ssl_protocols =!SSLv2 !SSLv3
e infine riavvia dovecot per applicare le modifiche:
riavvio del servizio dovecot
Server Courier POP3/IMAP
Il corriere imap e il server pop3 offrono connessioni tramite il protocollo SSLv3 per impostazione predefinita, quindi dobbiamo riconfigurarlo anche noi. I file di configurazione del corriere si trovano nella cartella /etc/courier/. Per prima cosa iniziamo con il file di configurazione del demone IMAP:
nano /etc/courier/imapd-ssl
Aggiungi o sostituisci le seguenti righe:
IMAPDSTARTTLS=SI
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Quindi modifica il file di configurazione del demone POP3:
nano /etc/courier/pop3d-ssl
Aggiungi o sostituisci le seguenti righe:
POP3STARTTLS=SI
POP3_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Infine riavvia i demoni del corriere:
servizio corriere-imap-ssl riavvio
servizio corriere-pop-ssl riavvio
FTP con pure-ftpd
La protezione di pure-ftpd su Debian e Ubuntu è un po' più complicata in quanto lo script /usr/sbin/pure-ftpd-wrapper di Debian non supporta l'opzione -J che è usata da pure-ftpd per impostare i protocolli SSL. Quindi il primo passo è aggiungere il supporto per l'opzione -J nello script wrapper. Questo non funzionerà in Debian 6 poiché la versione pure-ftpd in Debian 6 è troppo vecchia e non ha un'impostazione per protocolli SSL. Quindi l'unica opzione per gli utenti di Debian 6 sarà l'aggiornamento a Debian 7. Apri il file
nano /usr/sbin/pure-ftpd-wrapper
e scorri fino alla riga
'TLS' => ['-Y %d', \&parse_number_1],
e aggiungi questa nuova riga subito dopo:
'TLSCipherSuite' => ['-J %s', \&parse_string],
Infine creiamo un file di configurazione che contiene i protocolli SSL che vogliamo consentire:
echo 'ALTO:MEDIO:+TLSv1:!SSLv2:!SSLv3'> /etc/pure-ftpd/conf/TLSCipherSuite
per applicare le modifiche, riavvia pure-ftpd. Sul mio server, utilizzo pure-ftpd con mysql, quindi il nome del demone è pure-ftpd-mysql invece di pure-ftpd.
riavvio del servizio pure-ftpd-mysql
il risultato dovrebbe essere simile a questo:
[email protetta]:~# service pure-ftpd-mysql restart
Riavvio del server ftp:In esecuzione:/usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql .conf -l pam -Y 1 -8 UTF-8 -H -J ALTA:MEDIA:+TLSv1:!SSLv2:!SSLv3 -D -b -O clf:/var/log/pure-ftpd/transfer.log - E -u 1000 -A -B
[email protetta]:~#
quindi l'opzione -J è stata aggiunta con successo alla sequenza di avvio del demone.
Link
- Attacco del barboncino SSL
- Configurazione ISP