Menú
Está libre
registro
hogar  /  Problemas/ Auditar el acceso a archivos de Linux. Cómo auditar la seguridad del servidor sin preocuparse por la fuga de datos

Auditoría de acceso a archivos de Linux. Cómo auditar la seguridad del servidor sin preocuparse por la fuga de datos

En el artículo de hoy, le presentaremos las mejores utilidades de auditoría de seguridad de Linux o como dicen nuestros colegas de habla inglesa: Endurecimiento de Linux... Entonces, el tema del artículo es verificar el nivel de seguridad de los sistemas Linux y evaluar la corrección de las configuraciones desde el punto de vista de la seguridad de la información. Por supuesto, no solo revisaremos los programas, sino que también daremos ejemplos de su uso.

Auditoría de seguridad interna de Linux

Los administradores de sistemas, y más aún antes que los auditores de seguridad de la información, a menudo se enfrentan a la tarea de verificar la seguridad de una gran cantidad de hosts en muy poco tiempo. Y por supuesto, existen herramientas especializadas para solucionar estos problemas en el segmento Enterprise, por ejemplo, como. Estoy seguro de que todos ellos, desde las fuentes abiertas del motor OpenVAS hasta productos comerciales como Nessus o Nexpose, son conocidos por nuestro lector. Pero este software generalmente se usa para buscar software desactualizado y, por lo tanto, vulnerable y luego ejecutar la administración de parches. Además, no todos los escáneres de seguridad tienen en cuenta ciertas características específicas de los mecanismos de seguridad integrados de Linux y otros productos de código abierto. Y por último, pero no menos importante, el precio de la emisión es importante, porque los productos de pago solo los pueden pagar las empresas que asignan algunos presupuestos para este negocio.

Es por eso que hoy hablaremos de un conjunto especializado de utilidades gratuitas que pueden diagnosticar el nivel actual de seguridad del sistema, evaluar los riesgos potenciales, por ejemplo, "servicios adicionales" que sobresalen en Internet, o una configuración predeterminada insegura, y en ciertos casos, ofrecen opciones para solucionar los problemas encontrados por la auditoría ... Otra ventaja de utilizar estas herramientas es la capacidad de replicar scripts de prueba de granjas típicos de cualquier número de sistemas Linux y crear una base de prueba documentada en forma de registros e informes separados.

Aspectos prácticos de la auditoría de seguridad de Linux

Cuando se ve a través de los ojos de un auditor, el enfoque de prueba se puede dividir en dos tipos.

Primero- esto es el cumplimiento de los llamados requisitos de cumplimiento, aquí se verifica la presencia de elementos obligatorios de protección prescritos en cualquier norma internacional o "mejor práctica". Un ejemplo clásico son los requisitos de PCI DSS para sistemas de TI de pago, serie SOX404, NIST-800.

Segundo- Este es un enfoque puramente racional basado en la pregunta "¿Qué más se puede hacer para aumentar la seguridad?" No hay requisitos obligatorios, solo su conocimiento, mente brillante y manos hábiles. Por ejemplo, esto es actualizar la versión del kernel y / o paquetes de aplicaciones, habilitar, forzar SELinux, configurar el firewall de iptables.

Todo lo relacionado con el segundo enfoque suele denominarse término especial. Endurecimiento de Linux, qué más se puede definir como "acciones destinadas a mejorar el nivel de seguridad inicial del SO (o software) principalmente por medios estándar".

El cumplimiento de los requisitos de cumplimiento generalmente se verifica en preparación para aprobar una auditoría legal como PCI DSS u otra auditoría de certificación. Prestaremos más atención al componente de endurecimiento. Todos los principales proveedores ofrecen sus productos Pautas de endurecimiento- manuales que contienen consejos y recomendaciones sobre cómo mejorar la seguridad, teniendo en cuenta los mecanismos de seguridad estándar y las especificaciones del software. Por lo tanto, hay guías similares disponibles en Red Hat, Debian, Oracle, Cisco.

Endurecimiento es un término del mundo de la seguridad de la información que denota el proceso de garantizar la seguridad de un sistema (programa) reduciendo su vulnerabilidad y, por regla general, utilizando solo utilidades estándar o mecanismos de protección.

Por cierto, ya tuvimos una vez un artículo sobre cómo configurar las opciones de Endurecimiento, pero en ese artículo solo trataba de configurar. Primero verificaremos nuestro sistema utilizando utilidades especializadas, es decir, realizaremos una auditoría de seguridad, evaluaremos el nivel actual de protección y luego cerraremos la opción de seguridad allí, si es necesario. Bueno, o incluso como opción: si el servidor ya está configurado desde el punto de vista de la seguridad, nuestras herramientas podrán comprobarlo y, posiblemente, sugerir qué más se puede hacer.

Herramientas de auditoría de seguridad de Linux

Lynis - pruebas de endurecimiento del sistema de auditoría

