¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal


Crear un log propio para iptables 

Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

Autor:  

Prácticamente todos los mensajes generados por el sistema se guardan por default en /var/log/messages, esto es útil y necesario, pero de una manera muy sencilla podemos hacer que los eventos o mensajes generados por iptables se guardan en su propio archivo de bitacora (log).


Editar /etc/syslog.conf

En este archivo de configuración se indica el modo en que los mensajes del sistema son bitacorizados a través de la utileria syslogd que se instala y configura por default en todos los sistemas GNU/Linux y rara vez el usuario del sistema la modifica, pero en esta ocasión lo abriremos (con tu editor favorito) y haremos lo siguiente:

#> vi /etc/syslog.conf

kern.warning          /var/log/iptables.log

/etc/syslog.conf se compone de varias líneas y cada línea es una regla que indica como bitacorizar los mensajes del sistema. Cada regla tiene dos campos, tal como el que añadimos al final. El primer campo (kern.warning) es el "selector" que se compone de dos partes separadas por el punto: facility.priority, 'facility' que en este caso es kern (kernel) representa el subsistema que produce el mensaje y 'priority' define la severidad del mensaje. Estas pueden ser en orden ascendente: debug, info, notice, warning, error, crit, alert, emerg.

Entonces 'warning' es el nivel 4 de prioridad e indica entonces que todos los mensajes provenientes del kernel que tengan un nivel de prioridad 4 o mayor se bitacorizarán en el archivo /var/log/iptables.log y se ignoran los de debug, info y notice que son del 3 hacía abajo y que generalmente son irrelevantes.

Es importante aclarar que los mensajes del sistema también seguirán guardándose en /var/log/messages y otros que se tengan definidos en /etc/syslog.conf ya que lo que hicimos fue 'añadir' una línea más y no modificamos nada de lo que ya estaba ahí.


Reiniciando el servicio syslog

Como cualquier otro programa servicio hay que reiniciarlo para que los cambios en el archivo de configuración surtan efecto.

#> /etc/rc.d/init.d/syslog restart   
#> /etc/init.d/syslog restart

#> service syslog restart

Modificando el firewall

Si por ejemplo quieres bitacorizar todo lo que sea rechazado en la cadena INPUT:

iptables -A INPUT -j LOG -log--level 4
iptables -A INPUT DROP

Es decir, generalmente se usará el targer LOG antes de rechazar los paquetes que no queramos, y como notarás en el ejemplo usamos la opción -log--level 4 que activará syslog solo cuando el mensaje sea del tipo warning (4) o superior.

Un ejemplo más interesante es el siguiente:

iptables -A INPUT -s 192.168.10.10 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j LOG --log-prefix 'INTENTO DE ACCESO A SSH ' --log-level 4
iptables -A INPUT -p tcp -m tcp --dport 22 -j REJECT

En este caso, la primera regla está aceptando a la ip 192.168.10.10, pero si es cualquier otra ip, entonces se bitacoriza el evento con el mensaje 'INTENTO DE ACCESO A SSH ' en /var/log/iptables.log

Esto es mucho más útil ya que posteriormente con un simple grep podremos observar solo los mensajes de este tipo:

#> grep 'INTENTO DE ACCESO A SSH' /var/log/iptables.log
Apr 13 10:43:39 equipolinux kernel: INTENTO DE ACCESO A SSH IN=eth1 OUT= MAC=00:50:fc:89:63:39:00:16:e6:82:cd:8a:08:00 SRC=192.168.10.16 DST=192.168.10.100 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=4601 DF PROTO=TCP SPT=1138 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0
Apr 13 10:44:10 equipolinux kernel: INTENTO DE ACCESO A SSH IN=eth1 OUT= MAC=00:50:fc:89:63:39:00:16:e6:82:cd:8a:08:00 SRC=192.168.10.16 DST=192.168.10.100 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=4602 DF PROTO=TCP SPT=1138 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0

Se puede apreciar que hay dos intentos de acceder al servidor ssh del equipo linux (192.168.10.100) desde el equipo 192.168.10.16 y con tan solo algunos segundos de diferencia, esto ya es sospechoso y habría que investigar quien está intentando conectarse y porque. (Claro estando en una LAN que controlemos)

Pues ahí lo tienes, puedes agregar a tus reglas de iptables todos los targets LOG que consideres necesarios y revisarlos más utilmente en un archivo por separado. Espero te sea útil.



¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal

LinuxTotal en:

Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.


Dona a través de paypal::


O a través de bitcoins:


14TNQv5wM3xkSv65gHGQ6s6f8yTZuFTohE
Más artículos de LinuxTotal

La demanda civil entablada por la empresa SCO contra la gigante IBM causó revuelo entre la comunidad Linux y Open Source cuando e....


En linux cualquier comando (o cualquier cosa) que se teclea se le conoce como que está utilizando la entrada estándar [STDIN]. L....


EL espacio disponible en disco se determina con este comando built-in del sistema operativo Linux, df.....


Cuando tu creas un documento de texto en MSDOS/Windows (como por ejemplo en notepad.exe), Windows añade al final de cada línea u....


En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencial....


¿Has visto esa combinación de r,w,x,- cuando listas un directorio?, tienes cierta idea que son los permisos, pero ¿como se usan....


En SQL, 'Alter' es un comando de la categoría DDL (Data Definition Language) y como su nombre lo indica sirve para alterar objeto....


Uno de mis clientes tiene múltiples aplicaciones basadas en VisualBasic 6 y como base de datos Access, que se ejecutan directamen....


Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....


Administración básica de redes. Conoce distintos métodos y herramientas para escanear, probar o buscar por puertos abiertos des....



Copyright © LinuxTotal.com.mx 2006-2024
info@linuxtotal.com.mx · linuxtotal.com.mx@gmail.com