10 pasos para asegurar el Servidor Linux para el Entorno de Producción


Asegurar un servidor Linux es esencial para proteger nuestros datos de los hackers. Pero asegurar un servidor no requiere ser complicado.Debemos adoptar un método que proteja nuestro servidor de los ataques más frecuentes junto con una administración eficiente.
Sin embargo, no hay que dar las cosas por sentado. Incluso los servidores más reforzados pueden ser secuestrados mediante la explotación de cualquier componente vulnerable que se ejecute en ese servidor.
Instale lo que necesita
La primera regla es mantener su servidor delgado y medio. Instale sólo los paquetes que realmente necesita. Si hay paquetes no deseados; purga. Cuantos menos paquetes, menos posibilidades de código sin parchear.
Activar SELinux
Security-Enhanced Linux (SELinux) es un mecanismo de seguridad de control de acceso proporcionado en el kernel.
SELinux proporciona 3 modos básicos de funcionamiento :
- Enforcing: Este es el modo por defecto que permite y hace cumplir la política de seguridad de SELinux en la máquina.
- Permisivo: En este modo, SELinux no hará cumplir la política de seguridad en el sistema, sólo advertirá y registrará las acciones.
- Desactivado: SELinux está desactivado.
Se puede gestionar desde el archivo ‘/etc/selinux/config’, donde se puede habilitar o deshabilitar.
Acceso seguro a la consola
Debe proteger el acceso a la consola de los servidores Linux deshabilitando el arranque desde dispositivos externos como DVDs / CDs / lápiz USB tras la configuración de la BIOS. También, establezca la contraseña del BIOS y del cargador de arranque grub para proteger estas configuraciones.
Restringir el uso de contraseñas antiguas
Podemos restringir a los usuarios el uso de las mismas contraseñas antiguas. El archivo de contraseñas antiguas se encuentra en /etc/security/opasswd. Esto se puede hacer utilizando el módulo PAM.
Abrir el archivo ‘/etc/pam.d/system-auth’ bajo RHEL / CentOS / Fedora.
# vi /etc/pam.d/system-auth
Abrir el archivo ‘/etc/pam.d/common-password’ bajo Ubuntu/Debian/Linux.
# vi /etc/pam.d/common-password
Agrega la siguiente línea a la sección ‘auth’.
auth sufficient pam_unix.so likeauth nullok
Agrega la siguiente línea a la sección ‘password’ para no permitir que un usuario reutilice las 3 últimas contraseñas.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3
Las 3 últimas contraseñas son recordadas por el servidor. Si intenta utilizar cualquiera de las 3 últimas contraseñas antiguas, obtendrá un error como.

Compruebe los puertos de escucha
Use el comando ‘netstat’ para ver los puertos abiertos y los servicios correspondientes.
netstat -tunlp
Desactivar los servicios no deseados del sistema utilizando el comando ‘chkconfig’ y cerrar los puertos que no son necesarios.
chkconfig serviceName off
Desactivar el inicio de sesión de root
No es aconsejable hacer ssh en su servidor como superusuario(root). Debemos deshabilitar el ssh como usuario root en el servidor, pero antes de hacerlo, vamos a crear un usuario con poderes sudo para que pueda sshear en el servidor y realizar tareas administrativas. Una vez iniciada la sesión en el servidor, siempre se puede cambiar de usuario a root, si es necesario.
Crear un nuevo usuario :
useradd user1
Crear contraseña para el usuario añadido :
passwd user1
Proporcionar permisos sudo al usuario recién añadido :
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers
SSH al servidor con el nuevo usuario y asegurarse de que el login funciona.
Ahora vamos a desactivar el inicio de sesión de root, lo que significa que nadie puede ssh o iniciar sesión en el servidor como usuario root. Para ello, abra el archivo de configuración de sshd:
nano /etc/ssh/sshd_conf
A continuación, descomenta la línea que dice
PermitRootLogin no

Luego guarda y cierra este archivo y reinicia el servicio
service sshd restart
Importante: No cierre la sesión del servidor todavía. Primero prueba si puedes entrar con éxito en el servidor mediante el usuario creado anteriormente. Abra otra instancia de la terminal y haga ssh en el servidor con el usuario que creó anteriormente. Si todo funciona bien, puede cerrar la sesión del servidor con seguridad como root.
Cambiar el puerto
Podemos cambiar el puerto SSH por defecto para añadir una capa de opacidad para mantener su servidor seguro .
Abrir el archivo /etc/ssh/sshd_config
reemplazar el Puerto 22 por defecto con un número de puerto diferente digamos 1110
guardar &salir del archivo
service sshd restart
Ahora para iniciar sesión definir el puerto No.
ssh username@IP -p 1110
Desactivar Ctrl+Alt+Suprimir en Inittab
Pulsar Ctrl+Alt+Suprimir llevará a su servidor a un proceso de reinicio. Así que esto es siempre aconsejable para desactivar esto como alguien puede erróneamente reiniciar el sistema.
La acción ctrl+Alt+Del se define en /etc/init/control-alt-delete.conf .Comenta la siguiente línea

Inicio de sesión sin contraseña
Podemos iniciar sesión fácilmente en nuestro servidor a través de SSH sin ninguna contraseña generando las claves ssh. Sólo hay que tener cuidado de que se puede iniciar sesión en el servidor sólo desde esa máquina en la que generó las claves ssh
Generación de claves SSH :
ssh-keygen - t rsa

Copie su clave pública SSH , luego añada la misma en el servidor
cat ~/.ssh/id_rsa.pub
Para añadir claves ssh en el servidor
Supongamos que tenemos el usuario-user1 para proporcionar acceso de clave ssh al servidor
cd /home/user1
ls -ll
Cree un directorio .ssh y dentro de él crear un archivo llamado authorized_keys y añadir la clave pública ssh del usuario en el mismo
mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys
Añadir la clave pública SSH y luego cambiar el propietario del archivo
chown user1 authorized_keys
Desactivar el inicio de sesión ssh
Editar /etc/ssh/sshd_config
Passwordauthentication no
PermitRootLogin no

Ahora, sólo el usuario autorizado puede iniciar sesión en el servidor con el comando
ssh user-name@serverIP -p(port Number)

Fail2Ban para el inicio de sesión SSH
Fail2ban funciona alterando dinámicamente las reglas del cortafuegos para prohibir las direcciones que han intentado iniciar sesión sin éxito un determinado número de veces.
Instalar Fail2ban :
sudo apt-get update
apt-get install fail2ban
Crear un nuevo archivo jail.local y copiar el contenido de jail.config al mismo y hacer los cambios en el archivo jail.local solamente
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Editar /etc/fail2ban/jail.local file
Haga los cambios deseados:
enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)
Luego reinicie los servicios fail2ban
service fail2ban restart
La IP puede ser bloqueada permanentemente estableciendo bantime = -1.
Nota: FAIL2BAN bloqueará la IP Global .
La seguridad solía ser un inconveniente a veces, pero ahora es una necesidad todo el tiempo – Martina Navratilova
Gracias por leer . Si te ha resultado útil este artículo, unos aplausos significarían mucho.
Mantente en sintonía 🙂