Header Ads

Network Monitor

Sin importar la protección que implementemos en nuestra red local, no será lo suficiente si no establecemos sistemas de análisis y supervisión del tráfico en tiempo real, para monitorear las conexiones entrantes y salientes, los puertos, etc.
Para esto son los archivos .log de nuestro servidor, sin embargo, para mayor comodidad, existen algunos frontend que valen la pena mencionar y que harían este proceso más fácil.
Una herramienta de monitoreo en tiempo real es una herramienta indispensable para la gestión del Administrador TI de la red local. Hay infinidades de ellas, como Whatsup GoldOpManager, Monit, PRTG, ActiveXperts, Etherape, etc, etc, etc. y es imposible describirlas todas, sin embargo, en esta entrega, nos enfocaremos en algunas que ofrecen resultados muy buenos y son gratuitas.
Sqstat
Instalamos dependencias
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli
Descargamos el programa Sqstat AQUI o con wget y descomprimimos
wget http://samm.kiev.ua/sqstat/sqstat-1.20.tar.gz
tar -xzvf sqstat-1.20.tar.gz
Luego creamos la carpeta sqstat (Para Squid 3.0x y 3.1x en /var/www y para Squid v3.2 o superior en /var/www/html). Y copiamos el contenido descargado a la nueva carpeta y cambiamos el archivo config.inc.php.defaults como config.inc.php
# Para Squid3 v3.0x y 3.1x
sudo mkdir /var/www/sqstat
sudo cp -r sqstat-1.20/* /var/www/sqstat
cd /var/www/sqstat
sudo cp config.inc.php.defaults config.inc.php
# Para Squid3 v3.2x o superior
sudo mkdir /var/www/html
sudo mkdir /var/www/html/sqstat
sudo cp -r sqstat-1.20/* /var/www/html/sqstat
cd /var/www/sqstat
sudo cp config.inc.php.defaults config.inc.php
Editamos el archivo config.inc.php especificando los parámetros de IP o hostname del servidor proxy y el puerto de escucha:
# Para Squid3 v3.0x y 3.1x
sudo vim /var/www/sqstat/config.inc.php
# Para Squid3 v3.2x o superior
sudo vim /var/www/html/sqstat/config.inc.php
Y modificamos las líneas 
$squidhost[0]="IP_PROXY_SERVER"; 
$squidport[0]=PORT_PROXY_SERVER; 
con aquellos parámetros de nuestra red Lan. Ejemplo:
$squidhost[0]="192.168.1.10";
$squidport[0]=3128;
Ejemplo de un archivo config.inc.php:
/* global settings */

$use_js=true; // use javascript for the HTML toolkits

// Maximum URL length to display in URI table column
DEFINE("SQSTAT_SHOWLEN",60);

/* proxy settings */

/* Squid proxy server ip address or host name */
$squidhost[0]="192.168.1.10";
/* Squid proxy server port */
$squidport[0]=3128;
/* cachemgr_passwd in squid.conf. Leave blank to disable authorisation */
$cachemgr_passwd[0]="";
/* Resolve user IP addresses or print them as numbers only [true|false] */
$resolveip[0]=false; 
/* uncomment next line if you want to use hosts-like file. 
   See hosts.txt.dist. */
// $hosts_file[0]="hosts.txt"
/* Group users by hostname - "host" or by User - "username". Username work only 
   with squid 2.6+ */ 
$group_by[0]="host";

