Versión 1.2
Autor:Till Brehm
Sigue a howtoforge en Twitter
Publicado el 16 de octubre de 2014
En la siguiente guía, describiré los pasos para asegurar su servidor contra el reciente ataque SSL de poodle. Usaré un servidor perfecto ISPConfig 3 en Debian 7 para mis ejemplos, pero los mismos pasos también funcionarán en cualquier otra distribución de Linux. Un servidor de alojamiento ISPConfig predeterminado ejecuta los siguientes servicios:Servidor web (Nginx o apache), servidor de correo (Postfix y Dovecot / Courier), Servidor FTP (puro-ftpd) que ofrecen conexiones SSL/TLS y son objetivos potenciales para un ataque de caniche.
Supongo que ha iniciado sesión en su servidor como usuario root. Si trabaja en Ubuntu y no ha iniciado sesión como root, anteponga "sudo" a todos los comandos o ejecute "sudo -" para convertirse en usuario root.
Servidor web Apache
Para proteger un servidor web apache, la línea
Protocolo SSL todos -SSLv2 -SSLv3
debe agregarse en cada host virtual SSL en el servidor. Si la configuración de SSLProtocol no se establece explícitamente en un host virtual, se aplica la configuración global. En el caso de un servidor ISPConfig 3, la configuración de SSLProtocol se puede configurar globalmente ya que los vhosts no anulan esa configuración. En un servidor Debian o Ubuntu, abra el archivo /etc/apache2/mods-disponible/ssl.conf en un editor
nano /etc/apache2/mods-disponible/ssl.conf
desplácese hacia abajo hasta que vea las líneas:
# habilitar solo protocolos seguros:SSLv3 y TLSv1, pero no SSLv2
Protocolo SSL todos -SSLv2
y cámbielos a:
# habilitar solo protocolos seguros:pero no SSLv2 y SSLv3
Protocolo SSL todos -SSLv2 -SSLv3
Luego reinicie apache
reiniciar servicio apache2
Servidor web Nginx
Para un servidor web nginx, la línea
protocolos_ssl TLSv1 TLSv1.1 TLSv1.2;
debe agregarse en cada servidor SSL { } serción. Si la configuración de SSLProtocol no se establece explícitamente en una sección del servidor { }, entonces se aplica la configuración global de la sección http { }. En el caso de un servidor ISPConfig 3, la configuración de SSLProtocol se puede configurar globalmente en la sección http { } ya que las secciones del servidor { } no anulan esa configuración. En un servidor Debian o Ubuntu, abra el archivo /etc/nginx/nginx.conf en un editor
nano /etc/nginx/nginx.conf
y agregue la línea:
protocolos_ssl TLSv1 TLSv1.1 TLSv1.2;
después de la línea:
http {
luego reinicie nginx:
reiniciar el servicio nginx
Servidor de correo Postfix
Para forzar a postfix a no proporcionar el protocolo SSLv2 y SSLv3, ejecute estos comandos:
postconf -e 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'
postconf -e 'smtpd_tls_protocols=!SSLv2,!SSLv3'
postconf -e 'smtp_tls_protocols=!SSLv2,!SSLv3'
Esto agregará las líneas:
smtpd_tls_mandatory_protocols =!SSLv2,!SSLv3
smtpd_tls_protocols =!SSLv2,!SSLv3
smtp_tls_protocols =!SSLv2,!SSLv3
en el archivo /etc/postfix/main.cf. Luego ejecute este comando para aplicar la nueva configuración:
reinicio de postfijo de servicio
Servidor IMAP / POP3 de Dovecot
Dovecot admite la configuración del protocolo SSL en la versión 2.1 y posteriores. Entonces, el primer paso es averiguar qué versión de palomar usas. El comando es:
palomar --versión
en mi servidor obtuve el siguiente resultado:
[correo electrónico protegido]:~# dovecot --version
2.1.7
[correo electrónico protegido]:~#
lo que indica que mi servidor admite la configuración de ssl_protocol.
Edite el archivo de configuración de dovecot
nano /etc/dovecot/dovecot.conf
y agrega la línea
ssl_protocols =!SSLv2 !SSLv3
justo después de la línea ssl_key, por lo que su archivo debería verse así:
ssl_key =ssl_protocols =!SSLv2 !SSLv3
y finalmente reinicie dovecot para aplicar los cambios:
reinicio del servicio dovecot
Servidor POP3 / IMAP de mensajería
El servidor courier imap y pop3 ofrece conexiones sobre el protocolo SSLv3 de forma predeterminada, por lo que también tenemos que reconfigurarlo. Los archivos de configuración de mensajería están en la carpeta /etc/courier/. Primero comenzamos con el archivo de configuración del demonio IMAP:
nano /etc/courier/imapd-ssl
Agregue o reemplace las siguientes líneas:
IMAPDSTARTTLS=SÍ
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Luego edite el archivo de configuración del POP3 Daemon:
nano /etc/courier/pop3d-ssl
Agregue o reemplace las siguientes líneas:
POP3STARTTLS=SÍ
POP3_TLS_REQUIRED=1
TLS_PROTOCOL=TLS1
TLS_STARTTLS_PROTOCOL=TLS1
Finalmente, reinicie los demonios de mensajería:
reinicio de servicio courier-imap-ssl
reinicio de servicio courier-pop-ssl
FTP con puro-ftpd
Asegurar pure-ftpd en Debian y Ubuntu es un poco más complicado ya que el script /usr/sbin/pure-ftpd-wrapper de Debian no admite el modificador -J que pure-ftpd utiliza para establecer los protocolos ssl. Entonces, el primer paso es agregar soporte para la opción -J en el script contenedor. Esto no funcionará en Debian 6 ya que la versión de ftpd puro en Debian 6 es demasiado antigua y no tiene una configuración para los protocolos SSL. Entonces, la única opción para los usuarios de Debian 6 será actualizar a Debian 7. Abra el archivo
nano /usr/sbin/pure-ftpd-envoltorio
y desplácese hacia abajo hasta la línea
'TLS' => ['-Y %d', \&parse_number_1],
y agregue esta nueva línea justo después:
'TLSCipherSuite' => ['-J %s', \&parse_string],
Finalmente creamos un archivo de configuración que contiene los protocolos SSL que queremos permitir:
echo 'ALTO:MEDIO:+TLSv1:!SSLv2:!SSLv3'> /etc/pure-ftpd/conf/TLSCipherSuite
para aplicar los cambios, reinicie pure-ftpd. En mi servidor, uso pure-ftpd con mysql, por lo que el nombre del demonio es pure-ftpd-mysql en lugar de solo pure-ftpd.
reinicio de servicio pure-ftpd-mysql
el resultado debería ser similar a esto:
[email protected]:~# service pure-ftpd-mysql restart
Reiniciando servidor ftp:En ejecución:/usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql .conf -l pam -Y 1 -8 UTF-8 -H -J ALTO:MEDIO:+TLSv1:!SSLv2:!SSLv3 -D -b -O clf:/var/log/pure-ftpd/transfer.log - E -u 1000 -A -B
[correo electrónico protegido]:~#
por lo que la opción -J se ha agregado con éxito a la secuencia de inicio del daemon.
Enlaces
- Ataque de caniche SSL
- ISPConfig