En este post se explicarán trucos básicos para poder securizar lo máximo posible los servicios que tengamos en el servidor. Aun que parezca una tontería el mero hecho de que el servicio muestre su versión, da muchas pistas a cerca de que vulnerabilidades podría tener. Por lo tanto es recomendable el evitar fugas de información de este tipo, además de no dejar agujeros abiertos a posibles ataques.
Exim
Crear el certificado diffie-hellman si no existe ninguno
cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096
Editar el archivo de configuración
vim /etc/exim4/conf.d/02_exim4-config_options
Descomentar y cambiar:
smtp_banner = $smtp_active_hostname ESMTP
tls_certificate = /etc/exim.cert tls_privatekey = /etc/exim.key tls_advertise_hosts = * tls_require_ciphers = AES128+EECDH:AES128+EDH openssl_options = +no_sslv2 +no_sslv3 tls_dhparam = /etc/ssl/certs/dhparam.pem
Reiniciar el servicio
/etc/init.d/exim4 restart
Dovecot
Editar el archivo de ssl de dovecot y añadir lo siguiente:
vim /etc/dovecot/conf.d/10-ssl.conf
ssl = yes ssl_cert = </etc/dovecot.cert ssl_key = </etc/dovecot.key ssl_protocols = !SSLv2 !SSLv3 ssl_cipher_list = AES128+EECDH:AES128+EDH ssl_prefer_server_ciphers = yes # >Dovecot 2.2.6 ssl_dh_parameters_length = 4096 # >Dovecot 2.2
Reiniciar el servicio
/etc/init.d/dovecot restart
VSFTP
Editar el archivo de configuración
vim /etc/vsftpd/vsftpd.conf
Añadir:
ftpd_banner=ftp
Reiniciar el servicio
/etc/init.d/vsftpd restart
SSH
Editar el archivo de configuración
vim /etc/ssh/sshd_config
Ocultar la versión de Debian
DebianBanner no
Cambiar el puerto
Port 222
Para cuando se establezca la conexión no compruebe el DNS
UseDNS no
Es recomendable no utilizar contraseñas y forzar todas las conexiones por certificado
PasswordAuthentication no
No permitir que el usuario root se conecte por SSH
PermitRootLogin no
Permitir solo ciertos usuarios
AllowUsers usuario1
LAMP
Para bastionar los servicios Apache, PHP y MySQL hay ir al siguiente post
Kernel
Editar el sysctl.conf
vim /etc/sysctl.conf
Añadir lo siguiente
net.ipv4.tcp_timestamps = 0
Aplicar cambios
sysctl -p
Consejos adicionales
También es recomendable el instalar un HIDS para poder tener controlado todo lo que pasa en el host y en el caso de ser atacados, poder realizar acciones automáticas como puede ser el bloqueo del atacante. Para esto una herramienta recomendada es OSSEC. Mas info aquí
Por otro lado, es recomendable el realizar escaneos de vulnerabilidades periódicos contra los equipos para detectar vulnerabilidades. Para esto, hay herramientas muy útiles como pueden ser: sparta, arachni, OSSIM.