Asegurar su servidor Linux es importante proteger sus datos, propiedad intelectual, y el tiempo, de las manos de galletas (hackers). El administrador del sistema es responsable de la seguridad de la caja de Linux. En esta primera parte de una serie de seguridad del servidor Linux, proporcionaré 40 consejos para fortalecer el servidor Linux para la instalación predeterminada del sistema Linux.
Consejos y lista de verificación de seguridad para servidores basados Linux
Las siguientes instrucciones suponen que está utilizando la distribución de Linux basada en CentOS / RHEL o Ubuntu / Debian.
1. Cifrar la comunicación de datos para el servidor Linux
Todos los datos transmitidos a través de una red están abiertos a monitoreo. Cifre los datos transmitidos siempre que sea posible con contraseña o usando claves / certificados.
- Use scp, ssh , rsync o sftp para la transferencia de archivos. También puede montar el sistema de archivos del servidor remoto o su propio directorio de inicio utilizando herramientas especiales de sshfs y fusibles.
- GnuPG permite cifrar y firmar sus datos y comunicaciones, presenta un sistema de administración de claves versátil, así como módulos de acceso para todo tipo de directorios de claves públicas.
- OpenVPN es una VPN SSL ligera y rentable. Otra opción es probar tinc que utiliza túneles y cifrado para crear una red privada segura entre hosts en Internet o LAN privada insegura.
- Lighttpd SSL (Secure Server Layer) Configuración e instalación de HTTP
- Configuración e instalación de Apache SSL (Secure Server Layer) Https (mod_ssl)
- Cómo configurar Nginx con el certificado SSL Let’s Encrypt gratuito en Debian o Ubuntu Linux
2. Evite el uso de servicios FTP, Telnet y Rlogin / Rsh en Linux
En la mayoría de las configuraciones de red, cualquier persona en la misma red puede capturar nombres de usuario, contraseñas, comandos FTP / telnet / rsh y archivos transferidos utilizando un sniffer de paquetes. La solución común a este problema es usar OpenSSH , SFTP o FTPS (FTP sobre SSL), que agrega cifrado SSL o TLS a FTP. Escriba el siguiente comando yum para eliminar NIS, rsh y otros servicios obsoletos:
# yum erase xinetd ypserv tftp-server telnet-server rsh-server
Si está utilizando un servidor basado en Debian / Ubuntu Linux, intente apt-get command / apt command para eliminar servicios inseguros:
$ sudo apt-get --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server
3. Minimice el software para minimizar la vulnerabilidad en Linux
¿Realmente necesita todo tipo de servicios web instalados? Evite instalar software innecesario para evitar vulnerabilidades en el software. Use el administrador de paquetes RPM como yum o apt-get y / o dpkg para revisar todo el conjunto de paquetes de software instalados en un sistema. Eliminar todos los paquetes no deseados. O
# yum list installed
# yum list packageName
# yum remove packageName
# dpkg --list
# dpkg --info packageName
# apt-get remove packageName
4. Un servicio de red por sistema o instancia de VM
Ejecute diferentes servicios de red en servidores separados o instancia de VM . Esto limita la cantidad de otros servicios que pueden verse comprometidos. Por ejemplo, si un atacante puede explotar con éxito un software como el flujo de Apache, tendrá acceso a todo el servidor, incluidos otros servicios como MySQL / MariaDB / PGSql, servidor de correo electrónico, etc.
5. Mantenga actualizado el kernel de Linux y el software
La aplicación de parches de seguridad es una parte importante del mantenimiento del servidor Linux. Linux proporciona todas las herramientas necesarias para mantener actualizado su sistema, y también permite actualizaciones fáciles entre versiones. Toda actualización de seguridad debe revisarse y aplicarse lo antes posible. Nuevamente, use el administrador de paquetes RPM como yum y / o apt-get y / o dpkg para aplicar todas las actualizaciones de seguridad.
# yum update
O bien,
# apt-get update && apt-get upgrade
puede configurar Red hat / CentOS / Fedora Linux para enviar notificaciones de actualización del paquete yum por correo electrónico . Otra opción es aplicar todas las actualizaciones de seguridad a través de un trabajo cron. En Debian / Ubuntu Linux puede usar apticron para enviar notificaciones de seguridad. Tambien eses posible configurar actualizaciones desatendidas para su servidor Debian / Ubuntu Linux usando apt-get command / apt command :
$ sudo apt-get install unattended-upgrades apt-listchanges bsd-mailx
6. Use extensiones de seguridad de Linux
Linux viene con varios parches de seguridad que pueden usarse para protegerse contra programas mal configurados o comprometidos. Si es posible, use SELinux y otras extensiones de seguridad de Linux para imponer limitaciones en la red y otros programas. Por ejemplo, SELinux proporciona una variedad de políticas de seguridad para el kernel de Linux.
7. SELinux
Se recomienda utilizar SELinux, que proporciona un control de acceso obligatorio (MAC) flexible. Según el Control de acceso discrecional (DAC) de Linux estándar, una aplicación o proceso que se ejecuta como usuario (UID o SUID) tiene los permisos del usuario para objetos como archivos, sockets y otros procesos. Ejecutar un núcleo MAC protege el sistema de aplicaciones maliciosas o defectuosas que pueden dañar o destruir el sistema. Consulte la documentación oficial de Redhat que explica la configuración de SELinux.
8. Cuentas de usuario de Linux y política de contraseña segura
Use los comandos useradd / usermod para crear y mantener cuentas de usuario. Asegúrese de tener una política de contraseña buena y sólida. Por ejemplo, una buena contraseña incluye al menos 8 caracteres de largo y una combinación de alfabetos, número, caracteres especiales, alfabetos superiores e inferiores, etc. Lo más importante es elegir una contraseña que pueda recordar. Use herramientas como » John the ripper » para encontrar contraseñas de usuarios débiles en su servidor. Configure pam_cracklib.so para hacer cumplir la política de contraseña.
9. Configure el envejecimiento de la contraseña para usuarios de Linux para una mejor seguridad
El comando chage cambia el número de días entre los cambios de contraseña y la fecha del último cambio de contraseña. El sistema utiliza esta información para determinar cuándo un usuario debe cambiar su contraseña. El archivo /etc/login.defs define la configuración específica del sitio para el conjunto de contraseñas ocultas, incluida la configuración de antigüedad de la contraseña. Para deshabilitar la caducidad de la contraseña, ingrese:
# chage -M 99999 userName
Para obtener información sobre la caducidad de la contraseña, ingrese:
# chage -l userName
Finalmente, también puede editar el archivo / etc / shadow en los siguientes campos:
{userName}: {contraseña}: {lastpasswdchanged}: {Minimum_days}: {Maximum_days}: {Warn}: {Inactive}: {Expire}:
Dónde,
- Minimum_days : la cantidad mínima de días necesarios entre los cambios de contraseña, es decir, la cantidad de días que quedan antes de que el usuario pueda cambiar su contraseña.
- Maximum_days : el número máximo de días que la contraseña es válida (después de que el usuario se vea obligado a cambiar su contraseña).
- Advertencia : el número de días antes de que caduque la contraseña se advierte al usuario que se debe cambiar su contraseña.
- Vencimiento : días desde el 1 de enero de 1970, esa cuenta está deshabilitada, es decir, una fecha absoluta que especifica cuándo ya no se puede usar el inicio de sesión.
Recomiendo el comando chage en lugar de editar el archivo / etc / shadow a mano:
# chage -M 60 -m 7 -W 7 userName
Lecturas recomendadas:
- Linux: obligar a los usuarios a cambiar sus contraseñas al iniciar sesión por primera vez
- Linux enciende / apaga la caducidad / caducidad de la contraseña
- Bloquear la contraseña del usuario
- Buscar todas las cuentas sin contraseña y bloquearlas
- Use grupos de Linux para mejorar la seguridad
10. Restringir el uso de contraseñas anteriores en Linux
Puede evitar que todos los usuarios usen o reutilicen las mismas contraseñas antiguas en Linux. El parámetro del módulo pam_unix remember se puede usar para configurar el número de contraseñas anteriores que no se pueden reutilizar.
11. Bloqueo de cuentas de usuario después de fallas de inicio de sesión
En Linux, puede usar el comando faillog para mostrar registros de faillog o establecer límites de falla de inicio de sesión. faillog formatea el contenido del registro de fallas desde / var / log / faillog database / log file. También se puede usar para mantener contadores de fallas y límites. Para ver intentos fallidos de inicio de sesión, ingrese:
faillog
Para desbloquear una cuenta después de fallas de inicio de sesión, ejecute:
faillog -r -u userName
Tenga en cuenta que puede usar el comando passwd para bloquear y desbloquear cuentas:
# lock Linux account
passwd -l userName
# unlock Linux account
passwd -u userName
12. ¿Cómo verifico que ninguna cuenta tenga contraseñas vacías?
Escriba el siguiente comando
# awk -F: '($2 == "") {print}' /etc/shadow
Bloquear todas las cuentas de contraseña vacías:
# passwd -l accountName
13. Asegúrese de que ninguna cuenta no root tenga UID establecido en 0
Solo la cuenta raíz tiene UID 0 con permisos completos para acceder al sistema. Escriba el siguiente comando para mostrar todas las cuentas con UID establecido en 0:
# awk -F: '($3 == "0") {print}' /etc/passwd
solo debería ver una línea de la siguiente manera:
root: x: 0: 0: root: / root: / bin / bash
Si ve otras líneas, elimínelas o asegúrese de que otras cuentas estén autorizadas por usted para usar el UID 0.
14. Deshabilitar el inicio de sesión root
Nunca inicie sesión como usuario root. Debe usar sudo para ejecutar comandos de nivel raíz cuando sea necesario. sudo mejora enormemente la seguridad del sistema sin compartir la contraseña de root con otros usuarios y administradores. sudo también proporciona funciones simples de auditoría y seguimiento .
15. Seguridad física del servidor
Debe proteger el acceso a la consola física de los servidores Linux. Configure el BIOS y desactive el arranque desde dispositivos externos como DVD / CD / lápiz USB. Configure el BIOS y la contraseña del cargador de arranque de grub para proteger esta configuración. Todos los cuadros de producción deben estar bloqueados en IDC (Centros de datos de Internet) y todas las personas deben pasar algún tipo de controles de seguridad antes de acceder a su servidor.
16. Desactiva los servicios de Linux no deseados
Deshabilite todos los servicios y demonios innecesarios (servicios que se ejecutan en segundo plano). Debe eliminar todos los servicios no deseados del inicio del sistema. Escriba el siguiente comando para enumerar todos los servicios que se inician en el momento del arranque en el nivel de ejecución # 3:
# chkconfig --list | grep '3:on'
Para deshabilitar el servicio, ingrese:
# service serviceName stop
# chkconfig serviceName off
Una nota sobre la distribución y servicios de Linux basados en systemd
Las distribuciones modernas de Linux con systemd usan el comando systemctl para el mismo propósito.
IMPRIMA UNA LISTA DE SERVICIOS QUE ENUMERA QUÉ NIVELES DE EJECUCIÓN ESTÁN CONFIGURADOS CADA UNO
# systemctl list-unit-files --type=service
# systemctl list-dependencies graphical.target
APAGUE EL SERVICIO AL MOMENTO DEL ARRANQUE
# systemctl disable service
# systemctl disable httpd.service
INICIAR / DETENER / REINICIAR SERVICIO
# systemctl disable service
# systemctl disable httpd.service
Obtener estado del servicio
# systemctl status service
# systemctl status httpd.service
VER MENSAJES DE REGISTRO
# journalctl
# journalctl -u network.service
# journalctl -u ssh.service
# journalctl -f
# journalctl -k
17. Encuentra puertos de red de escucha
Use el siguiente comando para enumerar todos los puertos abiertos y programas asociados:
netstat -tulpn
O use el comando ss de la siguiente manera :
$ ss -tulpn
O
nmap -sT -O localhost
nmap -sT -O server.example.com
- Los 32 ejemplos principales de comandos de Nmap para administradores de sistemas / redes para obtener más información. Use iptables para cerrar los puertos abiertos o detener todos los servicios de red no deseados utilizando el servicio anterior y los comandos chkconfig.
- comando update-rc.d like en Redhat Enterprise / CentOS Linux .
- Ubuntu / Debian Linux: Herramienta de configuración de servicios para iniciar / detener servicios del sistema .
- Obtenga información detallada sobre conexiones de direcciones IP particulares mediante el comando netstat.
18. Eliminar sistemas X Window (X11)
No se requieren sistemas X Window en el servidor. No hay ninguna razón para ejecutar X11 en su correo dedicado basado en Linux y en el servidor web Apache / Nginx. Puede deshabilitar y eliminar X Windows para mejorar la seguridad y el rendimiento del servidor. Edite / etc / inittab y establezca el nivel de ejecución en 3. Finalmente, elimine el sistema X Windows, ingrese: En el servidor CentOS 7 / RHEL 7 use los siguientes comandos:
# yum groupremove "X Window System"
# yum group remove "GNOME Desktop"
# yum group remove "KDE Plasma Workspaces"
# yum group remove "Server with GUI"
# yum group remove "MATE Desktop"
19. Configure el firewall basado en Iptables y TCPWrappers en Linux
Iptables es un programa de aplicación de espacio de usuario que le permite configurar el firewall (Netfilter) proporcionado por el kernel de Linux. Use el firewall para filtrar el tráfico y permitir solo el tráfico necesario. Utilice también TCPWrappers, un sistema ACL de red basado en host para filtrar el acceso de red a Internet. Puede evitar muchos ataques de denegación de servicio con la ayuda de Iptables:
- Cómo configurar un firewall UFW en el servidor Ubuntu 16.04 LTS
- Cómo configurar un firewall usando FirewallD en RHEL 8
- Linux: 20 ejemplos de Iptables para nuevos SysAdmins
- Tutorial de configuración de CentOS / Redhat Iptables Firewall
- Lighttpd Traffic Shaping: conexiones del acelerador por IP única (límite de velocidad)
- Cómo: Linux Iptables bloquea un ataque común .
- psad: Linux detecta y bloquea los ataques de escaneo de puertos en tiempo real .
- Use shorewall en CentOS / RHEL o en un servidor basado en Ubuntu / Debian Linux para asegurar su sistema.
20: Endurecimiento del Kernel de Linux /etc/sysctl.conf
El archivo /etc/sysctl.conf se usa para configurar los parámetros del kernel en tiempo de ejecución. Linux lee y aplica la configuración de /etc/sysctl.conf en el momento del arranque. Muestra /etc/sysctl.conf :
# Activar execshield kernel.exec-shield = 1 kernel.randomize_va_space = 1 # Habilitar la protección de suplantación de IP net.ipv4.conf.all.rp_filter = 1 # Deshabilitar el enrutamiento de origen IP net.ipv4.conf.all.accept_source_route = 0 # Ignorando la solicitud de transmisiones net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_messages = 1 # Asegúrese de que los paquetes falsificados se registren net.ipv4.conf.all.log_martians = 1
21. Particiones de disco separadas para el sistema Linux
La separación de los archivos del sistema operativo de los archivos del usuario puede dar como resultado un sistema mejor y seguro. Asegúrese de que los siguientes sistemas de archivos estén montados en particiones separadas:
- / usr
- /casa
- / var y / var / tmp
- / tmp
Cree particiones separadas para las raíces del servidor Apache y FTP. Edite el archivo / etc / fstab y asegúrese de agregar las siguientes opciones de configuración:
- noexec : no establece la ejecución de ningún archivo binario en esta partición (impide la ejecución de archivos binarios pero permite secuencias de comandos).
- nodev : no permita caracteres o dispositivos especiales en esta partición (evita el uso de archivos de dispositivo como zero, sda, etc.).
- nosuid : no establezca el acceso SUID / SGID en esta partición (evite el bit setuid).
Entrada de / etc / fstab de muestra para limitar el acceso del usuario en / dev / sda5 (directorio raíz del servidor ftp):
/ dev / sda5 / ftpdata ext3 por defecto, nosuid, nodev, noexec 1 2
22. Cuotas de disco
Asegúrese de que la cuota de disco esté habilitada para todos los usuarios. Para implementar cuotas de disco, utilice los siguientes pasos:
- Habilite las cuotas por sistema de archivos modificando el archivo / etc / fstab.
- Vuelva a montar los sistemas de archivos.
- Cree los archivos de la base de datos de cuotas y genere la tabla de uso del disco.
- Asignar políticas de cuotas.
- Consulte el tutorial sobre implementación de cuotas de disco para obtener más detalles.
23. Desactive IPv6 solo si NO lo está utilizando en Linux
El Protocolo de Internet versión 6 (IPv6) proporciona una nueva capa de Internet del conjunto de protocolos TCP / IP que reemplaza el Protocolo de Internet versión 4 (IPv4) y ofrece muchos beneficios. Si NO está utilizando IPv6, desactívelo:
- RedHat / Centos Desactiva las redes IPv6 .
- Debian / Ubuntu y otras distribuciones de Linux deshabilitan las redes IPv6 .
- Linux IPv6 Howto – Capítulo 19. Seguridad .
- Linux IPv6 Firewall configuración y scripts son y disponible aquí .
24. Desactiva los binarios SUID y SGID no deseados
Todos los archivos habilitados para bits SUID / SGID pueden ser mal utilizados cuando el ejecutable SUID / SGID tiene un problema de seguridad o error. Todos los usuarios locales o remotos pueden usar dicho archivo. Es una buena idea encontrar todos esos archivos. Use el comando find de la siguiente manera: debe investigar cada archivo informado. Consulte la página del manual del archivo informado para obtener más detalles.
#See all set user id files:
find / -perm +4000
# See all group id files
find / -perm +2000
# Or combine both in a single command
find / ( -perm -4000 -o -perm -2000 ) -print
find / -path -prune -o -type f -perm +6000 -ls
25: Archivos de escritura mundial en el servidor Linux
Cualquiera puede modificar el archivo de escritura mundial que resulta en un problema de seguridad. Utilice el siguiente comando para buscar todos los archivos de conjunto de bits editables y pegajosos del mundo :
find /dir -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print
debe investigar cada archivo informado y establecer el permiso correcto de usuario y grupo o eliminarlo.
26. Archivos del propietario
Los archivos que no pertenecen a ningún usuario o grupo pueden plantear un problema de seguridad. Simplemente encuéntrelos con el siguiente comando que no pertenece a un usuario válido ni a un grupo válido
find /dir -xdev ( -nouser -o -nogroup ) -print
. Debe investigar cada archivo informado y asignarlo a un usuario y grupo apropiado o eliminarlo.
27. Use un servicio de autenticación centralizado
Sin un sistema de autenticación centralizado, los datos de autenticación del usuario se vuelven inconsistentes, lo que puede generar credenciales desactualizadas y cuentas olvidadas que deberían haberse eliminado en primer lugar. Un servicio de autenticación centralizado le permite mantener el control central sobre la cuenta de Linux / UNIX y los datos de autenticación. Puede mantener los datos de autenticación sincronizados entre servidores. No use el servicio NIS para la autenticación centralizada. Use OpenLDAP para clientes y servidores.
28. Kerberos
Kerberos realiza la autenticación como un servicio de autenticación de terceros de confianza mediante el uso de secreto compartido criptográfico bajo el supuesto de que los paquetes que viajan a lo largo de la red insegura se pueden leer, modificar e insertar. Kerberos se basa en criptografía de clave simétrica y requiere un centro de distribución de claves. Puede hacer que el inicio de sesión remoto, la copia remota, la copia segura de archivos entre sistemas y otras tareas de alto riesgo sean más seguras y controlables con Kerberos. Por lo tanto, cuando los usuarios se autentican en los servicios de red utilizando Kerberos, los usuarios no autorizados que intentan recopilar contraseñas al monitorear el tráfico de la red se ven efectivamente frustrados. Vea cómo configurar y usar Kerberos .
29. Registro y auditoría
Debe configurar el registro y la auditoría para recopilar todos los intentos de piratería y craqueo. Por defecto, syslog almacena datos en el directorio / var / log /. Esto también es útil para descubrir la configuración incorrecta del software que puede abrir su sistema a varios ataques.
30. Monitoree mensajes de registro sospechosos con Logwatch / Logcheck
Lea sus registros utilizando el comando logwatch ( logcheck ). Estas herramientas hacen que su lectura de registros sea más fácil. Obtiene informes detallados sobre elementos inusuales en syslog por correo electrónico. Un ejemplo de informe de syslog:
################### Logwatch 7.3 (24/03/06) #################### Procesamiento iniciado: viernes 30 de octubre 04:02:03 2009 Intervalo procesado: ayer (29-oct-2009) Período es el día. Nivel de detalle de salida: 0 Tipo de salida: sin formato Archivos de registro para el host: www-52.nixcraft.net.in ################################################## ################ --------------------- Nombrado Comenzar ------------------------ ** Entradas sin igual ** general: información: zona XXXXXX.com/IN: Transferencia iniciada .: 3 Hora (s) general: información: zona XXXXXX.com/IN: actualizar: límite de reintento para maestro ttttttttttttttttttt # 53 excedido (fuente :: # 0): 3 Tiempo (s) general: información: zona XXXXXX.com/IN: Transferencia iniciada .: 4 Hora (s) general: información: zona XXXXXX.com/IN: actualizar: límite de reintento para maestro ttttttttttttttttttt # 53 excedido (fuente :: # 0): 4 Tiempo (s) ---------------------- Final con nombre ------------------------- --------------------- firewall de iptables Comenzar ------------------------ Se registraron 87 paquetes en la interfaz eth0 Desde 58.y.xxx.ww - 1 paquete a tcp (8080) Desde 59.www.zzz.yyy - 1 paquete a tcp (22) Desde 60.32.nnn.aaa - 2 paquetes a tcp (45633) Desde 222.xxx.ttt.zz - 5 paquetes hasta tcp (8000,8080,8800) ---------------------- firewall de iptables Fin ------------------------- --------------------- SSHD Begin ------------------------ Usuarios que inician sesión a través de sshd: raíz: 123.xxx.ttt.zzz: 6 veces ---------------------- SSHD End ------------------------- --------------------- Comienza el espacio en disco ------------------------ Tamaño del sistema de archivos utilizado Disponible Uso% montado en / dev / sda3 450G 185G 241G 44% / / dev / sda1 99M 35M 60M 37% / boot ---------------------- Fin de espacio en disco ------------------------- ###################### Logwatch End #########################
Consulte los nombres y el uso de los archivos de registro de Linux comunes para obtener más información.
31. Contabilidad del sistema con auditado
El auditado se proporciona para la auditoría del sistema. Es responsable de escribir registros de auditoría en el disco. Durante el inicio, este demonio lee las reglas en /etc/audit.rules. Puede abrir el archivo /etc/audit.rules y realizar cambios como la ubicación del registro del archivo de auditoría de configuración y otras opciones. Con auditado puede responder las siguientes preguntas:
- Eventos de inicio y apagado del sistema (reinicio / detención).
- Fecha y hora del evento.
- Usuario responsable del evento (como intentar acceder al archivo /path/to/topsecret.dat).
- Tipo de evento (editar, acceder, eliminar, escribir, actualizar archivos y comandos).
- Éxito o fracaso del evento.
- Registra eventos que modifican fecha y hora.
- Descubra quién realizó cambios para modificar la configuración de red del sistema.
- Grabe eventos que modifiquen la información del usuario / grupo.
- Vea quién realizó cambios en un archivo, etc.
32. Servidor OpenSSH seguro
Se recomienda el protocolo SSH para el inicio de sesión remoto y la transferencia remota de archivos. Sin embargo, ssh está abierto a muchos ataques.
33. Instalar y usar el sistema de detección de intrusiones
Un sistema de detección de intrusiones en la red (NIDS) es un sistema de detección de intrusiones que intenta detectar actividades maliciosas, como ataques de denegación de servicio, escaneos de puertos o incluso intentos de acceso a las computadoras mediante el monitoreo del tráfico de la red.
Es una buena práctica implementar cualquier software de comprobación de integridad antes de que el sistema se conecte en un entorno de producción. Si es posible, instale el software AIDE antes de conectar el sistema a cualquier red. AIDE es un sistema de detección de intrusiones (HIDS) basado en host que puede monitorear y analizar los componentes internos de un sistema informático. Le recomendé que instale y use también el software de detección del kit raíz rkhunter .
34. Desactivar dispositivos USB / firewire / thunderbolt
Escriba el siguiente comando para deshabilitar los dispositivos USB en el sistema Linux :
# echo 'install usb-storage /bin/true' >> /etc/modprobe.d/disable-usb-storage.conf
puede usar el mismo método para deshabilitar los módulos firewire y thunderbolt: una vez hecho esto, los usuarios no pueden copiar rápidamente datos confidenciales en dispositivos USB o instalar malware / virus o puerta trasera en su sistema basado en Linux.
# echo "blacklist firewire-core" >> /etc/modprobe.d/firewire.conf
# echo "blacklist thunderbolt" >> /etc/modprobe.d/thunderbolt.conf
35. Deshabilitar servicios no utilizados
Puede deshabilitar los servicios no utilizados con el comando de servicio / comando systemctl: por ejemplo, si no va a usar el servicio Nginx durante algún tiempo, deshabilítelo:
$ sudo systemctl stop service
$ sudo systemctl disable service
$ sudo systemctl stop nginx
$ sudo systemctl disable nginx
36. Utilice fail2ban / denyhost como IDS (instale un sistema de detección de intrusiones)
Fail2ban o denyhost escanea los archivos de registro en busca de demasiados intentos fallidos de inicio de sesión y bloquea la dirección IP que muestra signos maliciosos. Vea cómo instalar y usar denyhost para Linux . Uno puede instalar fail2ban fácilmente:
$ sudo apt-get install fail2ban
O
$ sudo yum install fail2ban
Edite el archivo de configuración según sus necesidades:
$ sudo vi /etc/fail2ban/jail.conf
Reinicie el servicio:
$ sudo systemctl restart fail2ban.service
- Software Debian / Ubuntu Linux Install Advanced Intrusion Detection Environment (AIDE)
- psad: Linux detecta y bloquea ataques de escaneo de puertos en tiempo real
37. Servidor seguro Apache / PHP / Nginx
Edite el archivo httpd.conf y agregue lo siguiente:
ServerTokens Prod ServerSignature Off TraceEnable Off Opciones all -Indexes Encabezado siempre desarmado X-Powered-By
Reiniciar el servidor httpd / apache2 en Linux , ejecute:
$ sudo systemctl restart apache2.service
O
$ sudo systemctl restart httpd.service
Usted debe instalar y habilitar mod_security en el servidor RHEL / CentOS . Se recomienda editar php.ini y asegurarlo también.
38. Protección de archivos, directorios y correo electrónico
Linux ofrece excelentes protecciones contra el acceso no autorizado a datos. Los permisos de archivos y MAC evitan que el acceso no autorizado acceda a los datos. Sin embargo, los permisos establecidos por Linux son irrelevantes si un atacante tiene acceso físico a una computadora y simplemente puede mover el disco duro de la computadora a otro sistema para copiar y analizar los datos confidenciales. Puede proteger fácilmente archivos y particiones en Linux utilizando las siguientes herramientas:
- Para cifrar y descifrar archivos con una contraseña, use el comando gpg .
- La contraseña de Linux o UNIX protege los archivos con openssl y otras herramientas.
- El cifrado de disco completo es imprescindible para proteger los datos, y es compatible con la mayoría de las distribuciones de Linux. Vea cómo cifrar el disco duro con LUKS en Linux . Asegúrese de que el intercambio también esté encriptado. Requerir una contraseña para editar el gestor de arranque.
- Asegúrese de que el correo raíz se reenvíe a una cuenta que verifique.
- Cómo: Cifrado de disco y partición en Linux para dispositivos móviles .
- Linux Asegurando el servidor Dovecot IMAPS / POP3S con configuración SSL .
- Linux Postfix SMTP (servidor de correo) Instalaciones y configuración de certificados SSL .
- Courier IMAP SSL Server Certificate Instalación y configuración .
- Configure el cifrado SSL de Sendmail para enviar y recibir correo electrónico .
39. Copias de seguridad
No se puede enfatizar lo suficiente lo importante que es hacer una copia de seguridad de su sistema Linux. Una copia de seguridad externa adecuada le permite recuperarse del servidor agrietado, es decir, una intrusión. Los programas tradicionales de copia de seguridad de UNIX son volcado y restauración también se recomiendan. Debe configurar copias de seguridad cifradas en el almacenamiento externo, como el servidor NAS o el servidor FreeNAS, o utilizar el servicio de computación en la nube, como AWS.
[isc_list]