Instalación en macOS:

Inicialización de pruebas
Resultados de la prueba de la herramienta del sistema y el grupo de arranque y servicios
Resultados de las pruebas del grupo de auditoría de Kernel y Memory & Process
Resultados de la prueba del grupo Usuario y Grupo y autenticación

Siempre es una buena idea comprobar si hay una nueva versión de Lynis disponible antes de auditar:

Si desea poner el nombre del auditor que inició la prueba, simplemente agregue el parámetro -auditor :

sudo lynis sistema de auditoría - c - auditor Daddy

En cualquier etapa de la auditoría de seguridad de Linux, el proceso de verificación se puede continuar (Intro) o finalizar a la fuerza (Ctrl + C). Los resultados de las pruebas realizadas se escribirán en el registro de Lynis en el directorio /var/log/lynis.log. Tenga en cuenta que el archivo de registro se sobrescribirá cada vez que se inicie la utilidad.

Para realizar pruebas de forma permanente en modo automático, puede asignar la tarea correspondiente al programador Cron utilizando el interruptor -cronjob. En este caso, Lynis se iniciará de acuerdo con la plantilla especificada (config) y no mostrará mensajes interactivos, preguntas o advertencias innecesarios. Todos los resultados se guardarán en el registro. Por ejemplo, aquí hay un script para ejecutar la utilidad con la configuración predeterminada una vez al mes:

#! / bin / sh

AUDITOR = "automatizado"

FECHA = $ (fecha +% Y% m% d)

HOST = $ (nombre de host)

LOG_DIR = "/ var / log / lynis"

REPORT = ”$ LOG_DIR / report - $ (HOST). $ (FECHA) "

DATA = ”$ LOG_DIR / informe - datos - $ (HOST). $ (FECHA). TXT "

cd / usr / local / lynis

... / lynis - c –auditor “$ (AUDITOR)” –cronjob> $ (REPORT)

mv / var / log / lynis: informe. dat $ (DATOS)

# Fin

Guarde este script en el directorio /etc/cron.monthly/lynis. Y no olvide agregar las rutas para guardar los registros (/ usr / local / lynis y / var / log / lynis), de lo contrario, es posible que no funcione correctamente.

Puede ver una lista de todos los comandos disponibles para llamar:

Breves instrucciones para trabajar con la utilidad:

hombre lynis

Las opciones para posibles estados basados ​​en los resultados de la verificación se limitan a la siguiente lista: NINGUNO, DÉBIL, HECHO, ENCONTRADO, NO_ ENCONTRADO, OK, ADVERTENCIA.


Ejemplo de visualización de estados
Ejecución de pruebas individuales en Lynis

En la práctica, puede ser necesario realizar solo algunas pruebas específicas. Por ejemplo, si su servidor solo realiza funciones de servidor de correo o Apache. Podemos usar el parámetro -tests para esto. La sintaxis del comando se ve así:

Además, la funcionalidad de Lynis se amplía con varios complementos que puede agregar usted mismo o puede agregar otros nuevos a un directorio existente.

Todas las advertencias se enumerarán después de los resultados. Cada uno comienza con un texto de advertencia, luego la prueba que lo generó se indica entre paréntesis al lado. La siguiente línea ofrece una solución al problema, si existe, por supuesto. De hecho, la última línea es una URL donde puede ver los detalles y encontrar recomendaciones adicionales sobre cómo solucionar el problema.


Conclusión de recomendaciones sobre cómo solucionar problemas encontrados

Perfiles

Los perfiles que controlan la auditoría se definen en archivos con la extensión .prf ubicados en el directorio / etc / lynis. El perfil predeterminado se llama, como era de esperar, default.prf. Los desarrolladores desaconsejan editarlo directamente: cualquier cambio que desee realizar en la auditoría es mejor agregarlo al archivo custom.prf ubicado en el mismo directorio.

Crea y edita un perfil personalizado:

toque / etc / lynis / custom. prf

sudo nano / etc / lynis / custom. prf

En este archivo, puede definir una lista de pruebas para excluir de la auditoría de Lynis. Por ejemplo:

  • ARCHIVO-6310: comprobación de particiones;
  • HTTP-6622: prueba la instalación de nginx;
  • HTTP-6702: prueba de instalación de Apache.

Para excluir una prueba específica, use la directiva skip-test y especifique el ID de la prueba. Por ejemplo, así:

# ¿Nginx está instalado?

saltar - prueba = HTTP - 6622

# ¿Apache está instalado?

saltar - prueba = HTTP - 6702

Endurecimiento de la evaluación del estado

Según los resultados de todas las pruebas, al final de cada salida de auditoría de la utilidad (justo debajo de la sección de sugerencias), encontrará una sección que se parece a esto:

Detalles del análisis de seguridad de Lynis:

