Registro de Actividad de IPTables en Linux

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Con iptables puedes registrar la actividad de red en un archivo de log, lo que permite monitorear los datos que se envían y desde dónde se originan. Aquí tienes un ejemplo de cómo hacerlo:

sudo iptables -t filter -A FORWARD -s 192.168.1.0/24 -m tcp -p tcp --dport 443 -j LOG --log-prefix "Iptables: "

En este comando, la regla captura el tráfico de la red local (192.168.1.0/24) en el puerto 443 y lo registra con el prefijo "Iptables: ".

Para que estos registros no se mezclen con otros en rsyslog, crearemos un archivo de configuración específico:

sudo nano /etc/rsyslog.d/10-iptables.conf

Luego, añade las siguientes líneas al archivo:

:msg, contains, "Iptables: " -/var/log/iptables.log
& ~

o este:

:msg, contains, "Iptables: " -/var/log/iptables.log
&
stop

Estas líneas indican que los mensajes que contienen "Iptables:" se almacenarán en el archivo /var/log/iptables.log.

Aplicar los cambios

Para que la configuración tenga efecto, reinicia rsyslog con el siguiente comando:

sudo systemctl restart rsyslog

Ahora, los registros de la actividad de red especificada se guardarán en /var/log/iptables.log.

Configuración de Logrotate para el Registro de IPTables

Logrotate se utiliza para gestionar archivos de registro de gran tamaño en Linux, permitiendo rotarlos, comprimirlos y eliminarlos automáticamente en función de políticas personalizables. Para los registros de IPTables, configuraremos logrotate para rotar el archivo /var/log/iptables.log.

  1. Crear la Configuración de Logrotate:

    Abre un nuevo archivo de configuración para los registros de IPTables en el directorio de configuración de logrotate:

    sudo nano /etc/logrotate.d/iptables
  2. Añadir las Opciones de Configuración:

    Dentro de este archivo, configura logrotate con opciones específicas. Aquí tienes un ejemplo de configuración básica:

    /var/log/iptables.log {
    daily # Rotar el archivo diariamente
    missingok # Ignorar el archivo si no existe
    rotate 7 # Mantener los últimos 7 archivos de registro
    compress # Comprimir los registros antiguos
    delaycompress # Retrasar la compresión hasta que pase un ciclo
    notifempty # No rotar el archivo si está vacío
    create 0640 root adm # Crear el nuevo archivo con permisos y propietario específicos
    postrotate
    /usr/bin/systemctl reload rsyslog > /dev/null 2>&1 || true
    endscript
    }

    Explicación de cada parámetro:
    • daily: rota el archivo cada día.
    • missingok: si el archivo no existe, logrotate continuará sin generar errores.
    • rotate 7: conserva los últimos 7 archivos de registro; los registros más antiguos se eliminan.
    • compress: comprime los archivos de registro antiguos (utilizando gzip por defecto).
    • delaycompress: evita la compresión del archivo de registro más reciente, permitiendo que se comprima en el siguiente ciclo.
    • notifempty: evita rotar archivos vacíos.
    • create 0640 root adm: crea el archivo de registro nuevo con permisos de lectura y escritura para el propietario (root) y solo lectura para el grupo (adm).
    • postrotate: después de cada rotación, reinicia el servicio rsyslog para aplicar cambios en la configuración del archivo de registro.
  3. Guardar y Salir:

    Guarda el archivo y cierra el editor. Esta configuración ahora se aplicará automáticamente cada día (o según el ciclo de rotación especificado).
  4. Probar la Configuración:

    Puedes probar la configuración de logrotate para asegurarte de que funcione correctamente con el siguiente comando:

    sudo logrotate -f /etc/logrotate.d/iptables

    Esto forzará una rotación del archivo /var/log/iptables.log, permitiéndote comprobar que se crea un archivo comprimido con el log actual y uno nuevo vacío.
  5. Verificar la Configuración de Logrotate:

    Para confirmar que logrotate está configurado correctamente y se ejecuta según lo previsto, revisa los archivos en el directorio /var/log para ver los archivos comprimidos (por ejemplo, iptables.log.1.gz, iptables.log.2.gz, etc.).

Con estos pasos, tendrás configurado logrotate para gestionar automáticamente los registros de IPTables y evitar que crezcan sin control, preservando el espacio en disco y manteniendo un historial reciente de la actividad de red.