25 Consejos de seguridad de endurecimiento para servidores Linux

25 Consejos de seguridad de endurecimiento para servidores Linux

Todos dicen eso Linux es seguro de forma predeterminada y acordó alguna extensión (son temas discutibles). Sin embargo, Linux tiene un modelo de seguridad incorporado en su lugar por defecto. Necesita sintonizarlo y personalizar según su necesidad, lo que puede ayudar a fabricar un sistema más seguro. Linux es más difícil de administrar, pero ofrece más opciones de flexibilidad y configuración.

25 consejos de seguridad y endurecimiento de Linux

Asegurar un sistema en una producción de manos de hackers y galletas es una tarea desafiante para un Administrador de sistema. Este es nuestro primer artículo relacionado con "Cómo asegurar la caja de Linux" o "Endurecer una caja de Linux". En esta publicación explicaremos 25 consejos y trucos útiles Para asegurar su sistema Linux. Espero que los consejos y trucos a continuación te ayuden a extenderse para asegurar tu sistema.

1. Seguridad del sistema físico

Configurar el Biografía para deshabilitar el arranque desde CD/DVD, Dispositivos externos, Unidad de disquete en Biografía. A continuación, habilitar Biografía contraseña y también proteger COMIDA con contraseña para restringir el acceso físico de su sistema.

  1. Establezca una contraseña de grub para proteger los servidores de Linux

2. Particiones de disco

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

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

3. Minimizar los paquetes para minimizar la vulnerabilidad

¿De verdad quieres todo tipo de servicios instalados??. Se recomienda evitar la instalación de paquetes inútiles para evitar vulnerabilidades en paquetes. Esto puede minimizar el riesgo de que el compromiso de un servicio pueda conducir al compromiso de otros servicios. Buscar y eliminar o deshabilitar los servicios no deseados del servidor para minimizar la vulnerabilidad. Utilizar el 'chkconfig'Comando para encontrar servicios que se están ejecutando en RunLevel 3.

# /sbin /chkconfig --list | grep '3: on'

Una vez que haya descubierto que cualquier servicio no deseado se está ejecutando, desactívelos utilizando el siguiente comando.

# Chkconfig ServiceName Off

Utilizar el Rpm Administrador de paquetes como "beque" o "apt-get"Herramientas para enumerar todos los paquetes instalados en un sistema y eliminarlos con el siguiente comando.

# yum -y eliminar el nombre del paquete
# sudo apt-get eliminar el nombre del paquete
  1. 5 ejemplos de comando chkconfig
  2. 20 ejemplos prácticos de comandos de rpm
  3. 20 comandos de Linux Yum para la administración de paquetes de Linux
  4. 25 comandos apt-get y apt-cache para administrar la administración de paquetes

4. Verifique los puertos de red de escucha

Con la ayuda de 'netstat'Comando de red puede ver todos los puertos abiertos y programas asociados. Como dije, usa anteriormente 'chkconfig'Comando para deshabilitar todos los servicios de red no deseados del sistema.

# netstat -tulpn
  1. 20 comandos NetStat para la gestión de redes en Linux

5. Use Shell Secure (SSH)

Telnet y rlogin Protocols usa texto sin formato, no formato cifrado, que son las violaciones 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 raíz a menos que sea necesario. Usar "sudo"Para ejecutar comandos. sudo se especifican en /etc/sudoers El archivo también se puede editar con el "visudo"Utilidad que se abre en VI editor.

También se recomienda cambiar el valor predeterminado SSH 22 número de puerto con algún otro número de puerto de nivel superior. Abra la principal Ssh archivo de configuración y hacer algunos siguientes parámetros para restringir a los usuarios a acceder.

# vi/etc/ssh/sshd_config
Deshabilitar el inicio de sesión de la raíz
Permitrootlogin no
Solo permite usuarios específicos
Nombre de usuario
Use la versión SSH Protocol 2
Protocolo 2
  1. 5 mejores prácticas para asegurar y proteger el servidor SSH