Índice de endurecimiento: 57 [############ .........]

Pruebas realizadas: 216

Complementos habilitados: 0

Evaluación final del estado de endurecimiento

Este resultado, expresado como un número, muestra el número de pruebas pasadas y el índice de seguridad del sistema, es decir índice de endurecimiento es el número final que utiliza Lynis para estimar el nivel de seguridad general del servidor. Y es muy importante no olvidar que el índice de seguridad cambia según la cantidad de advertencias que se han corregido y las recomendaciones de Lynis que se han implementado. Por lo tanto, después de solucionar los problemas encontrados, una auditoría de seguridad repetida puede mostrar un número completamente diferente.

Todas las manipulaciones con el sistema en modo superusuario requieren una mayor atención y una mayor responsabilidad. Realice solo aquellas acciones de las que sea consciente y de las que esté seguro. No olvide realizar copias de seguridad e instantáneas.

Lunar: una herramienta de auditoría de seguridad de UNIX

Ejemplos de ejecución de comandos desde la CLI:


Ver todas las opciones de lanzamiento de Lunar

Iniciar Lunar en modo de auditoría de seguridad, es decir sin realizar cambios en el sistema:

Lista de pruebas:

Ejecutar en modo fijo, es decir con cambios en el sistema:

Un ejemplo de ejecución de pruebas para el servidor web Apache

Nix Auditor: una auditoría CIS más sencilla

Nix Auditor es otro script para verificar si la seguridad de los sistemas Linux cumple con los requisitos del indicador CIS. Se centra en RHEL, CentOS y otras distribuciones de RPM.

Los desarrolladores afirman las siguientes ventajas de Nix Auditor:

  • velocidad de escaneo- puede realizar una verificación básica del sistema operativo en menos de 120 segundos y obtener un informe allí mismo;
  • precisión de verificación- Nix Auditor ha sido probado en diferentes versiones de distribuciones de CentOS y Red Hat;
  • personalización- las fuentes con la documentación del programa están en GitHub, por lo que el código se puede personalizar fácilmente de acuerdo con el tipo de sistema operativo y el conjunto de elementos del sistema que deben verificarse;
  • facilidad de uso- es suficiente para que el script de inicio sea ejecutable y ya está listo para probar.

Un ejemplo de ejecución de comandos para descargar la utilidad del repositorio de GitHub y luego ejecutar el script:

git clon https: //github.com/XalfiE/Nix-Auditor.git

cd Nix - Auditor

chmod + x nixauditor

... / nixauditor

Ejemplo de salida de información después de iniciar Nix Auditor

Loki - Escáner de respuesta a incidentes y COI simple

La utilidad Loki no es exactamente una herramienta de auditoría clásica de Linux, pero es excelente para encontrar rastros de un compromiso, que se puede atribuir, pero en parte, a la práctica de la auditoría.

Según los desarrolladores, estas son las posibilidades que nos brinda Loki - Simple IOC and Incident Response Scanner:

I. Cuatro formas de detectar una infracción:

  • nombres de archivo (coinciden con la ruta de archivo completa regex);
  • verificar de acuerdo con las reglas de Yara (buscar el cumplimiento de las firmas de Yara por el contenido de los archivos y la memoria del proceso);
  • comprobar y analizar hashes (comparar archivos escaneados con hashes (MD5, SHA-1, SHA-256) de archivos maliciosos conocidos);
  • Verificación de retroalimentación C2 (compara los puntos finales de la conexión del proceso con C2 IOC).

II. Controles adicionales:

  • comprobar el sistema de archivos de Regin (a través de -reginfs);
  • comprobar anomalías del sistema y los procesos del usuario;
  • escanear archivos SWF descomprimidos;
  • Verificación de volcado SAM;
  • Comprobación de DoublePulsar: un intento de identificar una puerta trasera que escucha en los puertos 445 / tcp y 3389 / tcp.

Vamos a mencionar cómo el programa determina el hecho de un hack. Los signos típicos (indicadores de compromiso), que indican que una computadora ha sido comprometida (es decir, pirateada), pueden ser:

  • la aparición en la computadora de malware (virus, puertas traseras, cifradores, etc.), así como utilidades de piratas informáticos (por ejemplo, para exploración de redes, explotación de vulnerabilidades, recopilación de credenciales);
  • la aparición de nuevos archivos ejecutables desconocidos y otros archivos, incluso si el motor antivirus no los detecta como código malicioso;
  • actividad de red anormal (conexión a hosts remotos, apertura de puertos para escuchar programas desconocidos, etc.);
  • Actividad anormal en dispositivos de disco (E / S) y mayor consumo de recursos del sistema (CPU, RAM, Swap).

Antes de comenzar la instalación, debe instalar varios paquetes dependientes. Estos son colorama (da color de línea en la consola), psutil (una utilidad de verificación de procesos) y, si aún no está instalado, el paquete Yara.

Entonces empecemos. Instalación en (primero debe instalarse el paquete Yara, que ya está instalado en Kali Linux por defecto):

cd Loki /

python2 loki - actualizador. py

python2 loki. py - h

Instalación en Ubuntu / Debian:

sudo apt - obtener instalar yara python - yara python - pip python - setuptools python - dev git

instalación de sudo pip2 - actualizar pip

instalación de sudo pip2 - U setuptools

sudo pip2 instalar psutil netaddr pylzma colorama

clon de git https: //github.com/Neo23x0/Loki

cd / inicio / descargar / Loki

python2 loki - actualizador. py

python2 loki. py - h

Instalación en BlackArch:

sudo pacman - S yara python2 - pip python2 - yara

sudo pip2 instalar psutil netaddr pylzma colorama

clon de git https: //github.com/Neo23x0/Loki

cd / inicio / descargar / Loki

python2 loki - actualizador. py

python2 loki. py - h

Ejemplo de uso

Algunas opciones de inicio:

argumentos opcionales:

H, - ayudar a mostrar este mensaje de ayuda y salir

La seguridad de la información es un tema prioritario para cualquier empresa que opere en Internet. Infecciones de virus y ataques externos, así como el acceso no autorizado a la información, todo esto conlleva importantes riesgos financieros y de reputación. Por lo tanto, al elegir una plataforma de servidor, los propietarios de negocios siempre están interesados ​​en el grado de seguridad de los recursos.
Y para comprobar qué tan bien funciona el sistema de protección, si existen vulnerabilidades o "agujeros" en él, se recomienda realizar una auditoría de seguridad del servidor al menos una vez al mes.

Qué se incluye en una auditoría de seguridad del servidor

Incluso un factor aparentemente insignificante, como una configuración incorrecta en el servidor o un software desactualizado, puede convertirse en una amenaza para la seguridad. Una auditoría ayuda a identificar las debilidades de seguridad y a tomar las medidas oportunas para eliminarlas antes de que se produzcan infecciones o robos de datos.
El administrador del servidor verifica el software instalado, su conformidad con las últimas actualizaciones, evalúa la configuración de seguridad del servidor y elimina los errores, si los hubiera, y también analiza el cumplimiento de la configuración de los derechos de acceso de los empleados a ciertos recursos.

Cómo auditar un servidor dedicado virtual con sus propias manos

Todo usuario puede comprobar la seguridad de los servidores en plataformas Windows o Linux, para ello no es necesario tener conocimientos especiales de programación.
El control de seguridad se puede dividir en varias etapas:

Acceso físico

En el caso de un servidor dedicado, el acceso físico al servidor de terceros está limitado por defecto, este lo proporciona el centro de datos. Pero el usuario también puede establecer una contraseña para acceder al BIOS.

Cortafuegos

El Firewall de Windows debe estar configurado y habilitado correctamente para el monitoreo continuo del software y los puertos. Para Linux, el sistema SELinux se puede utilizar para el control de acceso. También puede alquilarnos un firewall de hardware Cisco ASA o Fortinet FortiGate 60D.

Sistema de archivos

Comprobando actualizaciones

Configure el servidor para recibir e instalar actualizaciones automáticamente.

Política de contraseñas

Establezca con la ayuda de las políticas de seguridad locales de Windows, asegúrese de requerir contraseñas complejas, su fecha de vencimiento, así como bloquear la cuenta después de varias autorizaciones fallidas o ingresar una contraseña vacía.

Control de registros

Active el registro para los segmentos de infraestructura críticos y revíselos con regularidad.

Seguridad de la red

Se recomiendan VPN y VLAN para la segmentación de nodos y la seguridad de enlaces.
También debe cambiar la configuración predeterminada y redirigir los puertos de servicio del equipo de red.
El servicio IPsec se puede utilizar para cifrar el tráfico. Y para ver los puertos abiertos, la utilidad Netstat.

Control de acceso

Diferenciar los derechos de acceso de los usuarios a archivos críticos, deshabilitar el acceso de invitados y los usuarios con una contraseña vacía. Deshabilite las funciones y aplicaciones no utilizadas en el servidor.

Respaldo

Aprovecha el servicio de respaldo de archivos, es rentable y confiable. No guarde las copias de seguridad sin cifrar. Si nos alquila un servidor, puede elegir un lugar para las copias de seguridad.

Acceso a la base de datos

Las bases de datos críticas deben almacenarse en servidores SQL separados. Debe configurar el lanzamiento en nombre de un usuario con privilegios mínimos o desde una lista blanca preconfigurada de direcciones IP.

Protección antivirus

Para que el servidor funcione en Windows, se recomienda la instalación de software antivirus actualizado automáticamente cuando los usuarios trabajan con almacenamientos de red. Para Linux, no se requiere la instalación de un antivirus, siempre que la seguridad del servidor sea monitoreada regularmente y se controle el acceso no autorizado. La utilidad Tiger puede ser útil para esto.

Dicha auditoría una vez al mes ayudará a verificar el correcto funcionamiento del servidor, eliminar vulnerabilidades y monitorear la seguridad de la infraestructura de la red.

El tema de la seguridad de la infraestructura de TI es de gran relevancia para cualquier tipo de negocio. Ya sea un grupo de empresas con una extensa red de sucursales o una tienda en línea con 1-2 vendedores.
Para cada servidor, cuyo objetivo principal es proporcionar alojamiento para sitios, existe un problema grave de garantizar la protección de los datos del usuario.
Nuestra empresa ofrece un servicio de auditoría de seguridad de servidores.

Este servicio incluye:

- Análisis de las versiones de software instaladas en el servidor para el cumplimiento de las versiones actuales actuales, sin problemas de seguridad conocidos. Como regla general, para los servidores web, la relevancia de las versiones del siguiente software es importante: servidor de correo, servidor web, servidor web de almacenamiento en caché (si lo hay), intérprete del lenguaje de programación (en el que están escritos los sitios, por ejemplo, PHP ), servidor ftp, aplicaciones web (para proporcionar acceso simplificado a ciertas configuraciones del servidor y trabajar con datos);
- Análisis de la configuración del servidor web, configuraciones de software relacionadas para el cumplimiento de los requisitos básicos de seguridad;
- Análisis de la configuración del sistema operativo. Este punto es un análisis de los principales puntos relacionados con la posibilidad de que un atacante tome el control del servidor. Como regla general, se examinan la configuración del servidor ssh, las opciones para trabajar con discos duros;
- Análisis de derechos de acceso a los principales archivos y carpetas del sistema que contienen información confidencial. Como regla general, en el marco de este elemento, hay un examen de las carpetas principales del sistema, los archivos del panel de control del servidor, los directorios con copias de seguridad, los derechos de las carpetas de usuario;
- En un servidor que se sospecha está comprometido y puede ser utilizado por intrusos para realizar acciones maliciosas, nuestros especialistas tomarán las medidas necesarias para limpiarlo de malware y evitar que esta situación se repita;

La seguridad del servidor Linux es muy importante para mantener sus datos, propiedad intelectual y tiempo fuera del alcance de los piratas informáticos. El administrador del sistema es responsable de la seguridad del sistema operativo Linux. En este artículo, veremos veinte cosas que hacer con su sistema operativo Linux para mantenerlo seguro en todo momento. Si se trata de una computadora doméstica, entonces tal vez no tenga sentido preocuparse tanto por la seguridad; las contraseñas seguras y el bloqueo del acceso a los puertos de Internet serán suficientes. Pero en el caso de un servidor público, debes prestar atención a garantizar su protección.

Estas instrucciones funcionarán para cualquier distribución, no importa si está utilizando CentOS, Red Hat o Ubuntu, Debian.

1. Cifrado de la comunicación

Todos los datos transmitidos a través de la red están abiertos para monitoreo. Por lo tanto, es necesario cifrar los datos transmitidos, cuando sea posible, utilizando contraseñas, claves o certificados.

Utilice scp, ssh, rsync o sftp para transferir archivos. También puede montar el sistema de archivos remoto en su directorio personal usando herramientas como shhfs.

GnuPG le permite encriptar y firmar sus datos usando una clave privada especial. También hay funciones para administrar claves y acceder a claves públicas.

Fugu es una herramienta gráfica de transferencia de archivos SFTP. SFTP es muy similar a FTP, pero toda la sesión está encriptada aquí. Esto significa que no se envían contraseñas ni comandos en texto sin cifrar. Por tanto, dichas transferencias son menos vulnerables a terceros. También puede utilizar FileZilla, un cliente FTP multiplataforma que admite FTS sobre SSH / TLS y Protocolo de transferencia de archivos SSH (SFTP).

OpenVPN es un cliente VPN eficiente y ligero con soporte de cifrado SSH.

2. Intente no utilizar FTP, Telnet, Rlogin y RSH

En la mayoría de las redes, los nombres de usuario, las contraseñas de FTP, Telnet y los comandos RSH pueden ser interceptados por alguien de la misma red mediante un rastreador de paquetes. Una solución común a este problema es utilizar OpenSSH, SFTP o SFTP, que agrega SSL o TLS al FTP normal. Ejecute este comando para eliminar NIS, RSH y otros servicios obsoletos:

yum borrar inetd xinetd ypserv tftp-server telnet-server rsh-serve

3. Reducir la cantidad de software

¿Realmente necesitas todos los servicios web instalados? No debe instalar software innecesario para evitar vulnerabilidades en estos programas. Utilice su administrador de paquetes para ver los programas instalados y eliminar todos los innecesarios:

lista de yum instalada
paquete $ yum list
$ yum eliminar paquete

dpkg --list
$ dpkg - paquete info
$ apt-get eliminar paquete

4. Un automóvil, un servicio

Ejecute diferentes servicios en servidores o máquinas virtuales independientes. Esto limita la cantidad de servicios que pueden verse comprometidos. Por ejemplo, si un atacante puede entrar en Apache, obtendrá acceso a todo el servidor. Incluyendo servicios como MySQL, servidor de correo electrónico, etc. Puede utilizar software como XEN u OpenVZ para la virtualización.

5. Mantenga su kernel y software de Linux actualizados

La aplicación de parches de seguridad es una parte muy importante para mantener seguro su servidor Linux. El sistema operativo proporciona todas las herramientas para mantener el sistema actualizado y actualizar a nuevas versiones. Todas las actualizaciones de seguridad deben aplicarse lo antes posible. Aquí es donde también necesita usar su administrador de paquetes. Por ejemplo:

O para sistemas basados ​​en Debian:

actualización de sudo apt && actualización de sudo apt

Puede configurar Red Hat o Fedora para que le envíen notificaciones por correo electrónico cuando haya nuevas actualizaciones de seguridad disponibles. También puede configurar actualizaciones automáticas a través de cron, o puede usar aptcron de Debian para notificarle cuando necesite actualizar su sistema.

6. Utilice extensiones de seguridad de Linux

El sistema operativo Linux viene con varios parches de seguridad que se pueden usar para proteger contra configuraciones incorrectas o malware. Pero también puede utilizar sistemas de control de acceso a aplicaciones adicionales como SELinux o AppArrmor.

SELinux proporciona varias políticas de seguridad para el kernel de Linux. Aquí es posible controlar el acceso a cualquier recurso del sistema utilizando roles. Este o aquel recurso solo puede ser accedido por un programa cuya función lo permita, e incluso los derechos de superusuario no importan. SELinux mejora enormemente la seguridad del sistema Linux, ya que incluso el root se considera un usuario normal aquí. Se describe más sobre esto en un artículo separado.

7. Cuentas de usuario y contraseñas seguras

Utilice los comandos useradd y usermod para crear y mantener cuentas de usuario. Asegúrate de tener una contraseña buena y segura, debe contener al menos ocho caracteres, preferiblemente en diferente caso, entre los cuales debe haber caracteres especiales o números. Por ejemplo, 8 caracteres, de los cuales siete son letras y un carácter o número. Utilice herramientas como John the ripper para encontrar contraseñas de usuario débiles en el servidor y modifique pam_cracklib.so para hacer cumplir la política de contraseñas.

8. Cambie las contraseñas de vez en cuando

El comando de cambio le permite especificar el número de días antes de la fecha del cambio de contraseña forzado. El sistema utiliza esta información para determinar cuándo el usuario debe cambiarla. Estas configuraciones se encuentran en /etc/login.defs. Para deshabilitar la caducidad de la contraseña, ingrese el siguiente comando:

cambiar -l nombre de usuario

Para obtener información sobre la cadena de validez de la contraseña, ingrese el comando:

También puede configurar todo manualmente, en el archivo / etc / shadow:

(contraseña de usuario): (últimos_cambios):(días_máx): (días_mín): (Una advertencia):(desactivar):(cadenas_válidas):

  • Días mínimos- el intervalo mínimo entre cambios de contraseña, es decir, la frecuencia con la que el usuario puede cambiar la contraseña.
  • Días máximos- cuántos días será válida la contraseña, después de este período el usuario se verá obligado a cambiar la contraseña.
  • Una advertencia- el número de días después de los cuales se advertirá al usuario que debe cambiar la contraseña.
  • Valid_strings- el número de días desde el 1 de enero de 1970 cuando la cuenta estará completamente deshabilitada.

chage -M 60 -m 7 -W 7 nombre de usuario

También es aconsejable prohibir a los usuarios el uso de contraseñas antiguas, de lo contrario, todos los esfuerzos para obligarlos a cambiar las contraseñas por la fuerza se reducirán a cero.

9. Bloquear cuentas después de intentos fallidos de inicio de sesión

En el sistema operativo Linux, puede utilizar el comando faillog para ver los intentos fallidos de inicio de sesión de los usuarios. También puede utilizarlo para establecer un límite de intentos fallidos de inicio de sesión. Toda la información sobre intentos fallidos de inicio de sesión se almacena en el archivo / var / log / faillog. Para verlo, escriba:

Y para establecer el límite de intentos de inicio de sesión para una cuenta específica, use:

faillog -r -u usuario

También puede bloquear o desbloquear cuentas manualmente usando el comando passwd. Para bloquear el uso:

passwd -l usuario

Y para desbloquear:

passwd -u usuario

También es recomendable verificar si el sistema tiene cuentas con contraseñas vacías. Para hacer esto, ejecute:

awk -F: "($ 2 ==" ") (imprimir)" / etc / shadow

También verifique si hay algún usuario con un grupo o id 0. Solo debe haber uno de esos usuarios, y este es root. Puede verificar usando el siguiente comando:

awk -F: "($ 3 ==" 0 ") (imprimir)" / etc / passwd

Debe haber solo una línea:

root: x: 0: 0: root: / root: / bin / bash

Si hay otros, elimínelos. Los usuarios, y especialmente sus contraseñas débiles, son una de las cosas más vulnerables que pueden comprometer la seguridad en Linux.

10. Desactivar el inicio de sesión de superusuario

Para mantener su sistema Linux seguro, nunca inicie sesión como root. Puede usar sudo para obtener los privilegios necesarios y ejecutar el comando deseado como superusuario. Este comando le permite mantener en secreto su contraseña de superusuario para que no se comparta con otros administradores y proporciona herramientas para monitorear, limitar y rastrear acciones.

11. Seguridad física del servidor

La seguridad del servidor Linux debe incluir seguridad física. Debe restringir el acceso físico a la consola del servidor. Configure el BIOS para que no admita el arranque desde medios externos como DVD, CD, USB. También configure la contraseña del BIOS y el cargador de arranque GRUB para proteger sus opciones.

12. Deshabilite los servicios innecesarios

Deshabilite todos los servicios y demonios no utilizados. Además, no olvide eliminar estos servicios del inicio. Puede ver una lista de todos los servicios activos en los sistemas Red Hat con el comando:

chkconfig --list | grep "3: activado"

Para deshabilitar el uso del servicio:

servicio servicio parada
$ chkconfig service off

Encuentra todos los puertos abiertos por programas:

Lo mismo se puede hacer con el escáner nmap:

nmap -sT -O localhost

Use iptables para cerrar todos los puertos que no deberían ser accesibles desde la red. O detenga los servicios innecesarios como se describe arriba.

13. Eliminar el servidor X

Un servidor X en una computadora servidor es completamente opcional. No es necesario ejecutar un entorno gráfico en un servidor Apache o de correo electrónico dedicado. Desinstale este software para aumentar la seguridad y el rendimiento.

14. Configurar Iptables

iptables es un programa de espacio de usuario para configurar el cortafuegos Netfilter integrado del kernel. Te permite filtrar todo el tráfico y solo permite ciertos tipos de tráfico. También use TCPWrappers - sistema ACL para filtrar el acceso a Internet. Puede prevenir muchos tipos de ataques DOS con iptables. La seguridad de la red en Linux es un punto muy importante en la seguridad general del sistema.

15. Configure el kernel

El archivo /etc/sysctl.conf contiene la configuración del kernel que se carga y aplica al inicio del sistema.

Habilite la protección de desbordamiento del búfer de execshield:

kernel.exec-shield = 1
kernel.randomize_va_space = 1

Habilite la protección contra la suplantación de identidad de IP:

net.ipv4.conf.all.rp_filter = 1

Deshabilitar el reenvío de IP:

net.ipv4.conf.all.accept_source_route = 0

Ignore las solicitudes de transmisión:

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_messages = 1

Registre todos los paquetes falsificados:

net.ipv4.conf.all.log_martians = 1

16. Particione su disco duro

La partición del disco duro según el propósito de los archivos mejora la seguridad del sistema operativo Linux. Se recomienda crear secciones separadas para dichos directorios:

  • / hogar
  • / var y / var / tmp

Cree secciones separadas para los directorios raíz de los servidores Apache y FTP. Abra el archivo / etc / fstab y configure opciones especiales para las particiones requeridas:

  • noexec- no ejecute ningún programa o archivo ejecutable en esta sección, solo se permiten scripts
  • nodev- no permita dispositivos simbólicos o especiales en esta sección.
  • nosuid- no permita el acceso SUID / SGID para los programas de esta sección.

17. Utilice la limitación de espacio en disco

Limite el espacio disponible en disco para los usuarios. Para hacer esto, cree una cuota de disco en / etc / fstab, vuelva a montar los sistemas de archivos y cree una base de datos de cuotas de disco. Esto mejorará la seguridad en Linux.

18. Deshabilitar IPv6

El protocolo de Internet de próxima generación IPv6 reemplazará al IPv4 ya utilizado en el futuro. Pero por el momento no existen herramientas para verificar la seguridad de una red basada en IPv6. Muchas distribuciones de Linux permiten IPv6 de forma predeterminada. Los piratas informáticos pueden enviar tráfico no deseado y los administradores no pueden rastrearlo. Entonces, si no necesita este servicio, desactívelo.

19. Deshabilite los binarios SUID y SGID no utilizados

Todos los archivos ejecutables para los que está habilitado el indicador SUID o SGID son potencialmente peligrosos. Esta bandera significa que el programa se ejecutará con derechos de superusuario. Esto significa que si el programa tiene alguna vulnerabilidad o error, entonces un usuario local o remoto podrá usar este archivo. Encuentre todos esos archivos con el siguiente comando:

buscar / -perm +4000

Encuentre archivos con el conjunto de banderas SGID:

buscar / -perm +2000

O podemos combinarlo todo en un comando:

buscar / \ (- perm -4000 -o -perm -2000 \) -print
$ buscar / -ruta -prune -o -type f -perm +6000 -ls

Tendrá que examinar en detalle cada archivo que encuentre para comprender cuánto necesita este o aquel archivo.

20. Archivos públicos

También es recomendable buscar archivos que puedan ser modificados por todos los usuarios del sistema. Para hacer esto, use el siguiente comando:

buscar / dir -xdev -type d \ (- perm -0002 -a! -perm -1000 \) -print

Ahora debe verificar si los derechos para el grupo y el propietario de cada archivo están configurados correctamente y si esto no representa un riesgo para la seguridad.

También es recomendable buscar todos los archivos que no pertenecen a nadie:

buscar / dir -xdev \ (- nouser -o -nogroup \) -print

21. Utilice un sistema de autenticación centralizado

Sin un sistema de autenticación centralizado, los datos del usuario se vuelven inconsistentes, lo que puede llevar a que las credenciales estén desactualizadas y al olvido de cuentas que deberían haberse eliminado hace mucho tiempo. El servicio centralizado le permitirá mantener el control sobre las cuentas de usuario y las credenciales en los sistemas Linux y Unix. Puede sincronizar los datos de autenticación entre servidores. Pero no use el servicio NIS, mejor busque Open DAP.

Una de las implementaciones interesantes de dicho sistema es Kerberos. Permite que los usuarios se autentiquen con una clave secreta en redes donde los paquetes se pueden interceptar y modificar. Kerberos utiliza una clave simétrica para cifrar datos y requiere un Centro de administración de claves para funcionar. Puede configurar el inicio de sesión remoto, la copia remota, la copia segura de archivos entre sistemas y otras tareas con un alto nivel de seguridad.

22. Registro y auditoría

Configure el registro y la auditoría para recopilar y guardar todos los intentos de inicio de sesión fallidos y los intentos de piratería. De forma predeterminada, todos los registros, o al menos la mayoría de ellos, se encuentran en la carpeta / var / log /. Con más detalle, hablamos sobre de qué son responsables algunos en un artículo separado.

Puede ver los registros utilizando utilidades como logwatch o logcheck. Simplifican enormemente la lectura de los registros. Puede ver no todo el archivo, sino solo los eventos que le interesan, y también puede enviarse una notificación a su dirección de correo electrónico.

Supervise el sistema mediante el servicio auditado. El programa escribe en el disco todos los eventos de auditoría que le interesan. Todas las configuraciones de auditoría se almacenan en el archivo /etc/audit.rules cuando se inicia el sistema, el servicio lee todas las reglas de este archivo. Puede abrirlo y configurar todo según sea necesario, o usar una utilidad separada: auditctl. Puede configurar tales momentos:

  • Eventos de inicio y apagado del sistema
  • Fecha y hora del evento.
  • Eventos personalizados (por ejemplo, acceso a un archivo específico)
  • Tipo de evento (editar, acceder, eliminar, escribir, actualizar, etc.)
  • Éxito o fracaso en la ejecución del evento
  • Grabación de eventos de cambios en la configuración de la red
  • Registro de cambios de usuarios y grupos
  • Supervisión de cambios de archivo

23. Proteja su servidor OpenSSH

Permitir solo el uso del protocolo 2:

Denegar el inicio de sesión como superusuario:

24. Instalar IDS

IDS o Intrusion Detection System intenta detectar actividad sospechosa y maliciosa, como un ataque DOS, escaneo de puertos o incluso intentos de piratear su computadora mediante el monitoreo del tráfico de la red.

Es una buena práctica implementar dicho software antes de que el sistema esté disponible en Internet. Puede instalar AIDE, que es un HIDS (IDS basado en host) que puede controlar todos los aspectos de la estructura interna de su sistema.

Snort es un software para detectar intentos de intrusión desde la red. Es capaz de analizar y registrar paquetes y analizar el tráfico de la red en tiempo real.

25. Proteja sus archivos y directorios

Linux tiene una excelente protección contra el acceso no autorizado a los archivos. Sin embargo, los permisos establecidos por Linux y el sistema de archivos no significan nada cuando un atacante tiene acceso físico a la computadora y simplemente puede conectar el disco duro de la computadora a otro sistema para copiar sus datos. Pero puede proteger fácilmente sus archivos con cifrado:

  • Utilice GPG para cifrar y descifrar un archivo con una contraseña
  • También es posible proteger archivos usando OpenSSL
  • El cifrado de directorios se realiza con ecryptfs
  • TrueCrypt: herramienta gratuita de cifrado de disco para Windows y Linux

conclusiones

Ahora la seguridad del sistema operativo Linux en su computadora aumentará mucho. No olvides poner contraseñas complejas y de vez en cuando. Escriba su herramienta de seguridad del sistema favorita en los comentarios.