Introducción
Esto es una guía de como asegurar que todos mis servidores son seguros.
Actualizar sistema
1
2
3
4
| sudo apt update
sudo apt update -y
sudo apt install unattended-upgrades apt-listchanges -y
sudo dpkg-reconfigure unattended-upgrades
|
Comprobar estado:
1
| sudo systemctl status unattended-upgrades
|
Configurar acceso por clave SSH
Crear usuario administrador
Es recomendable crear un usuario con un nombre que no sea el típico.
1
2
| sudo adduser admin_mruizg
sudo usermod -aG sudo admin_mruizg
|
Equipo local
En el equipo local necesitamos generar una clave publica privada:
Estas claves se guardan en ~/.ssh/.
RECUERDA que ~ es lel diretorio de tu usuario.
Y la enviamos al servidor:
1
| ssh-copy-id admin_mruizg@IP_DEL_SERVIDOR
|
Equipo remoto o servidor
Si no tienes acceso directo por ssh al servidor a través de contraseña, puedes copiar la clave pública (la que no tiene extensión) al final del fichero ~/.ssh/authorized_keys.
Configurar acceso por clave SSH
¡CUIDADO! Si quitas la autenticación por contraseña más vale que tengas tu clave privada a buen recaudo.
Editar configuración:
1
| sudo nano /etc/ssh/sshd_config
|
Asegurar que contiene:
1
2
3
| PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
|
Reiniciar servicio:
1
| sudo systemctl restart ssh
|
Configurar firewall
¡CUIDADO! Si bloqueas todos los puertos asegurate de tener abiertos los puertos que usas en el servicio SSH y el acceso a la interfaz web principal.
1
| sudo apt install ufw -y
|
1
2
| sudo ufw default deny incoming
sudo ufw default allow outgoing
|
1
2
| sudo ufw allow 22987/tcp
sudo ufw allow 9999/tcp
|
Fail2Ban
Instalar Fail2Ban:
1
| sudo apt install fail2ban -y
|
Comprobar estado:
1
| sudo fail2ban-client status
|
Instalar herramientas básicas de auditoría
1
| sudo apt install lynis rkhunter chkrootkit logwatch -y
|
1
| sudo lynis audit system
|
Backup con rsync
AppArmor
Comprobar estado de AppArmor:
Si no está activo:
1
2
| sudo systemctl enable apparmor
sudo systemctl start apparmor
|
Monitorizar accesos SSH
Intentos fallidos:
1
| sudo grep "Failed password" /var/log/auth.log
|
##
##
##
Bibliografía