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

Nov 28, 2021
admin
Megha Pandey
Megha Pandey

Follow

Oct 5, 2017 – 6 min read

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 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada.