Auditoría de acceso a archivos linux. Endurecimiento duro de Linux. Seleccionamos herramientas para una auditoría de seguridad integral. Ejecución de pruebas individuales en Lynis

La mayoría de los sistemas empresariales y multicomponentes como SAVIA , base de datos Oracle utilizan en su plataforma un sistema operativo basado en linux . En vista de esto, los auditores de TI les prestan tanta atención. Hoy, en el artículo, presentaremos a su atención varias herramientas gratuitas presentadas en forma de scripts y utilizando mecanismos regulares del sistema operativo para proporcionar una auditoría rápida de la configuración de seguridad.

Los siguientes comandos y secuencias de comandos del sistema utilizados para la auditoría rápida de las opciones de seguridad de los sistemas operativos Linux se basan en las recomendaciones de auditoría de seguridad publicadas por la comunidad de ISACA en el manual del Programa de garantía/auditoría de seguridad del sistema operativo UNIX/LINUX.

1. Verificación de cuentas

1.1 Listar todos los usuarios
La lista de usuarios se almacena en /etc/passwdfile. Para obtener una lista de usuarios, puede usar el siguiente script:

  1. papelera/golpe
  2. # listadeusuariosenelsistema.sh
  3. # cuenta y enumera los usuarios "reales" existentes en el sistema.
  4. echo “[*] Usuarios existentes (ordenados alfabéticamente):”
  5. grep ‘/bin/bash’ /etc/passwd | grep -v 'raíz' | corte-f1
  6. -d':' | clasificar
  7. echo -n “[*] Número de usuarios reales encontrados: “
  8. grep ‘/bin/bash’ /etc/passwd | grep -v 'raíz' | wc-l
1.2 Lista de cuentas bloqueadas
Durante la auditoría, debe verificar la lista de usuarios bloqueados y desbloqueados ( nombre de la cuenta ). El siguiente comando funcionará para esto:
  1. #!/bin/bash
  2. # passwd –s nombre de cuenta

