25 consejos de seguridad para fortalecer los servidores Linux

25 consejos de seguridad para fortalecer los servidores Linux

Todo el mundo dice que Linux. es seguro de forma predeterminada y está de acuerdo en cierta medida (son temas debatibles). Sin embargo, Linux tiene un modelo de seguridad incorporado de forma predeterminada. Necesita ajustarlo y personalizarlo según sus necesidades, lo que puede ayudar a hacer un sistema más seguro. Linux es más difícil de administrar pero ofrece más flexibilidad y opciones de configuración.

 Consejos de seguridad y refuerzo de Linux  Consejos de seguridad y refuerzo de Linux 25 Seguridad de Linux y consejos de endurecimiento

Asegurar un sistema en una producción de las manos de piratas informáticos. y piratas informáticos. es una tarea desafiante para un administrador del sistema. Este es nuestro primer artículo relacionado con “ Cómo proteger una caja de Linux. o “ Fortalecimiento de una caja de Linux. . En esta publicación, explicaremos 25 consejos y trucos útiles. para proteger su sistema Linux. Espero que los siguientes consejos y trucos te ayuden a extender la seguridad de tu sistema.

1. Seguridad del sistema físico

Configure el BIOS. para deshabilitar el inicio desde CD/DVD. Dispositivos externos. Unidad de disquete. en BIOS. A continuación, habilite la contraseña de BIOS. y también proteja GRUB. con contraseña para restringir el acceso físico a su sistema.

  1. Establezca la contraseña de GRUB para proteger servidores Linux

2. Particiones de disco

Es importante tener diferentes particiones para obtener una mayor seguridad de los datos en caso de que ocurra algún desastre. Al crear diferentes particiones, los datos se pueden separar y agrupar. Cuando ocurre un accidente inesperado, solo se dañarán los datos de esa partición, mientras que los datos de otras particiones sobrevivirán. Asegúrese de tener las siguientes particiones separadas y asegúrese de que las aplicaciones de terceros deben instalarse en sistemas de archivos separados en /opt.

//boot/usr/var/home/tmp/opt

3. Minimizar paquetes para minimizar la vulnerabilidad

¿Realmente desea instalar todo tipo de servicios ?. Se recomienda evitar la instalación de paquetes inútiles para evitar vulnerabilidades en los paquetes. Esto puede minimizar el riesgo de que el compromiso de un servicio pueda llevar al compromiso de otros servicios. Busque y elimine o desactive los servicios no deseados del servidor para minimizar la vulnerabilidad. Utilice el comando ‘ chkconfig. para averiguar los servicios que se ejecutan en el nivel de ejecución 3.

#/sbin/chkconfig–list | grep ‘3: on’ freestar.config. chkconfig serviceName off

Utilice el administrador de paquetes RPM. como las herramientas “ yum. o “ apt-get. para enumerar todos los paquetes instalados en un sistema y elimínelos usando el siguiente comando.

# yum-y remove package-name # sudo apt-get remove package-name

  1. 5 ejemplos de comandos chkconfig
  2. 20 Práctica Ejemplos de comandos RPM
  3. 20 comandos YUM de Linux para la administración de paquetes de Linux
  4. 25 comandos APT-GET y APT-CACHE para administrar la administración de paquetes

4. Compruebe los puertos de red de escucha

Con la ayuda del comando de red “ netstat. , puede ver todos los puertos abiertos y los programas asociados. Como dije anteriormente, use el comando ‘ chkconfig. para deshabilitar todos los servicios de red no deseados del sistema.

# netstat-tulpn

  1. 20 comandos de Netstat para la administración de redes en Linux

5. Utilice Secure Shell (SSH)

Los protocolos Telnet. y rlogin. utilizan texto sin formato, no formato cifrado, que son las brechas de seguridad. SSH. es un protocolo seguro que utiliza tecnología de cifrado durante la comunicación con el servidor.

Nunca inicie sesión directamente como root. a menos que sea necesario. Utilice “ sudo. para ejecutar comandos. sudo se especifican en el archivo /etc/sudoers. también se pueden editar con la utilidad “ visudo. que se abre en el editor VI.

También se recomienda cambiar el número de puerto SSH 22. predeterminado por algún otro número de puerto de nivel superior. Abra el archivo de configuración principal SSH. y establezca algunos de los siguientes parámetros para restringir el acceso de los usuarios.