/* you can specify more than one proxy in the configuration file, e.g.: */
// $squidhost[1]="192.168.0.1";
// $squidport[1]=3129;
// $cachemgr_passwd[1]="secret";
// $resolveip[1]=true; 
// $hosts_file[1]="otherhosts.txt"
Nota: host.txt solo funciona en squid 2.6 o superior. Debe colocar la ruta completa del host y dentro ip del usuario mas el nombre. Ejemplo:
192.168.0.12 JORGE
192.168.1.13 SERVIDORCON
192.168.1.14 PEDRO
192.168.1.10 SERVIDOR
Nota: Si en su squid.conf agregó algún password, debe poner el mismo password en el sqtat. Ejemplo:
# Ejemplo de contraseña en /etc/squid3/squid.conf
cachemgr_passwd su_contraseña all
# Ejempo de contraseña en /var/www/sqstat/config.inc.php
$cachemgr_passwd[0]="su_contraseña";
Finalmente editamos el archivo /etc/squid3/squid.conf, añadiendo estas líneas:
# Para Squid3 v3.0x
acl manager proto cache_object
acl PROXY_SERVER src IP_PROXY_SERVER/255.255.255.255
http_access allow manager PROXY_SERVER
http_access deny manager
# Para Squid3 v3.2x o superior
acl PROXY_SERVER src IP_PROXY_SERVER/32
http_access allow manager PROXY_SERVER
http_access deny manager
Nota: Debe coincidir la IP del proxy tanto en el squid.conf como en el config.inc.php. Y antes de denegar 'manager' debe autorizarlo, tanto para su red local (localnet) como para el localhost
Ejemplo:
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access allow manager localnet
http_access allow manager localhost
# cerrando 
http_access deny manager
Luego reiniciamos el Proxy o recargamos Squid y Apache con:
sudo squid3 -k reconfigure | sudo invoke-rc.d apache2 reload
Por último, abrimos el navegador web desde cualquier PC de la red Lan y en la barra de direcciones accederemos a http://127.0.0.1/sqstat/sqstat.php, donde 127.0.0.1 es localhost (puede reemplazarlo por la IP_PROXY_SERVER)
Nota: No olvide editar su archivo apache2 y agregarle el ServerName
# edite /etc/apache2/apache2.conf
# y agregue el ServerName
ServerName localhost
ServerName IP_DEL_PROXY_SERVER 
Problemas comunes de Sqstat
Netmasks are deprecated
Si después de parametrizar su squid.conf  reiniciar squid3 y verificar  sudo squid3 -k parse) sale un mensaje similar a:
WARNING: Netmasks are deprecated. Please use CIDR masks instead
WARNING: IPv4 netmasks are particularly nasty when used to compare IPv6 to IPv4 ranges
WARNING: For now we will assume you meant to write /32
Significa que esta utilizando mascaras de subred que su versión de Squid no soporta. En su reemplazo deberá especificar el CIDR. Ejemplo: reemplazar 255.255.255.255 por 32. Para mayor información consulte la siguiente tabla CIDR.
SqStat error Error (1): Cannot get data. Server answered: HTTP/1.1 401 Unauthorized (o Forbidden)
Este problema es frecuente en las versiones de Squid 3.2x y 3.3x. Para solucionarlo siga el siguiente tutorial (ruso).
Sqtop
Otro programa similar a Sqstat es Sqtop, que tambien muestra la actividad de Squid en tiempo real, pero por terminal. Si quiere conocer su funcionamiento lea el siguiente tutorial
git clone https://code.google.com/p/sqtop/
o
git clone https://github.com/paleg/sqtop
cd sqtop/
./configure 
make
./src/sqtop -h IP_DEL_PROXY -p PUERTO_DEL_PROXY 
Pero si no queremos instalar nada, simplemente ejecutamos en el terminal:
# para conexiones en tiempo real
sudo tail -f /var/log/squid3/access.log | perl -pe 's/\d+/localtime($&)/e'
# en retrospectiva
sudo cat /var/log/squid3/access.log | perl -pe 's/\d+/localtime($&)/e' | less
Y con esto sabremos en tiempo real, que equipos se están conectando a nuestro squid
Sarg
Sarg (Squid Analysis Report Generator) es otro programa de monitoreo relacionado con el Squid, para supervisar conexiones de internet (http 80), pero no es en tiempo real como Sqstat, sin embargo brinda informes detallados de los accesos por terminal, algo que no hace Sqstat, y estos informes pueden generarse en el momento y con la frecuencia que queramos, lo que lo hace un complemento ideal de Sqstat.
Se puede manejar con el webmin, para mayor comodidad del administrador TI.
Configurando Sarg
Como trabaja con el Squid, debemos asegurarnos que Squid esté instalado y configurado Verifique los archivos de registro
sudo vim /etc/squid3/squid.conf
grep cache_access_log /etc/squid3/squid.conf
TAG: cache_access_log
cache_access_log /var/log/squid3/access.log
Configuración básica
# Instalación de Sarg y sus dependencias (Si instalaron Sqstat es posible que no necesiten las dependencias)
sudo apt-get install sarg apache2 libapache2-mod-php5 squid
# Editar archivo de configuración
sudo vim /etc/sarg/sarg.conf
# Elegir Lenguaje
language Spanish
# Elegir la ruta de los logs
access_log /var/log/squid3/access.log
# Seleccionar un titulo de los reportes
title "Reportes de Acceso Web por Usuarios"
# Ruta de almacenamiento de los reportes (se debe crear la carpeta y colocar la Ruta donde esta configurado Apache)
output_dir /var/www/squid-reports/Manual
# Si el registro aparece o no aparece por la IP (no recomendado. Demora mucho)
resolve_ip yes o no
# Reportes  con la configuracion de la hora U america (mes/dia/año)
date_format u
# Dias a ver en los registros.( Sunday->0, Saturday->6 )
weekdays 0-6 :
También puede crear una lista de los excluidos del reporte. Pudiendo contener direcciones IP (Ejemplo: 192.168.1.10), una red completa (192.168.1.0/24), el nombre de un equipo (equipo.red.local) o todos los equipos de una red (*.red.local) /etc/sarg/exclude_users O de los incluidos
sudo vim /etc/sarg/usertab
Y finalmente para acceder al reporte
http://localhost/sarg/
o
http://ipdelservidor/sarg/
Luego programe la ejecución de Sarg en el crontab (para su ejecución a una hora determinada/dia)
sudo crontab -e
*/5 * * * * /usr/sbin/sarg-reports today > /dev/null 2>&1
# o por el Webmin (que es más sencillo)
@daily /etc/webmin/sarg/generate.pl
# para salir de crontab
:wq
# Nota:
# Para ubuntu 10x
#@daily /etc/webmin/sarg/generate.pl
#Para Ubuntu 14x
#@daily/usr/share/webmin/sarg/generate.pl
Para generar los reportes manualmente
sudo sarg-reports today
Sarg tambien puede usarse con squidguard, y tiene muchas opciones más. Puede hacerlo de modo gráfico en el Webmin, y para más configuraciones leer los tutoriales de tuxjn y ecured. Para restringir el acceso a los reportes lea el siguiente post.
Nessus
Esta herramienta no requiere de mayor presentación. No es un software de monitoreo propiamente, sino que se utiliza para realizar un análisis a fondo de las vulnerabilidades de nuestra red local y supervisar sus recursos.
Instalación y configuración Nessus 5.2.5 
1. Descarga
http://www.tenable.com/products/nessus/select-your-operating-system
2. Instalación
sudo dpkg -i Nessus-5.2.5-ubuntu1110_amd64.deb
3. Configuración
# Añadir usuario
sudo /opt/nessus/sbin/nessus-adduser
Login : usuario (el nombre que quieras como admin)
Do you want this user to be a Nessus 'admin' user ? (can upload plugins...) (y/n) [n]: y
This user will have 'admin' privileges within the Nessus server 
Rules : 
Is that ok ? (y/n) [y] y
# Luego sale el siguiente mensaje y presionar Enter
Enter the rules for this user, and enter a BLANK LINE once you are done :
(the user can have an empty rules set)
Login : usuario
Password : ***********
This user will have 'admin' privileges within the Nessus server
Rules :
Is that ok ? (y/n) [y]  y
# Si todo salió bien, saldrá lo siguiente:
User added 
4. Activación y actualización de plugins Seguimos el siguiente link:
http://www.tenable.com/products/nessus-home
Colocamos Nombre, apellidos, mail, marcamos la casilla "I agree to the terms of service" y pulsamos el botón "Register". Nos enviará al mail un código de activación. Copiamos el código que nos enviaron al mail y en el terminal ejecutamos
sudo /opt/nessus/bin/nessus-fetch --register C2D6-3A94-ECD4-7735-1111
Donde C2D6-3A94-ECD4-7735-1111 es el código (cámbielo por el suyo). Una vez terminada la actualización de los plugins (Nessus descarga entre 90-100mb de plugins, por tanto debe ser paciente), reiniciamos el servicio
sudo /etc/init.d/nessusd restart
5. Verificar servicios activos
sudo netstat -ntpl | grep nessusd
Si los servicios están activos, debe salir la siguiente información:
tcp 0 0 0.0.0.0:1241 0.0.0.0:* ESCUCHAR 7575/nessusd
tcp 0 0 0.0.0.0:8834 0.0.0.0:* ESCUCHAR 7575/nessusd
tcp6 0 0 :::1241 :::* ESCUCHAR 7575/nessusd
tcp6 0 0 :::8834 :::* ESCUCHAR 7575/nessusd
6. Acceder Nessus via web
https://localhost:8834
Una vez aceptado el certificado y en la página inicial de Nessus, el trabajo con la plataforma es muy intuitivo. Basta con crear una "Policies" para crear una nueva política de escaneo, darle un nombre cualquiera y en "Scan Target", colocar la ip a evaluar o la red completa ej: 192.168.1.0/24. Luego en "Scans", activarlo basado en esta política creada y esperar a que termine el escaneo y muestre el informe.
7. Plugins offline (Opcional) 
Si su conexión a internet es lenta, se recomienda la descarga de los plugins manualmente. Una vez nos envíen el código de activación, sin colocarlo en el software, accederemos a
https://plugins.nessus.org/offline.php
Ponemos el código y la web nos reenvia a la pantalla de descarga
Thank you. You can now obtain the newest Nessus plugins at : 
http://plugins.nessus.org/get.php?f=all-2.0.tar.gz&u=eecb2cc1f5449a323ee2123de1863f18&p=2620b5072399716c50cc273255c20f24 