6. Mantenga el sistema actualizado

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

# Actualizaciones de Yum # Yum Check-Update

7. Lockdown Cronjobs

Cron tiene su propia función integrada, donde permite especificar quién puede y quién no quiera ejecutar trabajos. Esto se controla mediante el uso de archivos llamados /etc/cron.permitir y /etc/cron.denegar. Para bloquear a un usuario con Cron, simplemente agregue los nombres de usuario cron.denegar y para permitir que un usuario ejecute cron agregar cron.permitir archivo. Si desea deshabilitar a todos los usuarios que usen Cron, agregue el 'TODO'Línea a cron.denegar archivo.

# echo a todos >>/etc/cron.denegar
  1. 11 ejemplos de programación de Cron en Linux

8. Deshabilitar el palo USB para detectar

Muchas veces sucede que queremos restringir a los usuarios de usar USB pegarse en sistemas para proteger y asegurar datos del robo. Crear un archivo '/etc/modprobe.D/NO-USB'Y agregar la línea a continuación no detectará USB almacenamiento.

Instale USB Storage /bin /True

9. Encienda Selinux

Linux mejorado con seguridad (Selinux) es un mecanismo de seguridad de control de acceso obligatorio proporcionado en el núcleo. Incapacitante Selinux significa eliminar el mecanismo de seguridad del sistema. Piense dos veces con cuidado antes de eliminar, si su sistema está adjunto a Internet y el público accede al público, entonces piense un poco más en él.

Selinux proporciona tres modos básicos de operación y son.

  1. Ejecución: Este es el modo predeterminado que habilita y aplica el Selinux Política de seguridad en la máquina.
  2. Permisivo: En este modo, Selinux no aplicará la política de seguridad del sistema, solo advertir y registrar acciones. Este modo es muy útil en términos de solución de problemas Selinux asuntos relacionados.
  3. Desactivado: Selinux esta apagado.

Puede ver el estado actual de Selinux modo desde la línea de comando usando 'sistema-config-selinux','Getenforce' o 'sestatus'Comandos.

# sestatus

Si está deshabilitado, habilitar Selinux Usando el siguiente comando.

# Setenforce aplicando

También se puede gestionar de '/etc/selinux/config'Archivo, donde puede habilitarlo o deshabilitarlo.

10. Eliminar escritorios KDE/gnomo

No hay necesidad de correr X ventana escritorios como Kde o GNOMO en su servidor de lámpara dedicado. Puede eliminarlos o deshabilitarlos para aumentar la seguridad del servidor y el rendimiento. Para deshabilitar simple, abra el archivo '/etc/inittab'y establecer el nivel de ejecución a 3. Si desea eliminarlo por completo del sistema, use el siguiente comando.

# Yum Groupremove "X Sistema de ventana"

11. Apague IPv6

Si no estás usando un IPv6 Protocolo, entonces debe deshabilitarlo porque la mayoría de las aplicaciones o políticas no se requieren IPv6 Protocolo y actualmente no se requiere en el servidor. Vaya al archivo de configuración de red y agregue las líneas de seguimiento para deshabilitarlo.

# vi/etc/sysconfig/red
Networking_ipv6 = no ipv6Init = no

12. Restringir a los usuarios para usar contraseñas antiguas

Esto es muy útil si desea no permitir a los usuarios usar las mismas contraseñas antiguas. El archivo de contraseña anterior se encuentra en /etc/seguridad/opasswd. Esto se puede lograr usando Pam módulo.

Abierto '/etc/pam.D/System-Auth'Archivo bajo Rhel / Centos / Fedora.

# vi /etc /pam.D/System-Auth

Abierto '/etc/pam.d/pasas comunes'Archivo bajo Ubuntu/Debian/Linux Mint.

# vi /etc /pam.d/pasas comunes

Agregue la siguiente línea a 'auténtico' sección.

Auth suficiente pam_unix.así que me gusta nullok

Agregue la siguiente línea a 'contraseña'Sección para no permitir que un usuario reutilice el último 5 contraseña de su.

contraseña suficiente pam_unix.Entonces nullok use_authtok md5 shadow recuerda = 5

Solo el último 5 El servidor recuerda a las contraseñas. Si intentaste usar alguno de los últimos 5 Contraseñas antiguas, obtendrá un error como.

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

13. Cómo verificar el vencimiento de la contraseña del usuario

En Linux, las contraseñas del usuario se almacenan en '/etc/sombra'Archivo en formato cifrado. Para verificar el vencimiento de la contraseña de los usuarios, debe usar 'cajón' dominio. Muestra información de los detalles de vencimiento de la contraseña junto con la última fecha de cambio de contraseña. Estos detalles son utilizados por el sistema para decidir cuándo un usuario debe cambiar su contraseña.

Para ver la información de envejecimiento de cualquier usuario existente, como fecha de caducidad y tiempo, Use el siguiente comando.

#Chage -L Nombre de usuario

Para cambiar el envejecimiento de la contraseña de cualquier usuario, use el siguiente comando.

#Chage -M 60 Nombre de usuario #Chage -M 60 -M 7 -W 7 Nombre de usuario
Parámetros
  1. -METRO Establecer un número máximo de días
  2. -metro Establecer un número mínimo de días
  3. -W Establecer el número de días de advertencia

14. Bloquear y desbloquear la cuenta manualmente

Las características 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 comando Seguir.

# PASSWD -L Nombre de cuenta

Nota : El usuario bloqueado todavía está disponible para raíz solo usuario. El bloqueo se realiza reemplazando la contraseña encriptada con un (!) cadena. Si alguien que intenta acceder al sistema usando esta cuenta, obtendrá un error similar al siguiente.

# SU - Nombre de cuenta Esta cuenta actualmente no está disponible.

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

# PASSWD -U Nombre de cuenta

15. Hacer cumplir contraseñas más fuertes

Varios usuarios usan contraseñas suaves o débiles y su contraseña puede ser pirateada con un basado en el diccionario o ataques de fuerza bruta. El 'pam_cracklib'El módulo está disponible en Pam (Módulos de autenticación conectables) Pila de módulos que obligará al usuario a establecer contraseñas seguras. Abra el siguiente archivo con un editor.

Leer también:

# vi /etc /pam.D/System-Auth

Y agregar línea usando parámetros de crédito como (LCREDIT, UCREDIT, dcredit y/o ocredito respectivamente más bajo, caso superior, dígito y otros)

/lib/seguridad/$ ISA/PAM_CRACKLIB.entonces volver a intentar = 3 minlen = 8 lcredit = -1 ucredit = -2 dCredit = -2 ocredit = -1

dieciséis. Habilitar iptables (firewall)

Es muy recomendable para habilitar Firewall de Linux Para asegurar el acceso no autorizado de sus servidores. Aplicar reglas en iptables a los filtros entrante, extrovertido y reenvío paquetes. Podemos especificar la dirección de origen y destino para permitir y negar en específico UDP/TCP número de puerto.

  1. Guía y consejos básicos de iptables

17. Deshabilitar Ctrl+Alt+Eliminar en Inittab

En la mayoría de las distribuciones de Linux, presionando 'Ctrl-alt-late ' Tomará su sistema para reiniciar el proceso. Por lo tanto, no es una buena idea tener esta opción habilitada al menos en los servidores de producción, si alguien hace por error esto.

Esto se define en '/etc/inittab'Archivo, si mira de cerca en ese archivo, verá una línea similar a la siguiente. Por defecto, la línea no se comenta fuera. Tenemos que comentarlo. Esta señalización de secuencia de clave particular cerrará un sistema.

# TRAP CTRL -ALT -DELETE #CA :: CtrlaltDel:/sbin/shutdown -t3 -r ahora

