Hardening de servicios

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.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *