Servidor Linux seguro es fundamental para proteger nuestros datos de los piratas informáticos. Pero asegurar un servidor no requiere ser complicado. Aquí hemos recopilado 7 consejos útiles para mejorar la seguridad del servidor Linux
Consejos para proteger el servidor Linux
La primera regla es mantener su servidor delgado y mezquino. Instale solo los paquetes que realmente necesita. Si hay paquetes no deseados; purga. Cuanto menor sea el número de paquetes, menor será la posibilidad de código sin parche.
Encienda SELinux
Security-Enhanced Linux (SELinux) es un mecanismo de seguridad de control de acceso proporcionado en el kernel. Puede hacer cumplir fácilmente una política de seguridad de su elección, que es imprescindible para un servidor Linux sólido como una roca.
SELinux proporciona 3 modos básicos de operación:
- Hacer cumplir: Este es el modo predeterminado que habilita y aplica la política de seguridad de SELinux en la máquina.Permisivo: En este modo, SELinux no impondrá la política de seguridad en el sistema, solo advertirá y registrará acciones.Discapacitado: SELinux está apagado.
Se puede gestionar desde ‘/ etc / selinux / config‘archivo, donde puede habilitarlo o deshabilitarlo.
CentOS y RedHat Enterprise Linux se envían con el sistema de seguridad SELinux. Está preconfigurado para una buena seguridad, por lo que no se necesitan más instrucciones.
Para configurarlo en el servidor de Ubuntu, use: sudo apt install selinux
Debian: sudo apt-get install selinux-basics selinux-policy-default auditd
Acceso seguro a la consola
Debe proteger el acceso a la consola de los servidores Linux desactivando el arranque desde dispositivos externos como DVD / CD / lápiz USB después de la configuración del BIOS. Además, establezca la contraseña del cargador de arranque de grub y BIOS para proteger estas configuraciones.
Restringir el uso de contraseñas antiguas
Podemos restringir a los usuarios para que utilicen las mismas contraseñas antiguas. El archivo de contraseña anterior se encuentra en / etc / security / opasswd. Esto se puede hacer usando el módulo PAM.
Abierto ‘/etc/pam.d/system-auth‘archivo bajo RHEL / CentOS / Fedora.
# vi /etc/pam.d/system-auth
Abierto ‘/etc/pam.d/common-password‘archivo bajo Ubuntu / Debian / Linux.
# vi /etc/pam.d/common-password
Agregue la siguiente línea a ‘auth ‘ sección.
auth sufficient pam_unix.so likeauth nullok
Agregue la siguiente línea a ‘contraseña‘para no permitir que un usuario reutilice las últimas 3 contraseñas.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3
El servidor recuerda las últimas 3 contraseñas. Si intentó utilizar cualquiera de las últimas 3 contraseñas antiguas, obtendrá un error como.
Ya se ha utilizado la contraseña. Seleccione otro
Compruebe los puertos de escucha
Utilizar ‘netstat‘comando para ver los puertos abiertos y los servicios correspondientes.
netstat -tunlp
Deshabilite los servicios no deseados del sistema usando ‘chkconfig ‘ comando y cierre los puertos que no sean necesarios.
chkconfig serviceName off
Deshabilitar el inicio de sesión de root
Al cerrar el acceso a la cuenta Root, podrá asegurarse de que los delincuentes no puedan obtener acceso completo a los archivos del sistema, instalar software problemático (como malware), etc. No es aconsejable utilizar SSH en su servidor como superusuario (root) . Debemos deshabilitar ssh como usuario root en el servidor, pero antes de hacerlo, creemos un usuario con poderes sudo para que pueda ingresar al servidor y realizar tareas administrativas. Una vez que haya iniciado sesión en el servidor, siempre puede cambiar de usuario a root, si es necesario.
Crea un nuevo usuario:
useradd user1
Crear contraseña para el usuario agregado:
passwd user1
Proporcione permisos de sudo al usuario recién agregado:
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers
SSH al servidor con el nuevo usuario y asegúrese de que el inicio de sesión funcione.
Ahora vamos a deshabilitar 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 hacerlo, abra el archivo de configuración sshd:
nano /etc/ssh/sshd_conf
A continuación, descomente la línea que dice
PermitRootLogin no
Luego guarde y cierre este archivo y reinicie el servicio
service sshd restart
Importante: no cierre sesión en el servidor todavía. Primero pruebe si puede ssh exitosamente en el servidor usando el usuario creado previamente. Abra otra instancia de la terminal y ssh en el servidor con el usuario que creó anteriormente. Si todo funciona bien, puede cerrar la sesión del servidor como root de forma segura.
Cambiar el puerto
Podemos cambiar el puerto SSH predeterminado para agregar una capa de opacidad para mantener su servidor seguro.
Abra el archivo / etc / ssh / sshd_config
reemplace el puerto predeterminado 22 con un número de puerto diferente, digamos 1110
guardar y salir del archivo
service sshd restart
Ahora, para iniciar sesión, defina el número de puerto.
ssh username@IP -p 1110
Deshabilitar Ctrl + Alt + Delete en Inittab
Golpeando Ctrl + Alt + Suprimir llevará su servidor al proceso de reinicio. Por lo tanto, siempre es recomendable desactivarlo, ya que alguien puede reiniciar el sistema por error.
La acción ctrl + Alt + Supr se define en /etc/init/control-alt-delete.conf. Comente la siguiente línea
#start on control-alt-delete
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. Solo tenga cuidado de poder iniciar sesión en su servidor solo desde esa máquina en la que generó las claves ssh
Generando claves SSH:
ssh-keygen – t rsa
Copie su clave SSH pública, luego agregue la misma en el servidor
cat ~/.ssh/id_rsa.pub
Para agregar claves ssh en el servidor
Supongamos que tenemos user-user1 para proporcionar acceso con clave ssh al servidor
cd /home/user1 ls -ll
Cree un directorio .ssh y dentro de él cree un archivo llamadoautorized_keys y agregue la clave pública ssh del usuario en el mismo
mkdir .ssh cd /home/admin/.ssh vim authorized_keys
Agregue la clave SSH pública y luego cambie el propietario del archivo
chown user1 authorized_keys
Deshabilitar el inicio de sesión ssh
Edite / etc / ssh / sshd_config
Passwordauthentication no PermitRootLogin no
Ahora, solo el usuario autorizado puede iniciar sesión en el servidor con el comando
ssh user-name@serverIP -p(port Number)
Apague IPv6 para aumentar la seguridad del servidor Linux
IPv6 es mejor que IPv4, pero probablemente no esté obteniendo mucho de él porque tampoco nadie más. Los piratas informáticos obtienen algo de él, porque lo usan para enviar tráfico malicioso, por lo que cerrar IPv6 les cerrará la puerta en la cara. Vaya a editar / etc / sysconfig / network y cambie la configuración para leer NETWORKING_ IPV6 = no e IPV6INIT = no. Simple como eso.
Utilice SFTP, no FTP
El protocolo de transferencia de archivos (FTP) ya no es seguro, incluso si encripta su conexión. FTP y FTPS no lo mantendrán a salvo de la detección de paquetes, que es donde otra persona registra el tráfico de su red. Solo las credenciales están encriptadas, lo que no es de mucha utilidad para nadie.
SFTP es “FTP sobre SSH” (también llamado “FTP seguro”), y cifra todos los datos, credenciales y archivos incluidos.
Instale siempre actualizaciones
Esto parece un punto obvio, pero le sorprendería saber cuántos operadores de servidores Linux renuncian a las actualizaciones de su sistema. La elección es comprensible, ya que cada actualización tiene el potencial de arruinar las aplicaciones en ejecución, pero al optar por evitar las actualizaciones del sistema, se pierde los parches de seguridad que corrigen vulnerabilidades y errores que los piratas informáticos usan para violar los sistemas Linux.
Es cierto que la actualización en un servidor Linux de producción es mucho más molesta que nunca en el escritorio. El simple hecho es que no se puede detener todo para instalar parches. Para evitar esto, considere la posibilidad de configurar un programa de actualización planificado.
Para ser claros, no hay una ciencia establecida sobre los horarios de actualización. Pueden variar según su caso de uso, pero es mejor instalar parches semanalmente o quincenalmente para una máxima seguridad.
Fail2Ban para 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 cierto número de veces.
Instale Fail2ban:
sudo apt-get update apt-get install fail2ban
Cree un nuevo archivo jail.local y copie el contenido de jail.config al mismo y realice los cambios solo en el archivo jail.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edite el archivo /etc/fail2ban/jail.local
Realice los cambios deseados:
[sshd] 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 reinicia los servicios fail2ban
service fail2ban restart
La IP se puede bloquear permanentemente configurando 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