# vi/etc/ssh/sshd_config Desactivar inicio de sesión root PermitRootLogin no Permitir solo usuarios específicos Permitir nombre de usuario de usuarios Usar Protocolo SSH 2 Versión Protocolo 2

  1. 5 Mejores prácticas para asegurar y proteger el servidor SSH

6. Mantenga el sistema actualizado

Mantenga siempre actualizado el sistema con las últimas versiones, parches, correcciones de seguridad y kernel cuando esté disponible.

# yum updates # yum check-update

7. Lockdown Cronjobs

Cron. tiene su propia función incorporada, donde permite especificar quién puede y quién puede no querer ejecutar trabajos. Esto se controla mediante el uso de archivos llamados /etc/cron.allow. y /etc/cron.deny. Para bloquear a un usuario usando cron, simplemente agregue nombres de usuario en cron.deny. y para permitir que un usuario ejecute cron add en el archivo cron.allow. Si desea deshabilitar a todos los usuarios para que no usen cron, agregue la línea ‘ TODOS. al archivo cron.deny.

# echo ALL>>/etc/cron.deny

  1. 11 ejemplos de programación cron en Linux

8. Deshabilite la memoria USB para detectar

Muchas veces sucede que queremos restringir a los usuarios el uso de una memoria USB. en los sistemas para proteger y asegurar los datos contra el robo. Cree un archivo ‘/etc/modprobe.d/no-usb. y agregar la siguiente línea no detectará el almacenamiento USB.

instale usb-storage/bin/verdadero

9. Encienda SELinux