You also need to copy the following file to :
/opt/nessus/etc/nessus/nessus-fetch.rc (Unix)
C:\Documents and Settings\All Users\Application Data\Tenable\Nessus\conf\nessus-fetch.rc (Windows XP/2K3)
C:\ProgramData\Tenable\Nessus\conf\nessus-fetch.rc (Windows Vista/7/8/2008/2012)
/Library/Nessus/run/etc/nessus/nessus-fetch.rc (Mac OS X)
/usr/local/nessus/etc/nessus/nessus-fetch.rc (FreeBSD)

https://plugins.nessus.org/mkconfig.php?ac=C2D6-3A94-ECD4-7735-1A29&c=
Los plugins nessus-fetch.rc y all-2.0.tar.gz se colocan en:
/opt/nessus/etc/nessus/
Y luego reinicie el proceso en el paso 4.
Análisis y reporte con NMAP
También puede realizar un análisis de su red local con el todo terreno Nmap. Es más exacto, efectivo y garantizado, que cualquier otra herramienta existente.
Primero generamos un reporte, en formato xml, que llamaremos "reporte.xml", y se alojará en home. Este reporte incluye un barrido de toda la red, identificando las estaciones de trabajo, puertos activos, SO, etc, sin embargo puede generarlo de una o varias direcciones ip.
El siguiente ejemplo corresponde a un análisis y reporte de una red clase C.
sudo nmap -sV -T4 -O -F --version-light 192.168.1.0/24 -oX reporte.xml
Instalamos la herramienta xsltproc
sudo apt-get install xsltproc
Y convertimos el reporte a formato html para visualizarlo en el navegador.
$ xsltproc reporte.xml -o reporte.html
También podemos convertir la salida de nmap en un csv con un script de python. Su funcionamiento es muy simple. El portal Inseguros nos trae el siguiente ejemplo:
nmap -sV -p- IP -oN - | python nmaptocsv.py >salida.csv
Otras aplicaciones
Para monitorear el ancho de banda, conexiones abiertas, puertos a la escucha, sitios webs y muchas otras cosas más, existen otros cientos de herramientas, tales como Munin, Piwik, Cacti, Monitorix, PRTG, Netspeed, Pandora, etc, que brindan resultados muy confiables y son gratis. Puede encontrar listas detalladas en los sitios: DynacontSBD y Fraterneo

Vea Network Monitor II
Con la tecnología de Blogger.