Header Ads

Network Monitor II

En la primera entrega, Network Monitor, mencionamos algunas herramientas esenciales para monitorear nuestra red local. Hoy le tocó el turno al ancestral IPtraf.
Esta herramienta es sin lugar a dudas una de las mejores para supervisar todas las interfaces de red de nuestro servidor o cliente en tiempo real, ya que proporciona estadísticas sobre el tráfico IP de las redes que se encuentren activas en el sistema, brindando número de paquetes y bytes en una conexión, estadísticas de una interfaz, indicadores de actividad, caídas en el tráfico TCP/UDP y paquetes en una estación LAN, entre muchos otros beneficios.
No es un sniffer propiamente, como Wireshark, pero si analizamos las estadísticas podemos llegar a detectar conexiones ilegales o actividad anormal.
Para instalarlo y ejecutarlo:
sudo apt-get install iptraf
sudo iptraf
PD: En ocasiones se recomienda crear el log
/var/log/iptraf/ip_traffic-1.log
Luego sale el cuadro de la licencia. Pulse cualquier tecla (Press a key to continue), y selecciona "IP Traffic Monitor". Luego elegir "All Interfaces" (o la tarjeta de red que quiera auditar) y presione Enter. Por ultimo presione la letra S para elegir cómo quiere que muestre las estadísticas de conexiones (Seleccione en el teclado P Packet o B Byte)
Opciones (Flags)
Cada paquete TCP se le asocian opciones que están expresadas en letras (flags):
S: Es cuando se esta llevando a cabo un SYN (Sincronización) preparando una conexión. Por ejemplo si esta presente S—- es por que se pretende realizar un conexión. En caso de que aparezca S-A- es por que nos indica un reconocimiento de un pedido de conexión anterior.
A: es un reconocimiento (ACK) de un paquete recibido.
P: son los pedidos de prioridad para poder ser trasladados al principio de la cola.
U: indica la presencia de paquetes de datos urgentes.
RESET: la maquina de origen de esta dirección reseteó toda la conexión.
DONE: indica que la conexión ya terminó de enviar datos en esta dirección y envió un paquete de finalización (Fin).
CLOSED: El paquete de finalización (FIN) ha sido reconocida por la otra maquina.
-: este guión indica que la opción no se encuentra activa.
IP Traffic Monitor already listening on (eth0, eth1 etc)
En ocasiones puede ocurrir que estemos monitoreando una interfaz de red, cerramos IPtraf (ya sea a las buenas o a las malas) y al intentar abrirlo nuevamente para supervisar la misma u otra interfaz de red, nos sale el mensaje: "IP Traffic Monitor already listening" y el nombre de la interfaz.
En este caso debemos cerrar IPtraf (asegurarnos que esté completamente cerrado con ps ax | grep iptraf), y eliminar el contenido de la carpeta /var/run/iptraf/
Nota: No se recomienda eliminar el log de iptraf ip_traffic-1.log (/var/log/iptraf/) a no ser que no desee conservar el histórico
Auditar con Iptraf en el navegador web
Otra manera de visualizar el tráfico con IPtraf es a través del navegador web (Mozilla, Chrome, etc). Para hacerlo realizamos el siguiente procedimiento (asumiendo que ya se tengamos instalado IPTraf y Apache2).
Creamos el nuevo archivo log
sudo mkdir -p /var/www/html/iptrafaudit/iptrafaudit.log
Ahora asignaremos un puerto de escucha para los logs de IPtraf. Para ese ejemplo elegiremos 11300, pero puede ser cualquier otro no reservado. El siguiente paso es crear y editar el archivo de configuración para Apache2 e incluirle el puerto designado:
sudo touch /etc/apache2/sites-enabled/iptrafaudit.conf
Con el siguiente contenido:
< VirtualHost *:11300 >
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html/iptrafaudit
 < Directory / >
  Options FollowSymLinks
  DirectoryIndex index.php index.html index.htm iptrafaudit.log
  AllowOverride None
 < /Directory >
 < Directory /var/www/html/iptrafaudit/ >
  AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
 < /Directory >
 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 < Directory "/usr/lib/cgi-bin" >
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
         Require all granted
 < /Directory >
 ErrorLog ${APACHE_LOG_DIR}/error.log
 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn
 CustomLog ${APACHE_LOG_DIR}/access.log combined
< /VirtualHost >
Nota: Por razones de visualización del código debe quitarle los espacios a los < >. Ejemplo: correcto <virtualhost> incorrecto < virtualhost >
Ahora abrimos el puerto (11300) en nuestro firewall iptables:
wan=eth0 # interfaz de red publica
lan=eth1 # interfaz de red local
local=192.168.1.0 # IP red local
iptables=/sbin/iptables
netmask=24 # mascara de subred
$iptables -A INPUT -s $local/$netmask -i $lan -p tcp --dport 11300 -j ACCEPT
Y abrimos el puerto (11300) en Apache2, editando /apache2/ports.conf y agregamos:
Listen 11300
Guardamos los cambios y agregamos una entrada al crontab, para enviar los logs de IPTraf al nuevo log que visualizaremos en la web. Para este ejemplo hemos seleccionado que se actualizará diariamente con 50 registros, pero podemos aumentar este número a discreción o modificar la frecuencia con que queremos que se actualice el log en crontab:
sudo crontab -l | { cat; echo "@daily tail -50 /var/log/iptraf/ip_traffic-1.log > /var/www/html/iptrafaudit/iptrafaudit.log"; } | sudo crontab -
Reiniciamos Apache2 y ya podemos acceder a los logs de IPtraf desde nuestro navegador con la ip del equipo al puerto designado. Ejemplo:
http://192.168.0.10:11300/iptrafaudit.log
o
http://192.168.0.10:11300/
Adicionalmente, si queremos tener el servicio Iptraf disponible 24/7, creamos un script vigilante con el siguiente contenido:
echo '# Iptraf Service
 date=`date +%d/%m/%Y" "%H:%M:%S`
 if [[ `ps -A | grep iptraf` != "" ]];then
 echo -e "\nONLINE"
 else
 echo -e "\n"
 killall iptraf >/dev/null 2>&1
 iptraf -i all -L /var/log/iptraf/ip_traffic-1.log -B
 service apache2 restart
 echo "Iptraf start $date" >> /var/log/syslog
 fi'> /etc/init.d/iptrafservice.sh
Este script levanta el servicio en caso de caída y envía un registro del evento a /var/log/syslog
Le damos permisos de ejecución:
sudo chmod +x /etc/init.d/iptrafservice.sh
Y lo programamos en el cron para que inicie con nuestro sistema:
sudo crontab -e
@reboot /etc/init.d/iptrafservice.sh
Man de IPtraf
NetHogs
Otra aplicación que complementa IPtraf es NetHogs, que al igual que IPTraf permite monitorizar nuestra red, pero se concentra en proporcionar datos fiables del consumo de internet de las conexiones y/o aplicaciones que se estén ejecutando en nuestro terminal, expresando los valores en velocidad de subida y bajada.
Instalarlo y ejecutarlo es simple (hay que ser root):
sudo apt-get install nethogs
sudo nethogs
Los datos los muestra cada 1 segundo y de todas las interfaces que tengamos, pero si queremos mostrar la información cada X segundos y de una interfaz específica, ejecutamos:
sudo nethogs -d 5 eth1
sudo nethogs -d 10 wlan0 # (o wlp1s0)

No hay comentarios

Nota: solo los miembros de este blog pueden publicar comentarios.

Con la tecnología de Blogger.