Instalacion de ntop en Debian 6
Instalación de ntop en Debian 6
Necesitamos esta aplicación en la red de la oficina para detectar problemas y consumos elevados de tráfico. En la versión 6 de debian parece ser que la instalación del Ntop tiene algún problema y hemos tenido que compilar la aplicación nosotros mismos.
Instalación
Primero una serie de dependencias que fueron apareciendo a media que se configuraba la aplicación.
apt-get install libtool
apt-get install m4
apt-get install autoconf automake
apt-get install libpcap0.8-dev
apt-get install gdbm
apt-get install libgdbm-dev
apt-get install librrd-dev
apt-get install python-dev
apt-get install libgeoip-dev
Ahora procedemos a compilar la aplicación.
make
Y ahora la instalamos...
make install
Post instalación
Ahora generamos un usuario para que ejecute el ntop. El directorio para el usuario (parámetro -d) es /usr/local/share/ntop, que es donde se instala la aplicación. -M para no crear el directorio home ya que está creado y como shell ponemos /bin/false (parámetro -s) para que no se puedan conectar al sistema con este usuario. Por último, ponemos el nombre del usuario.
useradd -d /usr/local/share/ntop -M -s /bin/false ntop
Necesitamos un script de arranque para que el Ntop se ejecute con el arranque de la maquina. Cogí el fichero ntop que se generó para la versión 5 de Debian desde aquí. El fichero original lo descargué de esa página con el nombre [ntop_3.3.orig.tar.gz]. De este fichero extraigo el fichero que se instala en /etc/init.d y se llama ntop. Luego lo modifico un poco a mi gusto y añadimos el script /etc/init.d/ntop al arranque de la maquina.
update-rc ntop defaults
La salida del comando es la que sigue:
insserv: warning: script 'ntop' missing LSB tags and overrides
El error que arroja la consola, nos indica que el script no está preparado para el nuevo modelo de arranque de Debian (y otros). Ahora hay que especificar las dependencias del script añadiendo las lineas siguientes al script de arranque. Información sobre esto en debian-wiki.
### BEGIN INIT INFO
# Provides: Nombre del script de arranque.
# Required-Start: Servicios que tienen que estar arrancados antes que éste script.
# Required-Stop: Este script debe de terminar antes de que terminen estos Servicios.
# Should-Start: Servicios que deberían estar arrancados pero no indispensables.
# Should-Stop: Servicios que se tienen que parar tras parar este script.
# Default-Start: Por defecto iniciar en los runlevels...
# Default-Stop: Por defecto parar en los runlevels...
# Short-Description: Una descripción corta.
# Description: Una descripción larga.
#
### END INIT INFO
Definitivamente el script queda como se muestra.
#! /bin/sh
# ntop script
#
# NOTE: Copy this script in /etc/init.d/ntop
#
# Author:
# Paul Mansfield <paul.mansfield@uk.worldpay.com>
# Worldpay - 20020218
#
# Fixed by L.Deri - May 2007
#
# Modificado por Salvador Gonzalez para mi instalacion en Debian 6
### BEGIN INIT INFO
# Provides: ntop
# Required-Start: $local_fs $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ntop daemon
# Description: ntop daemon para monitorizar trafico.
#
### END INIT INFO
set -e
NAME=ntop
DAEMON=/usr/local/bin/ntop
NTOPPID=/var/run/ntop.pid
test -x $DAEMON || exit 0
start_ntop() {
echo -n "Starting ntop "
$DAEMON -u ntop > /var/log/ntop.out &
echo " ...done"
}
stop_ntop() {
echo -n "Stopping ntop "
if test -f $NTOPPID ; then
kill `cat $NTOPPID`
echo -n " killed pid `cat $NTOPPID`"
rm $NTOPPID
fi
echo " ...done"
}
case "$1" in
start)
start_ntop
;;
stop)
stop_ntop
;;
restart)
stop_ntop
start_ntop
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
exit 1
;;
esac
exit 0
Configuración de ntop para el primer arranque
Es necesario generar un usuario y clave para el Ntop. No confundir con el usuario que ejecuta el Ntop en nuestro sistema. Ejecutamos el ntop con el parametro -A para ponerle la clave al admin. Pero aparece el siguiente error:
ntop -A
ntop: error while loading shared libraries: libntopreport-4.1.0.so: cannot open shared object file: No such file or directory
Busco las librerías del ntop en el sistema y me las encuentro ubicadas en /usr/local/lib. Así que edito el fichero vi /etc/ld.so.conf y añado el texto include /usr/local/lib para indicarle al sistema ejecutado ldconfig que debe añadir las librerías de dicho directorio al sistema. Hay muchas maneras de hacer esto, pero esta es sencilla.
Arranque de ntop
/etc/init.d/ntop start
Verificamos que el ntop está arrancado buscando el puerto 3000 en modo escucha. Si atacamos este puerto por medio del navegador debemos ver la información de la aplicación.
ps aux | grep ntop
ntop 2882 0.3 2.9 222704 30008 pts/0 Sl 11:26 0:00 /usr/local/bin/ntop -u ntop
Aquí vemos que hay proceso ntop en memoria y levantado por el usuario ntop.
netstat -an | grep 3000
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN
Y aquí vemos que hay un proceso a la escucha en el puerto 3000. Si pedimos una lista de los servicios de la maquina en escucha vemos lo siguiente. (sólo una parte)
netstat -a
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:3000 *:* LISTEN
Aquí vemos que el sistema no sabe que escucha en el puerto 3000. Modificamos el fichero /etc/services e incluimos en su sitio (están ordenados por el número del servicio) la línea ntop 3000/tcp # ntop. De este modo el comando netstat -a da la siguiente salida que es más bonita e informativa.
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:ntop *:* LISTEN
Monitorización
Desde el navegador atacamos al servidor donde instalamos el ntop al puerto 3000. http://servidor:3000 y debemos ver algo como esto:
Retoques finales
El log del ntop se crea como /var/log/ntop.out. Lo comprobamos para ver si hay algún problema y así solucionarlo. En el log, la linea **ERROR** RRD: Disabled - unable to create base directory (err 13, /usr/local/var/ntop/rrd) nos indica que hay un error. Lo corregimos creando el directorio que necesita. También se observa que podemos mandar la salida del log y tratarla por medio del rsyslogd. NOTE: -L | --use-syslog=facility not specified, child processes will log to the default (24).
Hacemos que el log del ntop lo gestione el demonio rsyslog. Para conseguirlo he colocado la siguiente entrada en el fichero /etc/rsyslog.conf.
# Modificaciones para ntop
local5.* /var/log/ntop.log
:msg, contains, "ntop" /var/log/ntop.log
y le indiqué al script de arranque /etc/init.d/ntop que se ponga en modo demonio y la salida al syslog con la facility local5.
start_ntop() {
echo -n "Starting ntop "
$DAEMON -d -u ntop --use-syslog=local5 -L
echo " ...done"
}
Parece que sin la configuracion :msg, contains, "ntop" no funciona la salida al log de la aplicación.
Rotación de los logs
Para rotar el fichero /var/log/ntop.log creamos un fichero ntop en el directorio /etc/logrotate.d con el contenido que se muestra a continuación.
/var/log/ntop.log {
daily
missingok
rotate 3
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/etc/init.d/ntop restart > /dev/null
endscript
}
Comentarios
Publicar un comentario