1.3 Visualización de estadísticas de todos los usuarios

  • El auditor debe asegurarse de que el equipo C.A incluido en el sistema, para obtener una descripción general de las actividades del usuario:
    1. #!/bin/bash
    Para ver la actividad de la sesión de conexión de un usuario con los totales de cada día, utilice el comando:
    1. #!/bin/bash
    2. # ac -d
    Para mostrar información sobre la actividad de la sesión (en horas) de la conexión del usuario "usuario" :
    1. #!/bin/bash
    2. # usuario ac
    1.4 Ver la actividad del usuario
    Las aplicaciones del sistema psacct o acct se ejecutan en segundo plano y realizan un seguimiento de la actividad de cada usuario en el sistema, así como de los recursos que consumen. Para verificar la actividad de los usuarios en el sistema, ejecute el siguiente script:
    1. #!/usr/bin/envksh
    2. último -Fa|awk '
    3. /empieza wtmp/ ( siguiente; )
    4. /todavía conectado/ (siguiente;)
    5. $0 == reiniciar (siguiente;)
    6. NF > 0 (
    7. si (NR > 1)
    8. imprimirf("
      ”);
    9. printf("Usuario:t%s
      ”, $1); # usuario
    10. printf(" Inicio:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. si ($ 9 == "abajo")
    12. printf(" Fin: apagado
      ”);
    13. printf(" Fin:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == “(“)
    15. t = $NF;
    16. h = "hostlocal";
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub(“[()]”, “”, t);
    20. printf("Hora en:t%s
      ”, t);
    21. printf("Host Remoto:t%s
      ”, h);
  • 2. Comprobación de la política de contraseñas

    2.1 cuentas con una contraseña vacía
    Durante la auditoría, debe asegurarse de que no haya cuentas bloqueadas en el sistema que le permitan iniciar sesión en el sistema sin ingresar una contraseña. Esta regla se puede comprobar con el comando:

    # gato /etc/sombra | awk -F: ($2==””)(imprimir $1)’

    2.2 Comprobación de la complejidad de la contraseña
    Durante la auditoría, es necesario verificar la configuración de complejidad de la contraseña para reducir el riesgo de ataques de fuerza bruta (brute-force) o de diccionario en la contraseña. Se deben usar módulos de autenticación conectables (PAM) para establecer esta política en el sistema.
    El auditor puede verificar la configuración adecuada en el archivo de configuración:

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

    2.3 Comprobación de la caducidad de la contraseña

    Como parte de la auditoría, debe comprobar la configuración de caducidad de la contraseña. Para verificar el tiempo de vencimiento de la contraseña, use el comando cambio. Este comando genera información detallada la fecha de caducidad de la contraseña y la fecha en que se modificó por última vez.
    El siguiente comando se utiliza para ver información sobre la "edad" de las contraseñas:

    #cambiar -l nombre de usuario

    Para cambiar el tiempo de vencimiento de la contraseña para un usuario específico, puede usar los siguientes comandos:

    #cambiar -M 60 nombre de usuario
    #cambio -M 60 -m 7 -W 7 nombre de usuario

    Opciones (para establecer la fecha de caducidad de la contraseña):
    -M - fecha máxima de caducidad en días.
    -m es la fecha de caducidad mínima en días.
    -W - configuración de advertencia en días.

    2.4 Uso de contraseñas repetidas
    La configuración de autorización en el sistema debe cumplir con la política de contraseñas. El archivo que contiene el historial de contraseñas se encuentra en /etc/security/opasswd. Para verificar, siga estos pasos:

    para RHEL: abra el archivo '/etc/pam.d/system-auth':

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

    para Ubuntu/Debian/Linux Mint: abra el archivo '/etc/pam.d/common-password':

    # vi /etc/pam.d/contraseña-común

    Agregue la siguiente línea a la sección 'auth':

    auth suficiente pam_unix.so likeauthnullok

    Para deshabilitar el uso de las últimas seis contraseñas, agregue la siguiente línea:

    Contraseña suficiente pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Después de ejecutar el comando, el sistema mantendrá un historial de las seis contraseñas anteriores, y si algún usuario intenta actualizar la contraseña usando alguna de las últimas seis, recibirá un mensaje de error.

    3. Configuración de conexión segura
    Los protocolos de conexión remota Telnet y Rlogin son muy antiguos y vulnerables debido a la transmisión de la contraseña a través de la red de forma no cifrada. Se debe utilizar un protocolo seguro para una conexión remota y segura Shell seguro (SSH). El auditor también debe asegurarse de que la opción inicio de sesión raíz deshabilitado, puerto SSH predeterminado cambiado, acceso remoto permitido solo para usuarios autorizados específicos. Los ajustes a comprobar están en el archivo de configuración de SSH:

    1. #vi /etc/ssh/sshd_config

    3.1 Iniciar sesión como superusuario (inicio de sesión raíz)

    Durante el curso de la auditoría, el auditor debe verificar que esté prohibido el inicio de sesión remoto con derechos de superusuario raíz.

    # PermitRootLogin = sí
    3.2 Verificar el inicio de sesión SSH de la cuenta de servicio

    Durante la auditoría, el auditor debe verificar la cuenta de servicio con un inicio de sesión SSH sin contraseña. Por lo general, los administradores del sistema utilizan esta función para tareas programadas. copias de seguridad, transfiriendo archivos y ejecutando scripts en modo de control remoto.

    Verifique que la configuración de sshd_config (/etc/ssh/sshd_config) sea correcta por última vez.

    # PermitRootLogin sin contraseña

    # RSAAuthentication = sí

    #PubkeyAuthentication=sí

    3.3 Verificación de listas de acceso en DenyHosts y Fail2ban
    Durante la auditoría, es necesario verificar la configuración de las listas de acceso DenyHosts y Fail2ban . Estos son scripts que se utilizan para monitorear y analizar los registros de acceso SSH y proteger contra ataques de fuerza bruta de contraseñas.

    Características de DenyHost:

    • guarda y realiza un seguimiento de los registros de un archivo /var/registro/seguro , marcando todos los intentos de inicio de sesión exitosos y fallidos, y los filtra.
    • supervisa los intentos fallidos de inicio de sesión
    • envía notificaciones por correo electrónico de hosts bloqueados e intentos de inicio de sesión sospechosos
    Características de Fail2ban:
    • Guarda y rastrea registros de archivos /var/registro/seguro y /var/log/auth.log , /var/log/pwdfail
    • altamente personalizable y multiproceso
    • supervisa los archivos de registro de forma regular

    4. Comprobación de los registros del sistema
    Durante la auditoría, debe asegurarse de que el demonio SysLog se esté ejecutando y de que todos los eventos significativos que ocurran en el sistema se registren en los registros de eventos. La auditoría también debe garantizar que la política de retención del registro de eventos tenga en cuenta los requisitos de la ley y la política de seguridad aplicables.

    4.1 Registros de eventos en Linux:

    /var/log/auth.log: registro del sistema de autorización (inicios de sesión y mecanismo de autenticación).
    /var/log/dpkg.log - registro de instalación/eliminación de paquetes usando dpkg.
    /var/log/yum.log - registro de instalación/eliminación de paquetes usando yum.
    /var/log/faillog: un registro de intentos fallidos de inicio de sesión y su límite para cada cuenta.
    /var/log/kern.log: registro del kernel (registro detallado de mensajes del kernel de Linux).
    /var/log/maillog o /var/log/mail.log: registro del servidor de correo.
    /var/log/wtmp: registro de inicio de sesión (tiempo de registro y duración de todos los usuarios del sistema).
    /var/run/utmp: información sobre los usuarios actualmente conectados al sistema.
    /var/log/lastlog: registros de inicios de sesión anteriores.
    /var/log/boot: información que se registra durante el arranque del sistema

    5. Protección de archivos del sistema

    5.1 Proteger el cargador de arranque GRUB

    Para proteger el cargador de arranque GRUB, el administrador debe usar el cifrado de contraseña en formato MD5 :

    # grub-md5-cripta

    Después de ejecutar el comando, el administrador debe abrir el archivo /boot/grub/menu.lst o /boot/grub/grub.conf y agregue la contraseña MD5:

    # vi /boot/grub/menu.lst

    #vi /boot/grub/grub.conf

    La contraseña MD5 recién creada se puede agregar al archivo de configuración de GRUB.

    5.2 Proteger el directorio de arranque /BOOT

    Durante la auditoría, debe verificar el estado del directorio /bota, ya que el núcleo del sistema y los archivos relacionados se encuentran en el directorio /bota. Debe asegurarse de que este directorio tenga acceso de solo lectura, lo que evita cambios no autorizados en archivos importantes del sistema. Para verificar, abra el archivo /etc/fstab y verifique la configuración:

    El archivo debe contener la línea:

    ETIQUETA=/arranque /arranque ext2 por defecto,ro 1 2

    5.3 Comprobación de puertos abiertos y conexiones activas

    El siguiente script se puede utilizar para comprobar los servicios que se ejecutan en el sistema:

    #!/bin/bash
    si (($(ps -ef | grep -v grep | grep $servicio | wc -l) > 0))
    después
    echo "$el servicio se está ejecutando!!!"
    más
    /etc/init.d/$inicio del servicio
    fi

    Vista conexiones de red

    # netstat-anop
    o
    # lsof-i(lsof-ni)
    o
    #iptraf

    Puertos de escucha
    Usando el comando Netstat, puede ver todos puertos abiertos y comandos relacionados. Ejemplo de guión:

    # netstat-tulpn
    Un script para escanear puertos es:
    escanear() (
    si [[ -z $1 || -z$2]]; después
    echo “Uso: $0
    retorno
    fi
    anfitrión local=$1
    puertos locales=()
    caja $2 en
    *-*)
    IFS=- leer inicio fin<<< “$2”
    for ((puerto=inicio; puerto<= end; port++)); do
    puertos+=($puerto)
    hecho
    ;;
    *,*)
    IFS=, leer -ra puertos<<< “$2”
    ;; *)
    puertos+=($2) ;;
    esac
    para puerto en “$(puertos[@])”; hacer
    alarma 1 "eco >/dev/tcp/$host/$puerto" &&
    echo "puerto $puerto abierto" ||
    echo "puerto $puerto cerrado"
    hecho
    }

    cortafuegos iptables

    Durante la auditoría, debe verificar la configuración del firewall de Linux para evitar el acceso no autorizado. Para controlar el tráfico, se deben crear reglas en iptables que filtrarán los paquetes entrantes, salientes y reenviados según la dirección IP y el número de puerto TCP/UDP.

    # iptables -n -L -v --números de línea

    ICMP/solicitudes de transmisión

    Durante la auditoría, debe verificar que los sistemas estén configurados para ignorar los ping y las solicitudes de transmisión. Para hacer esto, asegúrese de que el archivo “/etc/sysctl.conf” agregó las siguientes líneas:

    # ignorar las solicitudes ICMP:
    net.ipv4.icmp_echo_ignore_all = 1
    # ignorar las solicitudes de transmisión:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Comprobación de actualizaciones instaladas

    Los sistemas deben tener instaladas las últimas actualizaciones:

    # actualizaciones ñam
    # actualización de verificación de yum

    6. Comprobación de trabajos CRON ejecutados automáticamente

    El auditor debe verificar quién tiene permiso y quién está prohibido ejecutar trabajos en cron. El acceso a cron se controla mediante archivos. /etc/cron.permitir y /etc/cron.deny.

    # echo TODO >>/etc/cron.deny

    7. Comprobación de seguridad forzada SELINUX

    Durante la auditoría, es importante comprobar el estado SELinux . Este mecanismo debe estar habilitado en el sistema.
    Hay tres modos SELinux :

    • Aplicación: se aplica la política de SELinux. SELinux deniega el acceso según las reglas de la política de SELinux.
    • Permisivo: la política de SELinux no se aplica. SELinux no deniega el acceso, pero las denegaciones se registran como acciones que se denegarían si la política estuviera configurada para cumplir.
    • Deshabilitado: SELinux está deshabilitado. Solo se utilizan reglas DAC discretas.

    Durante una auditoría, puede usar el siguiente script para verificar el estado de SELinux o usar los comandos system-configselinux, getenforce o sestatus:

    HABILITADO=`cat /selinux/enforce`
    si [“$HABILITADO” == 1]; después
    echo “SELinux está habilitado, ¿deshabilitado? (sí No):"
    leer deshabilitar
    if [ $deshabilitar == "sí" ]; después
    echo "deshabilitando selinux"
    setenforce 0
    fi
    fi

    Script LBSA para verificar las opciones básicas de seguridad

    LBSA (secuencia de comandos de auditoría de seguridad básica de Linux) es un script básico de auditoría de configuración de seguridad de Linux. El script debe ejecutarse desde una línea de comando con privilegios raíz, o idealmente programado para ejecutarse regularmente usando cron para verificar sistemáticamente los cambios de configuración.

    El propósito de este script es auditar rápidamente la configuración de seguridad y descargar un informe que describa las posibles configuraciones que se pueden cambiar para brindar un mayor grado de seguridad. En el caso de que no haya recomendaciones para ninguna opción, el script simplemente muestra una línea con el procesamiento del cheque, y la decisión final siempre queda en manos del administrador. Antes de ejecutar una prueba, los desarrolladores recomiendan encarecidamente que lea el manual y estudie las secciones recomendadas para obtener más información.

    En la edición actual (Versión 1.0.49), el script busca las siguientes opciones:

    • vulnerabilidades en la configuración de la cuenta
    • vulnerabilidades en la configuración de SSH
    • vulnerabilidades en directorios temporales y directorios del sistema de archivos cargados en RAM (por ejemplo, en /tmp, /var/tmp /dev/)
    • permisos de archivos, estado de los directorios del sistema
    • -configuración de servicios DRBD y Hearbeat

    El guión es bastante grande, así que no lo pusimos en la página.

    Realizar una auditoría de seguridad del servidor una vez al mes para detectar oportunamente posibles problemas relacionados con la penetración de intrusos en el servidor.

    Si no ve ningún signo de actividad de terceros en el VPS o el sitio, realice la siguiente serie de comprobaciones y ajustes para proteger el servidor de la piratería.

    Configuración de la capa de aplicación

    Si CMS está instalado en el servidor, compruebe si están instaladas todas las actualizaciones más recientes.

    Joomla

    Busque el archivo changelog.txt en el directorio raíz del sitio, donde encontrará información sobre la versión de CMS. Si no está actualizado, actualice Joomla.

    WordPress

    Busque el archivo wp-includes/version.php para obtener información sobre la versión de CMS. Si está desactualizado, actualice Wordpress.

    DLE

    Busque el archivo engine/data/config.php, busque la línea version_id y asegúrese de que la versión esté actualizada.

    Compruebe también los archivos engine/ajax/updates.php y upgrade/index.php (parámetro dle_version).

    1C-Bitrix

    Busque el archivo /bitrix/modules/main/classes/general/version.php, donde encontrará información sobre la versión del CMS. También verifique el archivo /bitrix/admin/update_system.php. Si la versión está desactualizada, actualice 1C-Bitrix.

    Drupal

    Busque el archivo changelog.txt en el directorio raíz del sitio, donde encontrará información sobre la versión de CMS. Si no está actualizado, actualice Drupal.

    Verifique la versión del kernel en el archivo /modules/system/system.info.

    Además, puede detectar la versión de CMS a través del panel de control.

    Controlar Servidor web.

    apache

    Abra el archivo de configuración de Apache (dependiendo de la versión, estos pueden ser archivos httpd.conf, httpd2.conf, apache.conf, apache2.conf) y verifique si contiene una directiva que deshabilite la salida de información sobre la versión de la web. servidor:

    ServerTokensProd

    Si esta directiva no está presente, agregue y guarde el archivo.

    Busque el archivo secure.conf, ábralo para verlo y verifique su contenido con el siguiente ejemplo:

    Opciones +Incluye -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Limitar índices Opciones Ordenar permitir, denegar Permitir de todos php_admin_value open_basedir "." Opciones-Índices Acción php-cgi /php-bin/php

    Su archivo secure.conf no debe ser significativamente diferente del ejemplo anterior.

    Compruebe el MPM instalado con el comando

    Apachectl -V

    Para mayor seguridad, use mpm_itk a menos que necesite absolutamente mpm_prefork.

    Si desea cambiar MPM, realice una reinstalación después de realizar copias de seguridad de los archivos de configuración. Después de la reinstalación, verifique si el propietario del sitio y todos sus directorios es el usuario.

    Nginx

    Abra el archivo de configuración del servidor web (nginx.conf), vaya a la sección http y verifique si contiene directivas que limitan la cantidad de conexiones desde una dirección IP:

    Limit_zone limita $binary_remote_addr 5m; limit_conn limita 10; o (para versiones recientes) limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn dirección 10;

    Si estas directivas no están presentes, agregue y guarde el archivo.

    Bloquee algunos agentes de usuario para bloquear el tráfico no deseado. En la sección http del archivo de configuración de Nginx, agregue la directiva

    Si ($http_user_agent ~* LWP::Simple|BBBike|wget|msnbot) (devuelve 403;)

    Bloquee el spam de referencia agregando la directiva a la sección http del archivo de configuración de Nginx

    If($http_referer ~*(chicas|en venta|niña|joyería|amor|nudit|orgánica|póquer|pornografía|sexo|adolescente))(return 403;)

    Gerente de ISP

    Realice las siguientes comprobaciones en el panel de control de ISPmanager.

    Compruebe si el acceso al panel de control está restringido por dirección IP.

    Configure la copia de seguridad de datos si no está habilitada. Recomendamos usar una unidad externa para la copia de seguridad para evitar la pérdida de datos junto con el archivo.

    PHP

    Abra el archivo de configuración php.ini y agregue las siguientes directivas.

    Expose_php=Off - apaga la transmisión de la información de la versión de PHP en el encabezado HTTP; sql.safe_mode=On - habilitar el modo seguro de SQL; post_max_size=8M - límite de tamaño para los datos transmitidos por el método POST; disabled_functions exec, system, passthru, proc_open, shell_exec: deshabilite algunas funciones por razones de seguridad.

    NTP

    En el archivo de configuración de NTP (/etc/ntp.conf por defecto), agregue líneas para deshabilitar las solicitudes recursivas:

    Restringir predeterminado kod limitado nomodify notrap nopeer noquery restringir -6 predeterminado kod limitado nomodificar notrap nopeer noquery restringir 127.0.0.1 restringir -6::1

    Unir

    Coloque las siguientes líneas en el archivo named.conf para deshabilitar las consultas recursivas:

    Permitir recursividad (127.0.0.1; 82.146.32.0/19; 78.24.216.0/21; 92.63.96.0/20; 62.109.0.0/19; 188.120.224.0/19; 149.154.64.0/21; 37.230.0.94.0/21; 248.0/21; );

    Comprobación del propietario del directorio del sitio

    Compruebe quién es el propietario del directorio principal del sitio y de todos sus subdirectorios.

    En la barra de herramientas de ISPmanager, vaya a la sección "Sistema" -> "Administrador de archivos" y abra el directorio del sitio. Asegúrese de que las columnas Propietario y Grupo sean para el usuario propietario del sitio. Para cambiar estos atributos, haga clic en el botón Atributos en la barra de herramientas.

    Los nombres de propietarios de sitios válidos son apache, www, www-data si usa mpm_prefork. Recomendamos usar mpm_itk para mejorar la seguridad.

    Si el sitio contiene carpetas compartidas (por ejemplo, upload, tmp), entonces es válido para ellos el nombre de propietario 777. Asegúrese de que este usuario esté configurado solo para los directorios necesarios ejecutando el comando

    Buscar ./ ​​-perm 0777

    Encontrará todas las carpetas y archivos propiedad de 777.

    Configuración del nivel del sistema operativo

    Cazador

    Utilice la utilidad rkhunter para identificar posibles vulnerabilidades del servidor.

    Para instalar la utilidad, use el comando:

    Yum install rkhunter - CentOS OS apt-get install rkhunter - Debian/Ubuntu OS make all install clean -C /usr/ports/security/rkhunter or pkg install rkhunter - FreeBSD OS

    Para actualizar la base de datos de esta utilidad, ejecute los comandos

    Rkhunter-actualización

    Rkhunter-propupd

    Ejecute una verificación del sistema con el comando

    Rkhunter -c --cs2

    Durante el proceso de verificación, debe presionar la tecla Intro varias veces para continuar. Al finalizar, aparecerá un resumen del resultado de la prueba.

    Los resultados de la verificación se colocan en el archivo de registro /var/log/rkhunter/rkhunter.log, revíselo en busca de advertencias y errores.

    sistema

    Use la utilidad sysctl para administrar los parámetros del kernel del sistema. Abra el archivo de configuración de la utilidad /etc/sysctl.conf e ingrese las siguientes líneas.

    Deshabilite la capacidad de enrutar el tráfico entrante, ya que un atacante puede usar esta capacidad para falsificar direcciones IP:

    net.ipv4.conf.all.accept_source_route = 0

    Deshabilite las respuestas a las solicitudes ICMP en el canal de transmisión; esto ayudará a prevenir ataques de pitufo:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Deshabilite el registro de mensajes de error no válidos:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Habilite la protección contra desbordamiento de memoria:

    Kernel.exec-escudo=1 (CentOS)

    Habilite el uso de la memoria ASLR:

    núcleo.randomize_va_space = 2

    Deshabilite la capacidad de reenviar mensajes ICMP:

    net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0

    Si no está utilizando una VPN u otras aplicaciones especiales en el servidor, deshabilite el reenvío:

    Net.ipv4.conf.all.forwarding=0

    Habilitar la protección contra inundaciones SYN: uso de cookies SYN:

    Net.ipv4.tcp_syncookies=1

    Configure el número de intentos para enviar paquetes SYN-ACK:

    Net.ipv4.tcp_synack_retries = 3

    Configure el tiempo después del cual el servidor verifica la conexión si no se ha utilizado durante mucho tiempo (el valor predeterminado es 2 horas):

    Net.ipv4.tcp_keepalive_time=1800

    Establezca el número de comprobaciones de conexión antes de que finalice:

    Net.ipv4.tcp_keepalive_probes=3

    Configure el tiempo de espera del socket en el estado FIN-WAIT-2:

    net.ipv4.tcp_fin_timeout=30

    fstab

    Compruebe el archivo de configuración de fstab (/etc/fstab), que contiene información sobre discos, particiones y dispositivos de almacenamiento, y cómo se montan en el sistema.

    Vi /etc/fstab

    Tenga en cuenta que las particiones no raíz deben tener la opción nodev. Si /tmp está montado en una partición separada, agregue nodev, noexec, nosuid para esa partición.

    rsyslog

    Verifique el archivo de registro del sistema /etc/rsyslog.conf.

    Vi /etc/rsyslog.conf

    Preste atención a las siguientes líneas, que deberían verse así:

    También asegúrese de que el archivo de registro no esté vacío, es decir, el registro es correcto.

    sudo

    Compruebe si la utilidad sudo (o su) está configurada correctamente, lo que permite al usuario ejecutar ciertos comandos y programas como root. La configuración de esta utilidad se encuentra en el archivo de configuración /etc/sudoers o /usr/local/etc/sudoers. Abrirlo para editar

    Vi /etc/sudoers

    Busque la línea que está escrita de forma predeterminada y permite que el superusuario raíz ejecute cualquier comando.

    Para dar a todos los usuarios el privilegio de ejecutar comandos como root, agregue la siguiente línea:

    TODO TODO=/bin/su o TODO TODO=/usr/bin/su

    Para otorgar a un usuario específico el privilegio de ejecutar solo ciertos comandos como raíz, agregue la línea:

    %users ALL=/sbin/mount: el grupo de usuarios solo podrá usar sudo con el comando de montaje. usuario ALL=/sbin/mount: el usuario usuario solo podrá usar sudo con el comando de montaje.

    Configuración de nivel de red

    Verifique qué puertos están abiertos en el servidor y qué servicios los están usando ejecutando el comando

    Netstat-tuplnw | awk "(imprimir $4,$NF)" | ordenar | único

    Por ejemplo, la entrada 127.0.0.1:53 748/named significa que el servicio named está usando el puerto 53. Verifique que solo los necesarios estén entre los servicios en ejecución, deshabilite todos los demás.

    FTP

    Establezca el rango de puertos que se usará para el modo FTP pasivo. Para hacer esto, abra el archivo de configuración de su servidor FTP para editar y agregue las líneas:

    para vsftpd.conf:

    pasv_min_port=1028 pasv_max_port=1048

    para proftpd.conf:

    Puertos Pasivos 1028 1048

    No use el protocolo FTP a menos que sea absolutamente necesario, use SFTP en su lugar. Si aún se requiere FTP, agregue las siguientes líneas al archivo de configuración:

    para vsftpd.conf:

    Xferlog_enable=SÍ (registro ftp) anonymous_enable=NO (denegar conexiones de usuarios anónimos) anon_upload_enable=NO anon_mkdir_write_enable=NO

    para proftpd.conf:

    en la sección ... eliminar todas las secciones y agregar lineas

    Negar todo Negar todo

    iptables

    Compruebe si el cortafuegos está configurado correctamente. Para iptables ejecute el comando

    Iptables-NL

    Este comando imprime todas las reglas de firewall de iptables en la línea de comando. Además, estas reglas se pueden ver y editar en el archivo de configuración del cortafuegos /etc/sysconfig/iptables - para CentOS OS, /etc/network/if-up.d/ispmgrfw - para Debian/Ubuntu OS.

    En las reglas del cortafuegos, cierre todos los puertos excepto los utilizados por los servicios que se ejecutan en el servidor. Para hacer esto, cambie las líneas

    :ACEPTAR ENTRADA :ACEPTAR ADELANTE :ACEPTAR SALIDA a :CAÍDA DE ENTRADA :CAÍDA ADELANTE :CAÍDA DE SALIDA

    Para abrir los puertos necesarios, agregue líneas como

    A ENTRADA -p tcp -m tcp --dport 53 -j ACEPTAR -A ENTRADA -p udp -m udp --dport 53 -j ACEPTAR -A ENTRADA -p tcp -m multipuerto --deportes 53,80,25,443,953 -j ACEPTAR

    donde 53 es el número de puerto a abrir.

    Antes de realizar cambios en el archivo de configuración del cortafuegos, haga una copia del archivo de trabajo.

    Las reglas del cortafuegos se pueden configurar desde el panel de control de ISPmanager.

    SSH

    Abra el archivo de configuración de SSH:

    Vi /etc/ssh/sshd_config

    Compruebe que las siguientes líneas no están comentadas:

    Protocolo 2 (para usar la segunda versión del protocolo) IgnoreRhosts sí (no use el archivo .rhost) HostbasedAuthentication no (no autentique el host) PermitRootLogin no (deniegue el acceso a la raíz) PermitEmptyPasswords no (no use contraseñas en blanco) PermitUserEnvironment no (prohibir al usuario establecer variables de entorno) PasswordAuthentication sí (permitir la autenticación de contraseña)

    Habilite SFTP agregando la siguiente línea a sshd_config:

    Subsistema sftp /usr/lib/openssh/sftp-server

    Verifique la cola de correo en busca de desbordamiento y asegúrese de que no haya mensajes de spam entre los mensajes.

    Ejecute el comando mailq y vea la lista de mensajes. Si la lista es muy grande, verifique selectivamente los mensajes que puedan ser spam. Por identificador (por ejemplo, BD65F10DEE4) determine el remitente de la carta. Dominio

    Exim -Mvh id_mensaje

    muestra el encabezado del correo electrónico y el comando

    Exim -Mvb id_mensaje

    mostrará el cuerpo del mensaje.

    Entre los encabezados de los mensajes, el campo De: contiene el remitente y X-PHP-Originating-Script contiene el script al que se envió el mensaje.

    Software

    Compruebe el software del servidor en busca de vulnerabilidades.

    Sistema operativo CentOS

    Ejecute un comando que enumere los archivos de software instalados recientemente modificados:

    Rpm -qVa - para mostrar todos los archivos, rpm -qVa | awk "$2!="c" (imprimir $0)" - para imprimir archivos excepto registros.

    Analice qué archivos se han modificado y cómo, utilizando los siguientes valores de parámetros:

    S: tamaño de archivo modificado M: permisos predeterminados modificados 5: suma de comprobación MD5 modificada D: números mayores/menores del dispositivo modificados L: enlace simbólico modificado U: propietario del archivo modificado G: grupo modificado T: fecha de modificación del archivo (mtime) modificada) c - archivo de configuración d - archivo de documentación g - archivo no incluido en el paquete l - archivo de licencia r - archivo README

    Por ejemplo, la línea S.5....T. c /etc/httpd/conf/httpd.conf significa que httpd.conf es un archivo de configuración, su tamaño, suma de verificación y última fecha de modificación han cambiado. Como se trata de un archivo de configuración, estos cambios no son sospechosos.

    Preste atención a los archivos que tienen sus valores de suma de verificación cambiados sin razón aparente. Para dichos archivos, ejecute el comando:

    Stat /usr/sbin/sshd && file /usr/sbin/sshd donde usr/sbin/sshd es la ruta al archivo.

    Como resultado del comando, se muestra en la pantalla información detallada sobre el cambio en este archivo.

    Ejecute el comando:

    Yum --actualización de seguridad

    para instalar la actualización de seguridad.

    Sistema operativo Debian

    Ejecute comandos que verifiquen las sumas de verificación MD5 para los programas instalados:

    # apt-get install debsums # debsums -c

    Ejecute los siguientes comandos para verificar la actualización de seguridad:

    # echo 'deb http://security.debian.org wheezy/updates main contrib non-free' >> /etc/apt/sources.list # grep security /etc/apt/sources.list > /etc/apt/secsrc .list # apt-get -s -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" actualizar

    Para instalar la actualización de seguridad, ejecute el comando:

    # apt-get -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" actualizar

    Verifique que todos los repositorios tengan reconciliación gpg ejecutando los comandos:

    # grep -ri gpgcheck /etc/yum.conf # grep -ri gpgcheck /etc/yum.repos.d/ Asegúrese de que las líneas tengan el siguiente aspecto: gpgcheck=1 # grep -ri AllowNouthenticated /etc/apt/

    filas del formulario

    APT::Get::AllowNoauthenticated "true";

    no debería ser.

    Servicios no utilizados

    Sistema operativo CentOS

    chkconfig --lista

    Chkconfig --del service_name donde service_name es el nombre del servicio.

    Sistema operativo Debian

    Ejecute un comando que enumere los servicios no utilizados:

    sysv-rc-conf

    Para deshabilitar el inicio de un servicio no utilizado, ejecute el comando:

    Sysv-rc-conf off service_name donde service_name es el nombre del servicio.

    La seguridad del servidor Linux es muy importante para proteger sus datos, propiedad intelectual, así como el tiempo a manos de los crackers. por seguridad Sistema operativo respuestas linux Administrador de sistema. En este artículo, veremos veinte cosas que debe hacer con su sistema operativo Linux para mantenerlo seguro en todo momento. Si esto computadora de casa, entonces, sobre la seguridad, tal vez, no tiene sentido preocuparse tanto, las contraseñas fuertes y el bloqueo del acceso a los puertos desde Internet serán suficientes. Pero en el caso de un servidor público, debe prestar atención para garantizar su protección.

    Estas instrucciones funcionarán para cualquier distribución, ya sea que esté usando CentOS, Red Hat o Ubuntu, Debian.

    1. Cifrado de comunicaciones

    Todos los datos transmitidos a través de la red están abiertos para ser monitoreados. Por tanto, es necesario cifrar los datos transmitidos, en la medida de lo posible mediante contraseñas, claves o certificados.

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

    GnuPG le permite cifrar y firmar sus datos con una clave privada especial. También hay funciones para la gestión de claves y el acceso a las 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. Esto significa que no se transmiten contraseñas ni comandos en claro. Por lo tanto, dichas transferencias son menos vulnerables a terceros. También puedes usar FileZilla, es multiplataforma cliente ftp con soporte para FTS sobre SSH/TLS y SSH File Transfer Protocol (SFTP).

    OpenVPN es un cliente VPN eficiente y liviano con soporte para encriptación SSH.

    2. Trate de no usar FTP, Telnet, Rlogin y RSH

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

    yum erase inetd xinetd ypserv servidor tftp servidor telnet rsh-serve

    3. Reducir la cantidad de software

    ¿Realmente necesita todos los servicios web instalados? No instale innecesario software para evitar vulnerabilidades en estos programas. Use su administrador de paquetes para ver programas instalados y eliminar todo lo innecesario:

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

    dpkg --lista
    $ dpkg --info paquete
    $ apt-get remove paquete

    4. Una máquina - un servicio

    Ejecutar diferentes servicios en servidores separados, o maquinas virtuales. Esto limita la cantidad de servicios que pueden verse comprometidos. Por ejemplo, si un atacante puede piratear Apache, obtendrá acceso a todo el servidor. Incluyendo servicios como MySQL, servidor Correo electrónico y así. Puede usar software como XEN u OpenVZ para la virtualización.

    5. Mantenga actualizado el kernel y el software de Linux

    La aplicación de parches de seguridad es una parte muy importante para mantener seguro un servidor Linux. El sistema operativo proporciona todas las herramientas para mantener el sistema actualizado y actualizarlo a nuevas versiones. Todas las actualizaciones de seguridad deben aplicarse lo antes posible. Aquí, 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 puedes personalizar Actualización automática a través de cron, o puede usar el aptcron de Debian para notificarle que actualice su sistema.

    6. Usa extensiones de seguridad en Linux

    El sistema operativo Linux viene con varios parches de seguridad que se pueden usar para proteger contra errores de configuración o malware. Pero también puede utilizar sistemas de control de acceso adicionales para aplicaciones 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 usando roles. Un recurso en particular solo puede ser accedido por un programa cuya función lo permita, e incluso los derechos de superusuario no importan. SELinux aumenta en gran medida la seguridad de un sistema Linux, ya que incluso root se considera un usuario normal aquí. Más detalles se describen 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úrese de tener una contraseña buena y segura, debe contener al menos ocho caracteres, preferiblemente en un caso diferente, entre los cuales deben haber caracteres especiales o números. Por ejemplo, 8 caracteres, de los cuales siete son letras y un carácter o número. Use herramientas como John the Ripper para encontrar contraseñas de usuario débiles en el servidor y configure pam_cracklib.so para hacer cumplir la política de contraseñas.

    8. Cambia las contraseñas de vez en cuando

    El comando de cambio le permite especificar el número de días antes de la fecha de cambio de contraseña forzada. Esta información es utilizada por el sistema para determinar cuándo el usuario debe cambiarla. Estas configuraciones están 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 fecha de vencimiento de la contraseña, ingrese el comando:

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

    (contraseña de usuario): (última modificación):(max_days): (minimum_days): (Advertencia):(desactivar):(líneas_de_caducidad):

    • Días mínimos- el intervalo mínimo entre cambios de contraseña, es decir, con qué frecuencia 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.
    • Advertencia- el número de días después de los cuales se advertirá al usuario que necesita cambiar su contraseña.
    • cadena_de_caducidad- el número de días desde el 1 de enero de 1970 cuando la cuenta estará completamente inhabilitada.

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

    También es deseable evitar que los usuarios utilicen contraseñas antiguas, de lo contrario, se anularán todos los esfuerzos para obligarlos a cambiar las contraseñas.

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

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

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

    registro de errores -r -u usuario

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

    contraseña -l usuario

    Y para desbloquear:

    contraseña -u usuario

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

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

    También verifique si hay algún usuario con grupo o id 0. Solo debe haber uno de esos usuarios, y este es root. Puedes comprobar con este comando:

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

    Debe haber una sola línea:

    raíz:x:0:0:raíz:/raíz:/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 romper la seguridad en Linux.

    10. Deshabilitar inicio de sesión de superusuario

    Para mantener su sistema Linux seguro, nunca inicie sesión como root. Puede usar sudo para obtener los permisos necesarios y ejecutar el comando deseado como root. Este comando le permite no revelar la contraseña de superusuario a otros administradores y también contiene herramientas para monitorear, restringir y rastrear acciones.

    11. Seguridad física del servidor

    La seguridad del servidor Linux debe incluir la 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 establezca una contraseña en el cargador de arranque BIOS y GRUB para proteger su configuración.

    12. Deshabilitar servicios innecesarios

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

    chkconfig --lista | grep "3: activado"

    Para deshabilitar el servicio, use:

    parada de servicio
    $ servicio chkconfig desactivado

    Encuentra todo programas abiertos puertos:

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

    nmap -sT -O servidor local

    Utilice iptables para cerrar todos los puertos a los que no debería poder acceder desde la red. o detener servicios innecesarios como se describió anteriormente.

    13. Eliminar el servidor X

    El servidor X en la computadora del servidor es completamente opcional. No necesita ejecutar un entorno gráfico en un servidor Apache o de correo electrónico dedicado. Elimine este software para mejorar la seguridad y el rendimiento.

    14. Configurar Iptables

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

    15. Configurar el núcleo

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

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

    kernel.exec-escudo=1
    núcleo.randomize_va_space=1

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

    net.ipv4.conf.all.rp_filter=1

    Deshabilitar el reenvío de direcciones IP:

    net.ipv4.conf.all.accept_source_route=0

    Ignorar solicitudes de transmisión:

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

    Registrar todos los paquetes falsificados:

    net.ipv4.conf.all.log_martians=1

    16. Particiona tu disco duro

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

    • /casa
    • /var y /var/tmp

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

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

    17. Usar la limitación de espacio en disco

    Limite el espacio en disco disponible 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 que permitan comprobar 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 podrán rastrearlo. Entonces, si no necesita este servicio, desactívelo.

    19. Deshabilitar los binarios SUID y SGID no utilizados

    Todos los archivos ejecutables para los que está activado el indicador SUID o SGID son potencialmente peligrosos. Esta bandera significa que el programa se ejecutará con derechos de superusuario. Y esto significa que si el programa tiene algún tipo de vulnerabilidad o error, entonces el local o usuario remoto puede utilizar este archivo. Encuentre todos esos archivos con el siguiente comando:

    encontrar / -perm +4000

    Encuentre archivos con el indicador SGID establecido:

    encontrar / -perm +2000

    O podemos combinarlo todo en un solo comando:

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

    Deberá estudiar cada archivo encontrado en detalle para comprender cuánto se necesita este o aquel archivo.

    20. Archivos Públicos

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

    encontrar /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 representa un riesgo de seguridad.

    También es conveniente encontrar todos los archivos que no pertenecen a nadie:

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

    21. Usa un sistema de autenticación centralizado

    Sin un sistema de autenticación centralizado, los datos del usuario se vuelven inconsistentes, lo que puede generar credenciales obsoletas y cuentas olvidadas que deberían haberse eliminado hace mucho tiempo. El servicio centralizado le permitirá mantener el control sobre las cuentas de usuario y los datos de autenticación en diferentes sistemas linux y Unix. Puede sincronizar datos de autenticación entre servidores. Pero no use el servicio NIS, mejor mire hacia Open DAP.

    Una de las implementaciones interesantes de dicho sistema es Kerberos. Permite autenticar a los usuarios mediante una clave secreta en redes donde los paquetes pueden ser interceptados y modificados. Kerberos usa una clave simétrica para cifrar datos y requiere un Centro de administración de claves para funcionar. Puede configurar inicio de sesión remoto, copia remota, 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 fallidos de inicio de sesión e 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 ciertos en un artículo separado.

    Puede ver registros con utilidades como logwatch o logcheck. Simplifican enormemente la lectura de los registros. No puede ver el archivo completo, sino solo los eventos que le interesan, así como enviarse una notificación a su dirección de correo electrónico.

    Supervise el sistema con el servicio auditd. 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 Al iniciar el sistema, el servicio lee todas las reglas de este archivo. Puede abrirlo y configurar todo lo que necesite, o usar una utilidad separada: auditctl. Puede establecer los siguientes puntos:

    • Eventos de inicio y apagado del sistema
    • Fecha y hora del evento
    • Eventos de usuario (por ejemplo, acceso a un archivo específico)
    • Tipo de evento (editar, acceder, eliminar, escribir, actualizar, etc.)
    • Éxito o fracaso al ejecutar un evento
    • Grabación de eventos de cambio de configuración de red
    • Registro de cambios de usuarios y grupos
    • Supervisar los cambios de archivos

    23. Protege tu servidor OpenSSH

    Permitir solo el uso del protocolo 2:

    Deshabilitar inicio de sesión como superusuario:

    24. Instalar IDS

    El IDS o Sistema de Detección de Intrusos intenta detectar actividades sospechosas y maliciosas como Ataque de DOS, escaneo de puertos, o incluso intentos de piratear la computadora al monitorear el 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, es HIDS (IDS basado en host) que puede controlar todos los aspectos dispositivo interno tu sistema.

    Snort es un software de detección de intrusos en la red. Es capaz de analizar y registrar paquetes y analizar el tráfico de red en tiempo real.

    25. Protege tus archivos y directorios

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

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

    recomendaciones

    Ahora la seguridad del sistema operativo Linux en su computadora aumentará considerablemente. No olvide establecer contraseñas complejas de vez en cuando. Escriba su herramienta de seguridad del sistema favorita en los comentarios.

    En este artículo, nos familiarizaremos con las principales utilidades para el fortalecimiento de Linux. En ruso, esto se llama algo así como "comprobar el nivel de seguridad de los sistemas Linux y evaluar la corrección de las configuraciones en términos de seguridad de la información". Por supuesto, no solo revisaremos los programas, sino que también daremos ejemplos de su uso.

    Su propio auditor, o seguridad por su cuenta

    Los administradores, y más aún, los auditores de SI a menudo se enfrentan a la tarea de verificar la seguridad un número grande anfitriones en muy poco tiempo. Y por supuesto, existen herramientas especializadas en el segmento Enterprise para solucionar estos problemas, por ejemplo, como los escáneres de seguridad de red. Estoy seguro de que todos ellos, desde las fuentes abiertas del motor OpenVAS hasta productos comerciales como Nessus o Nexpose, son conocidos por nuestros lectores. Sin embargo, este software generalmente se usa para buscar software obsoleto y, por lo tanto, vulnerable y luego ejecutar la administración de parches. Además, no todos los escáneres tienen en cuenta algunas 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 importa, porque solo las empresas que destinan presupuestos para este negocio pueden permitirse productos comerciales.

    Es por eso que hoy hablaremos sobre un conjunto especializado de utilidades distribuidas gratuitamente 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, e incluso sugerir opciones para corregir las deficiencias encontradas. Otra ventaja de usar estas herramientas es la capacidad de replicar scripts de prueba de granja típicos de cualquier número de sistemas Linux y formar una base de prueba documentada en forma de registros e informes separados.

    Aspectos prácticos de la auditoría de seguridad

    Si mira a través de los ojos del auditor, entonces el enfoque de las pruebas se puede dividir en dos tipos.

    El primero- este es el cumplimiento de los llamados requisitos de cumplimiento, aquí se verifica la presencia de elementos de seguridad obligatorios prescritos en cualquier estándar internacional o "mejor práctica". Un ejemplo clásico son los requisitos de PCI DSS para sistemas de TI de pago, SOX404, serie NIST-800, .

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

    Todo lo relacionado con el segundo enfoque suele denominarse término especial. endurecimiento, que también se puede definir como "acciones destinadas a fortalecer el nivel de seguridad inicial del sistema operativo (o programa) principalmente por medios regulares".

    El cumplimiento de los requisitos de cumplimiento generalmente se verifica en preparación para pasar una auditoría obligatoria como PCI DSS u otra auditoría de certificación. Prestaremos más atención al componente de endurecimiento. Todos los principales desarrolladores ofrecen para sus productos Pautas de endurecimiento- guías que contienen consejos y recomendaciones sobre cómo mejorar la seguridad, teniendo en cuenta los mecanismos de seguridad habituales y las especificidades del software. Entonces, Red Hat, Debian, Oracle, Cisco tienen manuales similares.

    INFORMACIÓN

    El endurecimiento es un término del mundo de la seguridad de la información, que se refiere al proceso de garantizar la seguridad de un sistema (programa) mediante la reducción de su vulnerabilidad y, por regla general, utilizando solo utilidades estándar o mecanismos de protección.

    sudo apt-get update sudo apt-get install lynis

    Y para distribuciones orientadas a RPM (después de agregar los repositorios apropiados):

    Yum instalar linus -y

    Instalación en macOS:

    $ cerveza buscar lynis $ cerveza instalar lynis

    Para iniciar Lynis, es suficiente especificar al menos una clave. Por ejemplo, para ejecutar todas las pruebas disponibles, debe especificar el modificador -c (marcar todo, marcar todo):

    # Suite de prueba típica del sistema de auditoría de sudo lynis # Suite de prueba completa del sistema de auditoría de sudo lynis -c # Escanear un sistema de auditoría de host remoto remoto







    Antes de una auditoría, siempre es una buena idea comprobar si una nueva version lynnis:

    Información de actualización de Lynis && Verificación de actualización de Lynis

    La utilidad Lynis, además de la estándar, tiene un modo más: carrera sin privilegios:

    Auditoría Lynis --pentest

    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 Papá

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

    Para probar de forma sistemática en modo automático, puede asignar el trabajo apropiado al programador de Cron usando el interruptor -cronjob. En este caso, la utilidad se ejecutará de acuerdo con la plantilla especificada (config) y no mostrará ningún mensaje interactivo, pregunta o advertencia. Todos los resultados se guardarán en el registro. Por ejemplo, aquí hay un script de inicio de utilidad con una 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/informe-$( HOST).$(FECHA)" DATA="$LOG_DIR/informe-datos-$(HOST).$(FECHA).txt" cd /usr/local/lynis ./lynis -c –auditor "$(AUDITOR)" --cronjob > $(INFORME) mv /var/log/lynis-report.dat $(DATOS) # Fin

    Guarde este script en el directorio /etc/cron.monthly/lynis. Y no olvide agregar rutas para guardar 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:

    Lynis muestra comandos

    Particularmente curioso puede mirar la configuración desde la configuración predeterminada:

    Lynis muestra la configuración

    Breve instrucción sobre cómo 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.


    Ejecución de pruebas individuales en Lynis

    En la práctica, puede ser necesario realizar solo algunas pruebas. Por ejemplo, si su servidor realiza solo las funciones de Mail Server o Apache. Podemos usar la opción -tests para esto. La sintaxis del comando es la siguiente:

    Lynis -pruebas "Identificadores de prueba"

    Si le resulta difícil de entender debido a la gran cantidad de ID de prueba, puede usar el parámetro de grupo -test-category . Con esta opción, Lynis solo ejecuta ID de prueba que pertenecen a una categoría específica. Por ejemplo, planeamos ejecutar pruebas de firewall y kernel:

    ./lynis -tests-category "núcleo de cortafuegos"

    Además, la funcionalidad de Lynis se amplía con varios complementos que puede agregar por su cuenta, o puede colocar otros nuevos en un directorio existente.

    Sugerencias de corrección

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

    Perfiles

    Los perfiles que gestionan la auditoría se definen en ficheros con extensión .prf ubicado en el directorio /etc/lynis. El perfil predeterminado tiene el nombre predecible: default.prf . Los desarrolladores no recomiendan editarlo directamente: cualquier cambio que desee realizar en la auditoría se agrega mejor al archivo custom.prf ubicado en el mismo directorio.

    Continúa disponible solo para miembros

    Opción 1. Únase a la comunidad del "sitio" para leer todos los materiales en el sitio

    ¡La membresía en la comunidad durante el período especificado le dará acceso a TODOS los materiales de Hacker, aumentará su descuento acumulativo personal y le permitirá acumular una calificación profesional de Xakep Score!