Consejos útiles para la seguridad del servidor Linux
La seguridad de un servidor Linux es algo que no puede ser pasada por alto, especialmente en la nube pública. En esta entrada vamos a centrarnos principalmente en las mejores practicas.
Como ejemplo utilizaremos Ubuntu Server 16.04:
1. Mantener actualizado el Kernel
Ciertamente no es aconsejable una actualización masiva en ambientes de producción. Pero para los servidores recién instalados, por lo general es inofensiva y puede garantizar un mayor nivel de seguridad.
Una sugerencia común es deshabilitar los servicios no utilizados. Pero he decidido confiar en el proveedor de la distribución. En términos generales, creo que ellos están capacitados para tomar las decisiones correctas de que tener instalado y activado por defecto.
apt-get -y update
2. Cambiar contraseña de root.
Es necesario para acceder a la consola web de las máquinas virtuales. Siempre que el SSH no funcione. p.ej. por reglas de iptables problemáticas, el sistema operativo esta en estado de "kernel panic", o cuando la máquina se reinicia misteriosamente.3. Asegurar sshd.
Sólo permitir el acceso ssh por medio del archivo de claves, de manera que los piratas informáticos no puedan romper o adivinar su contraseña fácilmente . Utilice otro puerto de escucha ssh que no sea el 22, esto puede evitar los intentos de ingreso ssh molestos.# Deshabilitar autenticación por Password
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \
/etc/ssh/sshd_config
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \
/etc/ssh/sshd_config
grep PasswordAuthentication /etc/ssh/sshd_config
# Utilizar otro puerto para ssh
sshd_port="2702"
sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config
grep "^Port " /etc/ssh/sshd_config
# Reiniciar servicio sshd para que tomen efecto los cambios
service ssh restart
4. Restringir el acceso malicioso por medio del firewall.
Este podría ser el mejoramiento de la seguridad más importante que ha de hacer.
# Limpiar inicio de iptables
iptables -F; iptables -X
echo 'y' | ufw reset
echo 'y' | ufw enable
ufw default deny incoming
ufw default deny forward
# Permitir el tráfico de puertos seguros
ufw allow 22,80,443/tcp
# Permitir el tráfico de ciertos puertos
ufw allow 2702/tcp
# Permitir el tráfico de IP de confianza
ufw allow from 52.74.151.55
5. Añadir marca de hora a la historia de comandos.
Nos permite revisar los comandos que se han ejecutado, y cuándo.
echo export HISTTIMEFORMAT=\"%h %d %H:%M:%S \" >> /root/.bashrc
6. Generar par de claves SSH. Nunca, nunca compartir el mismo par de claves SSH a través de servidores!
# Generar el nuevo par de claves
ssh-keygen
# Cargar el par de claves
ssh-add
7. Prestar mucha atención a var / log.
Utilizar Logwatch para automatizar el control y el análisis. Es un script en perl que analiza y genera informes diarios sobre la actividad de los log del sistema. Los principales archivos log son:- /var/log/kern.log
- /var/log/syslog
- /var/log/ufw.log
- /var/log/auth.log
- /var/log/dpkg.log
- /var/log/aptitude
- /var/log/boot.log
- /var/log/cron.log
- /var/log/mailog
apt-get install -y logwatch
# Comprobación completa. Tarda varios minutos
logwatch --range ALL
# Sólo comprobar los registros de Hoy
logwatch --range Today
8. Ejecutar herramientas de terceros
No todo el mundo puede o va a ser un experto en seguridad. Es mejor herramientas fiables y versátiles. Lynis es bastante práctico y directo.
apt-get install -y lynis
# Ejecutar Lynis para comprobar los problemas de seguridad
lynis -c
0 comentarios:
Publicar un comentario