NOTA: Vegeu Packet Flow de mikrotik
Curs: | SeguretatXarxesInformàtiques, LinuxAdministracioAvancada, DissenyXarxesLinux |
Fitxers: | EinesMonitoritzacio.pdf (EinesMonitoritzacio.odp) |
Repositori SVN: | https://[email protected]/svn/iceupc/SeguretatXarxesInformàtiques |
Usuari: | anonymous |
Paraula de pas: | sense paraula de pas |
Autors: | Sergi Tur Badenas |
Per instal·lar ntop en un sistema Debian/Ubuntu:
$ sudo apt-get install ntop
La instal·lació crea un usuari específic del sistema (usuari ntop). Aquest és l'usuari que correrà l'aplicació ntop.
Un cop instal·lat és necessari que configurem ntop:
$ sudo dpkg-reconfigure ntop
Us preguntarà per les interfícies que voleu monitoritzar:
IMPORTANT: A la imatge hi ha un error. La llista ha d'estar separada per comes, per exemple: eth0, eth1, eth2
I per l'usuari que utilitzarà NTOP a l'executar-se:
El primer cop és necessari executar ntop per tal de que ens pregunti per la contrasenya de l'usuari admin.
$ ntop .................. dj 31 mai 2007 20:05:07 CEST THREADMGMT[t3028818832]: DNSAR(1): Started thread for DNS address resolution dj 31 mai 2007 20:05:07 CEST Calling plugin start functions (if any) dj 31 mai 2007 20:05:07 CEST SSL is present but https is disabled: use -W <https port> for enabling it dj 31 mai 2007 20:05:07 CEST INITWEB: Initializing web server ntop startup - waiting for user response! Please enter the password for the admin user: dj 31 mai 2007 20:05:07 CEST THREADMGMT[t3028818832]: DNSAR(1): Address resolution thread running [p14901]
Una altra opció és executar:
$ sudo -i # ntop --set-admin-password NOTE: --set-admin-password requested, no password. Did you forget the =? Sun Jun 24 19:26:16 2007 Initializing gdbm databases Sun Jun 24 19:26:16 2007 Now running as requested user '(null)' (0:0) Please enter the password for the admin user: Please enter the password again: Sun Jun 24 19:26:37 2007 Admin user password has been set # exit
On password és la contrasenya que volem per l'usuari admin. Ara ja podem executar/parar el servei ntop amb:
$ sudo /etc/init.d/ntop start
o
$ sudo /etc/init.d/ntop stop
Seguint els estàndards de Debian GNU/Linux (basat en el sistema d'scripts d'inicialització SystemV) l'script de control del dimoni bind és:
/etc/init.d/ntop
Les accions que podem fer amb el servei són {start|stop|restart|force-reload|reload}
Cada cop que fem un canvi a la configuració de ntop cal reiniciar el servei amb un restart o, millor encara, un reload del servei:
$ sudo /etc/init.d/apache2 reload
Tal com podem veure executant:
$ sudo updatedb $ locate ntop |grep rc /etc/rc5.d/S20ntop /etc/rc4.d/S20ntop /etc/rc3.d/S20ntop /etc/rc0.d/K20ntop /etc/rc1.d/K20ntop /etc/rc2.d/S20ntop /etc/rc6.d/K20ntop
Com podem veure al fitxer /etc/default/ntop:
$ cat /etc/default/ntop # This file will normally include the debconf template but you can disable # that and use this file only. . /var/lib/ntop/init.cfg #GETOPT=""
El fitxer que conté el paràmetre d'inicialització de ntop és /var/lib/ntop/init.cfg:
$ sudo cat /var/lib/ntop/init.cfg USER="ntop" INTERFACES="eth0,eth1,eth2,eth3,eth4,eth5,eth6,eth10,eth11,eth12"
Podeu trobar més informació a l'article Configuració de serveis en Linux
Per indicar quines interfícies volem monitoritzar hem de modificar el fitxer /var/lib/ntop/init.cfg:
$ sudo nano /var/lib/ntop/init.cfg USER="ntop" INTERFACES="eth0,eth1,eth2,eth3,eth4,eth5,eth6,eth10,eth11,eth12"
O tal i com es comenta a la instal·lació podem executar:
$ sudo dpkg-reconfigure ntop
Segons el manual el paràmetre -p (protocols) s'encarrega de determinar quins protocols controlarà ntop. Si no s'especifica una llista concreta només ens mostrarà la informació dels següents protocols per defecte:
FTP=ftp|ftp-data HTTP=http|www|https|3128 3128 is Squid, the HTTP cache DNS=name|domain Telnet=telnet|login NBios-IP=netbios-ns|netbios-dgm|netbios-ssn Mail=pop-2|pop-3|pop3|kpop|smtp|imap|imap2 DHCP-BOOTP=67-68 SNMP=snmp|snmp-trap NNTP=nntp NFS=mount|pcnfs|bwnfs|nfsd|nfsd-status X11=6000-6010 SSH=22
Peer-to-Peer Protocols ---------------------- Gnutella=6346|6347|6348 Kazaa=1214 WinMX=6699|7730 DirectConnect=0 Dummy port as this is a pure P2P protocol eDonkey=4661-4665
Instant Messenger ----------------- Messenger=1863|5000|5001|5190-5193
Ntop és una eina que no val la pena tenir en execució continuament (sobretot quan no la utilitzem), ja que si tenim força trànsit de xarxa farà un consume força important de recursos. Lo ideal és doncs executar ntop en moment donats quan anem a utilitzar l'eina per tal de monitoritzar la xarxa. Podeu fer que ntop no s'executi per defecte al arranca la màquina amb:
$ sudo update-rc.d -f ntop remove
Quan vulgueu podeu executar ntop amb:
$ sudo /etc/init.d/ntop restart
Vegeu també: GULP
Ntop utilitza el port 3000. Imagineu que el vostre servidor on s'està executant NTOP ésta darrera d'un router amb NAT i no podeu o no voleu obrir el port 3000 a l'exterior però si que voleu utilitzar ntop. Una opció és fer un Reverse Proxy i accedir a NTOP des de l'Apache.
Anem a veure els passos a seguir. En primer terme em de consultar si tenim els mòduls necessaris instal·lats i si estan actius.
Podem veure els mòduls instal·lats amb la comanda:
$ dpkg -l | grep apache2 | grep mod ii apache2-mpm-prefork 2.2.3-3.2ubuntu0.1 Traditional model for Apache HTTPD 2.1 rc libapache2-mod-php4 4.4.2-1.1 server-side, HTML-embedded scripting languag ii libapache2-mod-php5 5.2.1-0ubuntu1.4 server-side, HTML-embedded scripting languag ii libapache2-svn 1.4.3dfsg1-1ubuntu1 Subversion server modules for Apache
Podem buscar paquets de mòduls d'Apache2 amb la comanda:
$ sudo apt-cache search apache2 | grep mod ........... libapache2-mod-musicindex - Browse, stream, download and search through MP3/Ogg/FLAC files libapache2-mod-ngobjweb - Apache2 module for the SOPE application server libapache2-mod-proxy-html - Apache2 filter module for HTML links rewriting ..............
Per exemple el mòdul libapache2-mod-proxy-html podem veure que no esta instal·lat i el podem instal·lar executant:
$ sudo apt-get install libapache2-mod-proxy-html
NOTA: Alguns mòduls ja estan instal·lats per defecte amb la instal·lació base d'Apache 2 (com és el cas del mòdul Proxy)
Ara podem activar o comprovar si els mòduls de proxy estan activats amb la comanda a2enmod.
$ sudo a2enmod proxy $ sudo a2enmod proxy_http $ sudo a2enmod proxy_html $ sudo a2enmod headers
Són els mòduls que necessitarem per aquest exemple. Un cop activats cal recarregar Apache per aplicar els canvis
$ sudo /etc/init.d/apache2 force-reload
Més sobre mòduls a Mòduls Apache
Ara podem configurar el lloc web d'Apache que farà un Reverse Proxy d'NTOP. Creem i editem el fitxer
$ sudo nano /etc/apache2/sites-available/ntop
Afegim les següents línies:
ProxyRequests Off ProxyPass /ntop http://192.168.0.2:3000 ProxyPassReverse /ntop http://192.168.0.2:3000 SetOutputFilter proxy-html ProxyHTMLURLMap http://192.168.0.2:3000 /ntop ProxyHTMLURLMap / /ntop/ ProxyHTMLURLMap /ntop /ntop RequestHeader unset Accept-Encoding
Ara només cal tornar a iniciar Apache:
$ sudo /etc/init.d/apache2 force-reload
I podrem accedir a NTOP sense utilitzar el port 3000:
http://adreça_del_lloc_web_apache/ntop
Podeu obtenir més informació sobre Apache2 i Reverse Proxy a la secció Apache Proxy de l'article sobre Apache.
Tingueu en compte el que es comenta en el següent apartat si teniu problemes amb el Proxy.
Si obteniu un error amb el proxy que us indica que no teniu permisos és que teniu la configuració per defecte de denegar als clients utilitzar el vostre Apache com a Proxy.
L'error és detecta al fitxer de log d'errors d'Apache amb un missatge similar a:
$ sudo tail -f /var/log/apache2/error.log ......... [Sun Oct 21 21:34:11 2007] [error] [client 87.219.198.174] client denied by server configuration: proxy:http://192.168.1.2 ..... .....
Cal repasar que no hi hagi cap lloc on l'accés al Proxy estigui denegada a tots els clients. Normalment ho trobareu a la configuració per defecte del proxy:
$ sudo nano /etc/apache2/mods-enabled/proxy.conf <IfModule mod_proxy.c> #turning ProxyRequests on and allowing proxying from all may allow #spammers to use your proxy to send email. ProxyRequests Off <Proxy *> AddDefaultCharset off Order deny,allow #Deny from all Allow from all </Proxy> # Enable/disable the handling of HTTP/1.1 "Via:" headers. # ("Full" adds the server version; "Block" removes all outgoing Via: headers) # Set to one of: Off | On | Full | Block ProxyVia On </IfModule>
En aquest cas s'ha comentat la línia que impedia l'accés a tothom i s'ha afegit una línia per activar l'accés a tothom.Tal i com s'indica cal vigilar molt de no activar el Proxy per a tothom i amb la opció ProxyRequests en On.