Verze 1.2
Autor:Till Brehm
Sledujte howtoforge na Twitteru
Publikováno 2014-10-16
V následujícím průvodci popíšu kroky k zabezpečení vašeho serveru proti nedávnému útoku pudle SSL. Pro své příklady použiji dokonalý server ISPConfig 3 na Debianu 7, ale stejné kroky budou fungovat i na jakékoli jiné distribuci Linuxu. Výchozí hostitelský server ISPConfig provozuje následující služby:Webový server (Nginx nebo Apache), Poštovní server (Postfix a Dovecot / Courier), FTP server (pure-ftpd), které nabízejí připojení SSL / TLS a jsou potenciálními cíli pro útok pudla.
Předpokládám, že jste přihlášeni na svůj server jako uživatel root. Pokud pracujete na Ubuntu a nejste přihlášeni jako root, přidejte před všechny příkazy „sudo“ nebo spusťte „sudo -“, abyste se stali uživatelem root.
Webový server Apache
Chcete-li zabezpečit webový server Apache, linka
SSLProtocol vše -SSLv2 -SSLv3
musí být přidán do každého SSL vhost na serveru. Pokud není nastavení SSLProtocol ve vhost explicitně nastaveno, použije se globální nastavení. V případě serveru ISPConfig 3 lze nastavení SSLProtocol nastavit globálně, protože vhosts toto nastavení nepřepisují. Na serveru Debian nebo Ubuntu otevřete v editoru soubor /etc/apache2/mods-available/ssl.conf
nano /etc/apache2/mods-available/ssl.conf
přejděte dolů, dokud neuvidíte řádky:
# povolit pouze zabezpečené protokoly:SSLv3 a TLSv1, ale ne SSLv2
SSLProtocol all -SSLv2
a změňte je na:
# povolit pouze zabezpečené protokoly:ale ne SSLv2 a SSLv3
Všechny protokol SSL -SSLv2 -SSLv3
Poté restartujte apache
restart služby apache2
Webový server Nginx
Pro webový server nginx linka
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
musí být přidán do každé sekce serveru SSL { }. Pokud není nastavení SSLProtocol explicitně nastaveno v sekci serveru { }, použije se globální nastavení sekce http { }. V případě serveru ISPConfig 3 lze nastavení SSLProtocol nastavit globálně v sekci http { }, protože sekce serveru { } toto nastavení nepřepisují. Na serveru Debian nebo Ubuntu otevřete soubor /etc/nginx/nginx.conf v editoru
nano /etc/nginx/nginx.conf
a přidejte řádek:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
za řádkem:
http {
poté restartujte nginx:
restart služby nginx
Poštovní server Postfix
Chcete-li přinutit postfix, aby nedodával protokoly SSLv2 a SSLv3, spusťte tyto příkazy:
postconf -e 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'
postconf -e 'smtpd_tls_protocols=!SSLv2,!SSLv3'
postconf -e 'smtp_tls!
Tím se přidají řádky:
smtpd_tls_mandatory_protocols =!SSLv2,!SSLv3
smtpd_tls_protocols =!SSLv2,!SSLv3
smtp_tls_protocols =!SSLv2,!SSLv3
v souboru /etc/postfix/main.cf. Poté spusťte tento příkaz pro použití nové konfigurace:
restart služby postfix
Dovecot IMAP / POP3 server
Dovecot podporuje nastavení protokolu SSL ve verzi 2.1 a novější. Prvním krokem je tedy zjistit, jakou verzi dovecotu používáte. Příkaz je:
holubník --verze
na mém serveru jsem dostal následující výsledek:
[chráněno e-mailem]:~# dovecot --version
2.1.7
[chráněno e-mailem]:~#
což znamená, že můj server podporuje nastavení ssl_protocol.
Upravte konfigurační soubor dovecot
nano /etc/dovecot/dovecot.conf
a přidejte řádek
ssl_protocols =!SSLv2 !SSLv3
hned za řádkem ssl_key, takže váš soubor by měl vypadat takto:
ssl_key =ssl_protocols =!SSLv2 !SSLv3
a nakonec restartujte dovecot, abyste použili změny:
restart služby dovecot
Courier POP3 / IMAP server
Server kurýrní imap a pop3 standardně nabízí připojení přes protokol SSLv3, takže jej musíme také překonfigurovat. Konfigurační soubory kurýra jsou ve složce /etc/courier/. Nejprve začneme s konfiguračním souborem démona IMAP:
nano /etc/courier/imapd-ssl
Přidejte nebo nahraďte následující řádky:
IMAPDSTARTTLS=ANO
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Poté upravte konfigurační soubor démona POP3:
nano /etc/courier/pop3d-ssl
Přidejte nebo nahraďte následující řádky:
POP3STARTTLS=ANO
POP3_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Nakonec restartujte démony kurýra:
restart služby courier-imap-ssl
restart služby courier-pop-ssl
FTP s čistým ftpd
Zabezpečení pure-ftpd na Debianu a Ubuntu je o něco složitější, protože skript /usr/sbin/pure-ftpd-wrapper z Debianu nepodporuje přepínač -J, který používá pure-ftpd k nastavení protokolů ssl. Prvním krokem je tedy přidání podpory pro volbu -J ve skriptu wrapper. V Debianu 6 to nebude fungovat, protože verze čistého ftpd v Debianu 6 je příliš stará a nemá nastavení pro protokoly SSL. Takže jedinou možností pro uživatele Debianu 6 bude upgrade na Debian 7. Otevřete soubor
nano /usr/sbin/pure-ftpd-wrapper
a přejděte dolů na řádek
'TLS' => ['-Y %d', \&parse_number_1],
a hned poté přidejte tento nový řádek:
'TLSCipherSuite' => ['-J %s', \&parse_string],
Nakonec vytvoříme konfigurační soubor, který obsahuje protokoly SSL, které chceme povolit:
echo 'HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3'> /etc/pure-ftpd/conf/TLSCipherSuite
pro použití změn restartujte pure-ftpd. Na mém serveru používám pure-ftpd s mysql, takže název démona je pure-ftpd-mysql místo jen pure-ftpd.
restart služby pure-ftpd-mysql
výsledek by měl být podobný tomuto:
[chráněno e-mailem]:~# restart služby pure-ftpd-mysql
Restartování ftp serveru:Spuštěno:/usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql .conf -l pam -Y 1 -8 UTF-8 -H -J VYSOKÁ:STŘEDNÍ:+TLSv1:!SSLv2:!SSLv3 -D -b -O clf:/var/log/pure-ftpd/transfer.log - E -u 1000 -A -B
[e-mail chráněný]:~#
takže volba -J byla úspěšně přidána do spouštěcí sekvence démona.
Odkazy
- Útok pudla SSL
- ISPConfig