Linux con seguridad mejorada. ( SELinux. es un mecanismo de seguridad de control de acceso obligatorio proporcionado en el kernel. Deshabilitar SELinux. significa eliminar el mecanismo de seguridad del sistema. Piénselo dos veces antes de eliminarlo, si su sistema está conectado a Internet y el público accede a él, piense un poco más.

SELinux. proporciona tres modos básicos de funcionamiento y son .

  1. Cumplimiento. este es el modo predeterminado que habilita y aplica la política de seguridad de SELinux. en la máquina.
  2. Permisivo. en este modo, SELinux. no aplicará la política de seguridad en el sistema, solo advertirá y registrará acciones. Este modo es muy útil en términos de resolución de problemas relacionados con SELinux.
  3. Desactivado. SELinux. está desactivado.

Puede ver el estado actual del modo SELinux. desde la línea de comandos usando ‘ system-config-selinux. , ‘ getenforce. ‘o’ sestatus. ‘.

# sestatus

Si está deshabilitado, habilite SELinux. usando el siguiente comando.

# setenforce enforcing

También se puede administrar desde el archivo ‘/etc/selinux/config. , donde puede habilitarlo o deshabilitarlo.

10. Eliminar escritorios KDE/GNOME

No es necesario ejecutar escritorios X Window. como KDE. o GNOME. en su LÁMPARA dedicada servidor. Puede eliminarlos o deshabilitarlos para aumentar la seguridad del servidor y el rendimiento. Para deshabilitarlo, abra el archivo “/etc/inittab. y establezca el nivel de ejecución en 3. Si desea eliminarlo por completo del sistema, utilice el siguiente comando.

# yum groupremove “X Window System”

11. Desactive IPv6

Si no está utilizando un protocolo IPv6. debería desactivarlo porque la mayoría de las aplicaciones o políticas no requieren el protocolo IPv6. y actualmente no es necesario en el servidor. Vaya al archivo de configuración de red y agregue las siguientes líneas para deshabilitarlo.

# vi/etc/sysconfig/network NETWORKING_IPV6 = no IPV6INIT = no

12. Restringir a los usuarios para que utilicen contraseñas antiguas

Esto es muy útil si desea impedir que los usuarios utilicen las mismas contraseñas antiguas. El archivo de contraseña anterior se encuentra en /etc/security/opasswd. Esto se puede lograr utilizando el módulo PAM.

Abra el archivo ‘/etc/pam.d/system-auth. en RHEL/CentOS/Fedora.

# vi/etc/pam.d/system-auth

Abra el archivo ‘/etc/pam.d/common-password. en Ubuntu/Debian/Linux Mint.

# vi/etc/pam.d/common-password

Agregue la siguiente línea a la sección ‘ auth. .

auth suficiente pam_unix.so likeauth nullok

Agregue la siguiente línea a la sección ‘ contraseña. para impedir que un usuario reutilice las últimas 5. contraseña de su o ella.

contraseña suficiente pam_unix.so nullok use_authtok md5 shadow recordar = 5

El servidor solo recuerda las últimas 5. contraseñas. Si intentó utilizar alguna de las últimas 5. contraseñas antiguas, obtendrá un error como.

Ya se ha utilizado la contraseña. Elige otro.

13. Cómo comprobar la caducidad de la contraseña del usuario

En Linux, las contraseñas de los usuarios se almacenan en un archivo “/etc/shadow. en formato cifrado. Para verificar la caducidad de la contraseña del usuario, debe usar el comando “ chage. . Muestra información sobre los detalles de caducidad de la contraseña junto con la fecha del último cambio de contraseña. El sistema utiliza estos detalles para decidir cuándo un usuario debe cambiar su contraseña.

Para ver la información de antigüedad de cualquier usuario existente, como fecha de caducidad. y hora. use el siguiente comando.

#chage-l username

Para cambiar la antigüedad de la contraseña de cualquier usuario, use el siguiente comando.

#chage-M 60 username #chage-M 60-m 7-W 7 Parámetros de nombre de usuario

  1. -M. Establecer el número máximo de días
  2. -m. Establecer el número mínimo de días
  3. -W. Establezca el número de días de advertencia

14. Bloquear y desbloquear la cuenta manualmente

Las funciones de bloqueo y desbloqueo son muy útiles, en lugar de eliminar una cuenta del sistema, puede bloquearla durante una semana o un mes. Para bloquear a un usuario específico, puede usar el siguiente comando.

# passwd-l accountName

Nota. el usuario bloqueado todavía está disponible para el usuario root. solo. El bloqueo se realiza reemplazando la contraseña cifrada con una cadena (!. . Si alguien intenta acceder al sistema usando esta cuenta, recibirá un error similar al siguiente.

# su-accountName Esta cuenta no está disponible actualmente.

Para desbloquear o habilitar el acceso a una cuenta bloqueada, use el comando como. Esto eliminará (!. la cadena con la contraseña cifrada.

# passwd-u accountName

15. Aplicación de contraseñas más estrictas

Varios usuarios utilizan contraseñas blandas o débiles y su contraseña puede ser pirateada con un diccionario. o con ataques de fuerza bruta. El módulo “ pam_cracklib. está disponible en la pila de módulos PAM. ( Módulos de autenticación conectables. que obligará al usuario a establecer contraseñas seguras. Abra el siguiente archivo con un editor.

Lea también:

# vi/etc/pam.d/system-auth

Y agregue una línea usando parámetros de crédito como ( lcredit. ucredit. dcredi. t y/u ocredit. respectivamente en minúsculas, mayúsculas, dígitos y otros)

/lib/security/$ISA/pam_cracklib.so retry = 3 minlen = 8 lcredit =-1 ucredit =-2 dcredit =-2 ocredit =-1

16. Habilite Iptables (firewall)

Se recomienda encarecidamente habilitar el firewall de Linux. para proteger el acceso no autorizado a sus servidores. Aplique reglas en iptables. para filtrar paquetes entrantes. salientes. y reenviados. Podemos especificar la dirección de origen y destino para permitir y denegar en un número de puerto udp/tcp. específico.

  1. Consejos y guía básica de IPTables

17. Deshabilite Ctrl + Alt + Supr en Inittab

En la mayoría de las distribuciones de Linux, al presionar “ CTRL-ALT-DELETE”. su sistema se reiniciará. Por lo tanto, no es una buena idea tener esta opción habilitada al menos en los servidores de producción, si alguien lo hace por error.

Esto se define en el archivo ‘/etc/inittab. , si observa detenidamente ese archivo, verá una línea similar a la siguiente. Por defecto, la línea no está comentada. Tenemos que comentarlo. Esta señalización de secuencia de teclas en particular apagará un sistema.

# Trap CTRL-ALT-DELETE #ca :: ctrlaltdel:/sbin/shutdown-t3-r ahora

18. Comprobación de contraseñas vacías en las cuentas

Cualquier cuenta que tenga una contraseña vacía significa que está abierta para el acceso no autorizado a cualquier persona en la web y es parte de la seguridad dentro de un servidor Linux. Por lo tanto, debe asegurarse de que todas las cuentas tengan contraseñas seguras y que nadie tenga acceso autorizado. Las cuentas de contraseña vacías son riesgos de seguridad y se pueden piratear fácilmente. Para verificar si había cuentas con contraseña vacía, use el siguiente comando.

# cat/etc/shadow | awk-F: ‘($ 2 == “”) imprimir $ 1’

19. Mostrar banner SSH antes de iniciar sesión

Siempre es mejor tener un banner legal o banners de seguridad con algunas advertencias de seguridad antes de la autenticación SSH. Para configurar dichos banners, lea el siguiente artículo.

  1. Mostrar mensaje de advertencia SSH a los usuarios

20. Monitorear las actividades de los usuarios

Si está tratando con muchos usuarios, entonces es importante recopilar la información de las actividades y procesos de cada usuario consumidos por ellos y analizarlos en un momento posterior o en caso de que se produzca algún tipo de desempeño., temas de seguridad. Pero, ¿cómo podemos monitorear y recopilar información sobre las actividades de los usuarios?

Hay dos herramientas útiles llamadas “ psacct. y “ acct. que se utilizan para supervisar las actividades y los procesos de los usuarios en un sistema. Estas herramientas se ejecutan en un segundo plano del sistema y realizan un seguimiento continuo de la actividad de cada usuario en un sistema y los recursos consumidos por servicios como Apache. MySQL. SSH. FTP. etc. Para obtener más información sobre la instalación, la configuración y el uso, visite la siguiente URL.

  1. Supervise la actividad del usuario con los comandos psacct o acct

21. Revise los registros con regularidad

Mueva los registros en un servidor de registros dedicado, esto puede evitar que los intrusos modifiquen fácilmente los registros locales. A continuación se muestran el nombre de los archivos de registro predeterminados comunes de Linux y su uso:

  1. /var/log/message. donde están disponibles los registros de todo el sistema o los registros de actividad actual.
  2. /var/log/auth.log. registros de autenticación.
  3. /var/log/kern.log. registros del kernel.
  4. /var/log/cron.log. registros crond (trabajo cron).
  5. /var/log/maillog. Registros del servidor de correo.
  6. /var/log/boot.log. Registro de inicio del sistema.
  7. /var/log/mysqld.log. archivo de registro del servidor de base de datos MySQL.
  8. /var/log/secure. registro de autenticación.
  9. /var/log/utmp. o /var/log/wtmp. archivo de registros de inicio de sesión.
  10. /var/log/yum.lo. g: registro de Yum archivos.

22. Copia de seguridad de archivos importantes

En un sistema de producción, es necesario realizar copias de seguridad de archivos importantes y mantenerlos en una bóveda de seguridad, un sitio remoto o fuera del sitio para la recuperación de desastres.

23. Enlace NIC

Hay dos tipos de modo en el enlace NIC. es necesario mencionarlo en la interfaz de enlace.

  1. mode = 0. Round Robin
  2. mode = 1. Activo y de respaldo

NIC Bonding. nos ayuda a evitar un solo punto de falla. En la vinculación NIC. unimos dos o más tarjetas Ethernet de red. y creamos una única interfaz virtual donde podemos asignar una dirección IP. para hablar con otras servidores. Nuestra red estará disponible en caso de que una tarjeta NIC. esté inactiva o no esté disponible por algún motivo.

Lea también. Cree enlaces de canales NIC en Linux

24. Mantenga/boot como de solo lectura

El kernel de Linux y sus archivos relacionados están en el directorio /boot. que por defecto es lectura-escritura. Cambiarlo a solo lectura. reduce el riesgo de modificaciones no autorizadas de archivos de arranque críticos. Para hacer esto, abra el archivo “/etc/fstab. .

# vi/etc/fstab

Agregue la siguiente línea en la parte inferior, guárdela y ciérrela.

LABEL =/boot/boot ext2 defaults, ro 1 2

Tenga en cuenta que debe restablecer el cambio a lectura-escritura si necesita actualizar el kernel en el futuro.

25. Ignore ICMP o solicitud de transmisión

Agregue la siguiente línea en el archivo “/etc/sysctl.conf. para ignorar ping. o transmisión. solicitud.

Ignore la solicitud ICMP: net.ipv4.icmp_echo_ignore_all = 1 Ignore la solicitud de transmisión: net.ipv4.icmp_echo_ignore_broadcasts = 1

Cargue nuevas configuraciones o cambios, ejecutando el siguiente comando

#sysctl-p

Si ha pasado por alto algún consejo importante de seguridad o refuerzo en la lista anterior, o si tiene algún otro consejo que deba incluirse en la lista. Por favor, deje sus comentarios en nuestro cuadro de comentarios. TecMint. siempre está interesado en recibir comentarios, sugerencias y discusiones para mejorar.