Analiza web prometa korištenjem Netflow alata
Sadržaj |
Traffic-Flow
Traffic-Flow općenito
Traffic-Flow je mogućnost usmjerivača koja služi za skupljanje mrežnog prometa na ulaznom ili izlaznom sučelju. Osim za nadzor mreže koristi se i za identifikaciju problema i optimizaciju cjelokupnih mrežnih performansi. Analizirajući podatke, administrator mreže može dobiti informacije kao što su izvor i odredište prometa, korištene protokole, količinu preuzetih podataka i mnoge druge. Mikrotik-ov Traffic-Flow je kompatibilan sa Netflow rješenjem iz vlasništva tvrtke Cisco, stoga ima podršku za sve opcije koje ono nudi. Detaljnije informacije moguće je pronaći u službenoj dokumentaciji.
Izvoz Traffic-Flow podataka s Mikrotik usmjerivača
Prilikom izrade ovog projekta korišten je usmjerivač Mikrotik RB951G-2HnD koji je konfiguriran na zadane (engl. default) postavke. Nakon spajanja u upravljačko sučelje pomoću winbox-a ili web sučelja, potrebno je iz izbornika odabrati karticu IP > Traffic Flow. Postavke podesiti kao na sljedećoj slici.
Zatim je potrebno podesiti na kojoj adresi se nalazi kolektor podataka. Pritisnite tipku Targets, zatim plavi plus za dodavanje novog unosa, te postavke podesite kao na sljedećoj slici. Napomena: postavite IP adresu Vašeg računala na kojem će se nalaziti kolektor podataka i port preko kojeg će komunicirati. Netflow Analyzer koristi port 9996.
Potvrdite unos pritiskom na tipku Apply, te OK. Zatvorite Traffic Flow Targets prozor, te u prozoru Trafic Flow Settings pritisnite tipku Apply. Sada možete provjeriti dali se Traffic-Flow podaci zaista šalju pritiskom na karticu Status. Nakon par trenutaka trebali bi vidjeti vrijednosti u Active i Finished Flows kako inkrementalno rastu.
Napomena: potrebno je u vatrozid (engl. firewall) dodati pravilo koje odobrava korištenje porta 9996 u protivnom aplikacija za analizu neće dobivati podatke.
Konfiguracija Traffic-Flow postavki koristeći CLI
TL;DR - Nakon pokretanja terminala unesite sljedeće naredbe:
ip traffic-flow < pritisni enter > ip traffic-flow> set enabled=yes interface=all < pritisni enter > ip traffic-flow> target < pritisni enter > ip traffic-flow target> add address=x.x.x.x:9996 disabled=no version=9 < pritisni enter >
Napomena: Izmijeniti IP adresu na flow collector, dodati port u firewall.
Nadzor mrežnog prometa
Nadzor mrežnog prometa sastoji se od tri glavne komponente:
- izvoznik protoka (engl. flow exporter)
- kolektor protoka (engl. flow colletctor)
- aplikacija za analizu (engl. analysis application)
Traffic-Flow je samo izvoznik protoka koji skuplja pakete, od njih stvara tokove podataka i šalje ih prema jednom ili više kolektora protoka. Kolektori skupljaju podatke, pohranjuju ih te vrše početnu obradu podataka. Na kraju procesa je aplikacija koja je zadužena za analiziranje i prikazivanje podataka. Ponekad aplikacija može sadržavati i kolektor protoka što pojednostavljuje početnu konfiguraciju. Taj slučaj ćemo vidjeti na primjeru u nastavku gdje je korišten Netflow Analyzer.
Netflow Analyzer - Windows 10
Netflow Analyzer općenito
Netflow Analyzer je aplikacija za analizu mrežnog prometa. Koristi Traffic-Flow tehnologiju za snabdijevanje podacima te prikaz mrežne propusnosti u stvarnom vremenu. Osmišljeno je kao unificirano rješenje koje sakuplja, analizira i prikazuje za što se mrežni promet koristi i tko ga koristi.
Instalacija i konfiguracija Netflow Analyzer programa
Potrebno je preuzeti i instalirati besplatnu verziju ManageEngine-ovog alata s njihove službene web stranice. Ponuđena Vam je trial verzija koja traje 30 dana ili besplatna koja prati samo 2 sučelja.
Tijekom instalacije nije potrebno mijenjati zadane vrijednosti. Nakon instalacije potrebno je pokrenuti aplikaciju pomoću kratice na radnoj površini ili navigiranjem na http://localhost:8080 . Ulogirajte se s korisničkim imenom: admin i lozinkom:admin. Ako Traffic-Flow nije prethodno podešen prikazat će se sljedeća poruka.
Ako je Traffic-flow dobro podešen nakon par trenutaka možemo osvježiti stranicu i trebali bi dobiti: grafičke prikaze najkorištenijih aplikacija, protokola, konverzacija i QoS (engl. Quality of Service), te mnoge druge opcije na raspolaganju.
Ntopng - Ubuntu 15.10
Ntopng općenito
Ntopng je novija verzija programa ntop, koji služi za analizu Gbit mrežnog prometa. Sastoji se od sljedečih programa neophodnih za rad (engl. dependancies):
- nBox - mrežno sučelje za prikaz podataka
- PF_RING - sakupljanje mrežnih paketa
- n2disk - snimanje mrežnog prometa na disk
- nProbe - sonda za distribuiranje po mreži koja šalje informacije o prometu (Netflow) centralnoj jednici na analizu (ntopng)
Napomena: Za snimanje prometa na vlastitom interface-u, ntopng je dovoljan. Ukoliko želite snimati WAN mrežu neophodan vam je nProbe koji nije besplatan i potrebno je kupiti licencu za normalno funkconiranje. U beplatnom izdanju limitira se snimanje paketa na 20K i zatim prestaje raditi.
Instalacija ntopng programa
Korišena konfiguracija:
- VM Oracle VirtualBox
- OS Ubuntu 15.10 Wily Werewolf Desktop
- Intel(R) Core(TM) i5-4210H CPU @ 2.90GHz
- 4GB RAM 20TB HDD
Najlakši način za instalaciju prema službenoj dokumentaciji je sljedeći:
wget http://www.nmon.net/apt-stable/12.04/all/apt-ntop.deb sudo dpkg -i apt-ntop.deb
Zatim update package list
apt-get clean all apt-get update sudo apt-get install ntopng pfring nprobe ntopng-data n2disk nbox
Ukoliko nedostaju neki od dependancie-a pokrenite
sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server libxml2-dev libnl-3-dev libhiredis0.10
Ako Vam još uvijek nešto nedostaje (kao što je meni nedostajalo) napravite sljedeće. U protivnom preskočite ovaj korak i nastavite sa pokretanjem ntopng programa.
Recimo da nedostaje libhiredis0.10 potražite ga na ovom linku.
Pronađite source od tog dependancie-a.
deb http://us.archive.ubuntu.com/ubuntu precise main universe
Te ga kopirajte i pospremite u sources.list
sudo nano /etc/apt/sources.list
Sada osvježite apt-get i pokušajte ponovo sve instalirati
sudo apt-get update sudo apt-get install libhiredis0.10 sudo apt-get install ntopng pfring nprobe ntopng-data n2disk nbox
Pokretanje programa
Sa naredbom ip addr, ifconfig ili ntopng -h pogledajte slobodne interface-e. Možemo postaviti i opciju any.
Sada ćemo testirati dali ntop radi.
sudo ntopng -i any -w 12345
U browseru idite na adresu localhost:12345 i ulogirajte se sa podacima username i password = admin. Kasnije ako želite u postavkama promijenite password.
Kroz par trenutaka trebali bi vidjeti podatke koji pristižu te grafove koji se automatski ažuriraju.
Konfiguracija ntopng programa
Recimo da je IPv4 vašeg servera 192.168.1.55. Prvo pokrenite ntopng:
ntopng -i tcp://127.0.0.1:5556 -d /var/tmp/ntopng -w 3000 -v >> /dev/null &
Zatim nProbe kolektor:
nprobe --collector-port 6343 --zmq tcp://127.0.0.1:5556 >> /dev/null &
Sada pokrenite traffic flow na vašem ruteru, podesite željeni interface i podesite kao target ip adresu vašeg servera i port 6343.
Idite na 192.168.1.55:3000 , ulogirajte se i podaci bi se trebali početi prikazivati.
Opcionalno
Ukoliko ne želite kod svakog pokretanja ponovo konfigurirati programe, možemo editirati njihove konfiguracijeske datoteke, npr.
sudo nano /etc/ntopng/ntopng.conf
# /etc/ntopng/ntopng.conf # # The configuration file is similar to the command line, with the exception that an equal # sign '=' must be used between key and value. Example: -i=p1p2 or --interface=p1p2 For # options with no value (e.g. -v) the equal is also necessary. Example: "-v=" must be used. # # # -G|--pid-path # Specifies the path where the PID (process ID) is saved. # -G=/var/tmp/ntopng.pid # # -e|--daemon # This parameter causes ntop to become a daemon, i.e. a task which runs in the background # without connection to a specific terminal. To use ntop other than as a casual monitoring # tool, you probably will want to use this option. # -e= # # -i|--interface # Specifies the network interface or collector endpoint to be used by ntopng for network # monitoring. On Unix you can specify both the interface name (e.g. lo) or the numeric # interface id as shown by ntopng -h. On Windows you must use the interface number instead. # Note that you can specify -i multiple times in order to instruct ntopng to create multi‐ # ple interfaces. # -i= # # -w|--http-port # Sets the HTTP port of the embedded web server. # -w=3000 # # -m|--local-networks # ntopng determines the ip addresses and netmasks for each active interface. Any traffic on # those networks is considered local. This parameter allows the user to define additional # networks and subnetworks whose traffic is also considered local in ntopng reports. All # other hosts are considered remote. If not specified the default is set to 192.168.1.0/24. # # Commas separate multiple network values. Both netmask and CIDR notation may be used, # even mixed together, for instance "131.114.21.0/24,10.0.0.0/255.0.0.0". # -m=192.168.1.0/24 # # -n|--dns-mode # Sets the DNS address resolution mode: 0 - Decode DNS responses and resolve only local # (-m) numeric IPs 1 - Decode DNS responses and resolve all numeric IPs 2 - Decode DNS # responses and don't resolve numeric IPs 3 - Don't decode DNS responses and don't resolve # -n=1 # # -S|--sticky-hosts # ntopng periodically purges idle hosts. With this option you can modify this behaviour by # telling ntopng not to purge the hosts specified by -S. This parameter requires an argu‐ # ment that can be "all" (Keep all hosts in memory), "local" (Keep only local hosts), # "remote" (Keep only remote hosts), "none" (Flush hosts when idle). # -S= # # -d|--data-dir # Specifies the data directory (it must be writable). Default directory is ./data # -d=/var/tmp/ntopng # # -q|--disable-autologout # Disable web interface logout for inactivity. # -q= -v=
Kreirajte ntopng.start:
sudo nano /etc/ntopng/ntopng.start
Dodajte sljedeće:
--local-networks "192.168.0.0/24" ## give your local IP Ranges here. --interface 1
Pokrenite ntopng:
sudo service ntopng start
Ntopng nam daje odličan uvid u mrežno stanje. Prava je šteta što nije putpuno open source. Alternativa za korištenje može biti starija verzija - ntop ili neki drugi program kao npr. nfsen.
--Marko Plaftarić 21:32, 24. siječnja 2016. (CET)