18. Referencia de cuentas para contraseñas vacías

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

# Cat /Etc /Shadow | AWK -F: '($ 2 == "") imprima $ 1'

19. Mostrar banner SSH antes de iniciar sesión

Siempre es una mejor idea tener una pancarta legal o pancartas de seguridad con algunas advertencias de seguridad antes de la autenticación de SSH. Para establecer tales banners, lea el siguiente artículo.

  1. Mostrar mensaje de advertencia de SSH a los usuarios

20. Monitorear las actividades del usuario

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 algún tipo de rendimiento, problemas de seguridad. Pero cómo podemos monitorear y recopilar información de actividades del usuario.

Hay dos herramientas útiles llamadas 'psacct' y 'accidente'se utilizan para monitorear las actividades y procesos de los usuarios en un sistema. Estas herramientas se ejecutan en un fondo de un sistema y rastrea continuamente cada actividad del usuario en un sistema y 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 URL a continuación.

  1. Monitorear la actividad del usuario con comandos PSACCT o ACCT

21. Revise los registros regularmente

Mover los registros en el servidor de registro 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 de Linux comunes y su uso:

  1. /var/log/mensaje - Donde están disponibles los registros de sistemas completos o los registros de actividad actuales.
  2. /var/log/auth.registro - Registros de autenticación.
  3. /var/log/kern.registro - Registros de núcleo.
  4. /var/log/cron.registro - Logs de Crond (trabajo cron).
  5. /var/log/maillog - Registros del servidor de correo.
  6. /var/log/boot.registro - Registro de arranque del sistema.
  7. /var/log/mysqld.registro - Archivo de registro del servidor de base de datos mysql.
  8. /var/log/seguro - Registro de autenticación.
  9. /var/log/utmp o /var/log/wtmp : Archivo de registros de inicio de sesión.
  10. /var/log/yum.holgazaneríaG: archivos de registro YUM.

22. Copia de seguridad de archivo importante

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

23. Nic unión

Hay dos tipos de modo en Nic vinculación, debe mencionar en la interfaz de unión.

  1. modo = 0 - Roble redondo
  2. modo = 1 - Activo y de respaldo

Nic unión nos ayuda a evitar un solo punto de falla. En Nic vinculación, unimos dos o más Tarjetas de red de red juntos y hacer una sola interfaz virtual donde podemos asignar IP dirección para hablar con otros servidores. Nuestra red estará disponible en caso de uno Tarjeta NIC está inactivo o no está disponible por cualquier motivo.

Leer también : Cree unión de canales NIC en Linux

24. Keep /Boot como solo lectura

Linux Kernel y sus archivos relacionados están en /bota directorio que es por defecto como leer escribir. Cambiándolo a solo lectura Reduce el riesgo de modificación no autorizada de archivos de arranque críticos. Para hacer esto, abra "/etc/fstab" archivo.

# vi /etc /fstab

Agregue la siguiente línea en la parte inferior, guárdela y cierre.

Label = /Boot /Boot Ext2 Defaults, RO 1 2

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

25. Ignorar ICMP o solicitud de transmisión

Agregue la línea siguiente en "/etc/sysctl.confusiónArchivo para ignorar silbido o transmisión pedido.

Ignorar la solicitud ICMP: NET.IPv4.ICMP_ECHO_IGNORE_ALL = 1 Ignorar la solicitud de transmisión: NET.IPv4.ICMP_ECHO_IGNORE_BROADCASS = 1

Cargar nuevas configuraciones o cambios, ejecutando el siguiente comando

#sysctl -p

Si se ha perdido alguna seguridad importante o sugerencia de endurecimiento en la lista anterior, o tiene cualquier otro consejo que deba ser incluido en la lista. Por favor, deje sus comentarios en nuestro cuadro de comentarios. Tecmenta siempre está interesado en recibir comentarios, sugerencias y discusión para mejorar.