En esta guía mostrare la seguridad básica de los servidores Linux para proteger tu servidor Linux. Aunque se centra en Debian/Ubuntu se puede aplicar a todo lo que se presenta aquí se poder realizar en otras distribuciones de Linux sin tipo de problema.
1. Actualizar tu servidor
Lo primero que debes hacer para asegurar tu servidor es actualizar los repositorios locales y actualizar el sistema operativo y las aplicaciones instaladas aplicando los últimos parches para evitar vulnerabilidades.
En distribuciones basadas en Ubuntu o Debian seria:
$ sudo apt update && sudo apt upgrade -y
En Fedora, Rocky Linux, or RHEL:
$ sudo dnf upgrade
2. Crea un nuevo usuario con privilegios
Iniciar sesión en tu servidor con un usuario es una mala practica. Nunca debes iniciar sesión en tu servidor como root. En su lugar, crea tu propia usuario y dale privilegios para usar sudo y úsala para iniciar sesión en tu servidor.
Empieza creando un nuevo usuario con:
$ adduser <usuario>
Dale a tu nuevo usuario derechos de sudo añadiendo (-a) el grupo sudo (-G) a la pertenencia al grupo del usuario:
$ usermod -a -G sudo <usuario>
3. Actualiza tu Clave SSH
Las claves o llaves SSH nos sirven para acceder a nuestros VPS, Servidores Dedicados, O Cloud de forma segura y mediante la línea de comandos. De este modo, podemos trabajar con las máquinas remotas y realizar todo tipo de acciones como si estuviéramos delante de ellas. En Linux, el proceso de creación de claves SSH es muy fácil.
$ ssh-copy-id <usuario>@direccion-ip
4. Proteger SSH
para proteger SSH haz estos tres cambios:
- Desactivar Autenticación por contraseña en SSH
- Restringir Cuenta de acceso remtoo
- Restringir el acceso a IPv4 o IPv6
5. Habilitar Firewall
Instalar un cortafuegos, habilitarlo y configurarlo para que sólo permita el tráfico de red que designes. Uncomplicated Firewall (UFW) es una interfaz fácil de usar para iptables que simplifica enormemente el proceso de configuración de un Firewall.
Puedes instalar UFW con:
$ sudo apt install ufw
Por defecto, UFW niega todas las conexiones entrantes y permite todas las conexiones salientes. Esto significa que cualquier aplicación en su servidor puede llegar a Internet, pero cualquier cosa que intente a acceder tu servidor no podra conectarse.
Lo Primero que hay que hacer es asegurarte de que puede conectarse habilitando el acceso a SSH, HTTP y HTTPS:
$ sudo ufw allow ssh $ sudo ufw allow http $ sudo ufw allow https
Y seguidamente después de habilitar esto procede a activar UFW:
$ sudo ufw enable
Puedes saber que servicios están habilitados y cuales no usando:
$ sudo ufw status
Si alguna vez quieres desactivar UFW, puedes hacerlo usando:
$ sudo ufw disable
6. Instalar Fail2Ban
Fail2ban es una aplicación que examina los registros del servidor en busca de ataques repetidos o automatizados. Si encuentra alguno, modificará el cortafuegos para bloquear la dirección IP del atacante de forma permanente o durante un tiempo determinado.
Puedes instalar Fail2Ban usando:
$ sudo apt install fail2ban -y
A continuación, copia el archivo de configuración incluido:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Reinicia Fail2ban:
$ sudo service fail2ban restart
Esta herramienta examinará continuamente los archivos de registro en busca de ataques. Después de un tiempo, la aplicación creará una lista considerable de direcciones IP prohibidas. Puede ver esta lista solicitando el estado actual del servicio SSH con:
$ sudo fail2ban-client status ssh
Conclusión
Esta guía presenta lo mínimo necesario para proteger un servidor Linux. Las herramientas mencionadas anteriormente son solo algunas mejoras que pueden incrementar la calidad de la seguridad en tus servidor. Es importante reconocer que, mejor tarde que nunca, la efectividad de las medidas de seguridad decrece entre más tiempo se retrase su implementación. La seguridad no puede ser implementada después de que sea necesaria, debe ser implementada desde el inicio y durante la prestación de servicios y aplicaciones.