Het netwerk controleren is een kritische IT functie voor iedereen. De reden om het netwerk door te lichten kan verschillen. Het kan deel uitmaken van een toekomstige visie op het netwerkgebruik, beveiliging, prestatieproblemen, netwerkgebruik, enz. Afhankelijk van het doel zijn er verschillende manieren om het netwerk te onderzoeken.
Hoewel er uitgebreide, gespecialiseerde systemen bestaan om een netwerk 24/7/365 in de gaten te houden, kan je in bepaalde situaties al veel te weten komen met behulp van enkele terminal opdrachten.
Deze categorie hulpmiddelen vangen individuele netwerkpakketten, ontleden de inhoud en geven de gedecodeerde inhoud of statistieken weer. Deze opdrachten controleren het netwerk op het laagste niveau en kunnen daardoor zeer gedetailleerde informatie weergeven
dany@laptop:~>sudo zypper install iptraf
root's password: Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... 'iptraf' is niet gevonden in de pakketnamen. Proberen in eigenschappen. Afhankelijkheden tussen pakketten oplossen... Het volgende NIEUWE pakket zal worden geïnstalleerd: iptraf-ng 1 nieuw te installeren pakket. Totale downloadgrootte: 76,6 KiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 180,3 KiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): Ophalen: iptraf-ng-1.1.4-11.2.x86_64.rpm ....................................................................................[gereed] Controleren op conflicten tussen bestanden: .................................................................................[gereed] (1/1) Installeert: iptraf-ng-1.1.4-11.2 .....................................................................................[gereed] dany@laptop:~>sudo /usr/sbin/iptraf
IPTraf toont netwerkstatistieken over pakketten, verbindingen, netwerkkaarten en real time protocol pakket/byte tellers.
De netwerkpakketten kunnen gefilterd worden op protocol.
Je bedient IPTraf via een eenvoudig menusysteem.
Ngrep levert de grep functie voor netwerkpakketten. Het vangt de netwerkpakketten en toont enkel degene die voldoen aan een reguliere of hexadecimale expressie. Dit is handig bij het opsporen en opslaan van abnormaal netwerkverkeer of bij het opsporen van specifieke informatiepatronen.
dany@laptop:~>sudo zypper install ngrep
Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... Afhankelijkheden tussen pakketten oplossen... Het volgende NIEUWE pakket zal worden geïnstalleerd: ngrep 1 nieuw te installeren pakket. Totale downloadgrootte: 26,1 KiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 49,5 KiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): pakket ngrep-1.45-8.2.x86_64 wordt opgehaald (1/1), 26,1 KiB ( 49,5 KiB uitgepakt) Ophalen: ngrep-1.45-8.2.x86_64.rpm ......................................[gereed] Controleren op conflicten tussen bestanden: .............................[gereed] (1/1) Installeert: ngrep-1.45-8.2 .......................................[gereed] dany@laptop:~>sudo ngrep port 22
interface: eth0 (192.168.1.0/255.255.255.0) filter: (ip) and ( port 22 ) # T 192.168.1.4:22 -> 192.168.1.3:45266 [AP] ...@mm3V.'..*L..{...*.SXZ....Ht..X6.+[.Sg.f...\..4/.......d.......P..xj..R.. X....... # T 192.168.1.4:22 -> 192.168.1.3:45266 [AP] ...0!k.)...?...qZ.l.Y......o&.i.v..X....jF..v..k.......r;......( 4.. # T 192.168.1.3:45266 -> 192.168.1.4:22 [A] .. # T 192.168.1.3:45266 -> 192.168.1.4:22 [A] y. # T 192.168.1.4:22 -> 192.168.1.3:45266 [AP] .......%.X......3.x..@.;d.O&/.'$\)}...$...8.G..H.b.6.'{. ..k......j.._.6D... 3u.L.t].\.\........$...be.. d.]...!....Zh.NnA.{o..$.....D.6....<...L...'n..4 .'...E.....*?/..|.k.Qj.2.[..8...t.a^..e....J.ak.N..r:...3-\..RU....,O5.g.3g6 .....R.uS.U.a... # T 192.168.1.4:22 -> 192.168.1.3:45266 [AP] .......<....W.D..D.@&&..........)-....|odr.......e.3.!p...wO..;..1?.....\D.t .`r.+.'...F..0.R.....I.....B.........k....;@-...}<...+..sY...g8.,..@..9..w*. |eO;.Q..y.-.....-?/.wg...^W..Z.J....i.Z....V..M. X`=.<.|v...MZ......Q...4... u..R........^...o...p....N|..A>.P.I+..0*Z.....h...e.(a.......}...r.;_2...9.. .yZ..g_M.N.e.{..F.H....hev...+".....U...v.r^..&..V..U...~.;...?.O. G.H.7.D(. .T.......Y....%26..f..q.P"..........@Rm...:..[..g......SV...gZ..7...M:....0. # T 192.168.1.3:45266 -> 192.168.1.4:22 [A] -l # T 192.168.1.3:45266 -> 192.168.1.4:22 [A] d. ^Cexit 19 received, 0 dropped
Tcpdump vangt netwerkpakketten en kan deze met behulp van expressies filteren, ontleden en opslaan voor verdere analyse. Tcpdump wordt veel gebruikt bij het opsporen van netwerkproblemen, het debuggen van netwerkprogramma's en beveiliging.
dany@laptop:~> sudo tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:13:22.284271 IP 192.168.1.4.ssh > 192.168.1.3.45266: Flags [P.], seq 369814126:369814322, ack 198136379, win 340, options [nop,nop,TS val 903542 ecr 2399436], length 196
15:13:22.284742 IP 192.168.1.3.45266 > 192.168.1.4.ssh: Flags [.], ack 196, win 22007, options [nop,nop,TS val 2399481 ecr 903542], length 0
15:13:23.267531 IP 192.168.1.4.47372 > 192.168.1.1.domain: 39121+ PTR? 3.1.168.192.in-addr.arpa. (42)
15:13:23.395936 IP 192.168.1.1.domain > 192.168.1.4.47372: 39121 NXDomain 0/1/0 (101)
15:13:23.396528 IP 192.168.1.4.52035 > 192.168.1.1.domain: 22131+ PTR? 4.1.168.192.in-addr.arpa. (42)
15:13:23.515410 IP 192.168.1.1.domain > 192.168.1.4.52035: 22131 NXDomain 0/1/0 (101)
15:13:23.515750 IP 192.168.1.4.ssh > 192.168.1.3.45266: Flags [P.], seq 196:552, ack 1, win 340, options [nop,nop,TS val 903850 ecr 2399481], length 356
15:13:23.516327 IP 192.168.1.3.45266 > 192.168.1.4.ssh: Flags [.], ack 552, win 22007, options [nop,nop,TS val 2399789 ecr 903850], length 0
15:13:24.267124 IP 192.168.1.4.39388 > 192.168.1.1.domain: 152+ PTR? 1.1.168.192.in-addr.arpa. (42)
15:13:24.380865 IP 192.168.1.1.domain > 192.168.1.4.39388: 152 NXDomain 0/1/0 (101)
15:13:24.381169 IP 192.168.1.4.ssh > 192.168.1.3.45266: Flags [P.], seq 552:1276, ack 1, win 340, options [nop,nop,TS val 904066 ecr 2399789], length 724
15:13:24.381731 IP 192.168.1.3.45266 > 192.168.1.4.ssh: Flags [.], ack 1276, win 22007, options [nop,nop,TS val 2400006 ecr 904066], length 0
^C
12 packets captured
16 packets received by filter
0 packets dropped by kernel
In deze categorie wordt netwerkverkeer ingedeeld naar invoer/uitvoer stromen, geassocieerde processen of hardware. Deze gegevens worden daarna verwerkt tot bruikbare statistieken.
Iftop is een bandbreedte monitor die de netwerkbelasting van verschillende netwerkverbindingen real time weergeeft. Het gebruikt een ncursed gebruikersomgeving en toont de netwerkbelasting van de verschillende verbindingen in een gesorteerde lijst. Handig om netwerkbelastende verbindingen op te sporen.
dany@laptop:~>sudo zypper install iftop
root's password: Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... Afhankelijkheden tussen pakketten oplossen... Het volgende NIEUWE pakket zal worden geïnstalleerd: iftop 1 nieuw te installeren pakket. Totale downloadgrootte: 46,2 KiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 95,2 KiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): pakket iftop-0.99.4-7.2.x86_64 wordt opgehaald (1/1), 46,2 KiB ( 95,2 KiB uitgepakt) Ophalen: iftop-0.99.4-7.2.x86_64.rpm ....................................[gereed] Controleren op conflicten tussen bestanden: .............................[gereed] (1/1) Installeert: iftop-0.99.4-7.2 .....................................[gereed] dany@laptop:~>sudo iftop
interface: eth0 IP address is: 192.168.1.4 MAC address is: 00:50:b6:6b:4f:28
Iperf meet de maximale netwerksnelheid tussen twee punten (computers). Dit wordt gebruikt om het effect van aanpassingen in het netwerk te meten. De netperf variant heeft meer mogelijkheden en toont betere statistieken.
Op de server computer start je iperf en zorg je dat de noodzakelijke poorten in de firewall geopend zijn.
dany@main:~> iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.4, port 50798
[ 5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 50799
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 106 MBytes 888 Mbits/sec
[ 5] 1.00-2.00 sec 110 MBytes 921 Mbits/sec
[ 5] 2.00-3.00 sec 110 MBytes 921 Mbits/sec
[ 5] 3.00-4.00 sec 110 MBytes 921 Mbits/sec
[ 5] 4.00-5.00 sec 110 MBytes 921 Mbits/sec
[ 5] 5.00-6.00 sec 110 MBytes 921 Mbits/sec
[ 5] 6.00-7.00 sec 110 MBytes 921 Mbits/sec
[ 5] 7.00-8.00 sec 110 MBytes 921 Mbits/sec
[ 5] 8.00-9.00 sec 110 MBytes 921 Mbits/sec
[ 5] 9.00-10.00 sec 110 MBytes 921 Mbits/sec
[ 5] 10.00-10.04 sec 3.97 MBytes 922 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.04 sec 1.07 GBytes 918 Mbits/sec 0 sender
[ 5] 0.00-10.04 sec 1.07 GBytes 918 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Bovenstaande resultaten verschijnen pas als je op de client computer de volgende iperf opdracht start:
dany@laptop:~>sudo zypper install iperf
Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... Afhankelijkheden tussen pakketten oplossen... De volgende 2 NIEUWE pakketten zullen worden geïnstalleerd: iperf libiperf0 2 nieuw te installeren pakketten. Totale downloadgrootte: 78,5 KiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 170,2 KiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): pakket libiperf0-3.0.11-3.2.x86_64 wordt opgehaald (1/2), 54,4 KiB (128,9 KiB uitgepakt) Ophalen: libiperf0-3.0.11-3.2.x86_64.rpm ................................[gereed] pakket iperf-3.0.11-3.2.x86_64 wordt opgehaald (2/2), 24,1 KiB ( 41,4 KiB uitgepakt) Ophalen: iperf-3.0.11-3.2.x86_64.rpm ....................................[gereed] Controleren op conflicten tussen bestanden: .............................[gereed] (1/2) Installeert: libiperf0-3.0.11-3.2 .................................[gereed] (2/2) Installeert: iperf-3.0.11-3.2 .....................................[gereed] dany@laptop:~>iperf3 -c 192.168.1.3
Connecting to host 192.168.1.3, port 5201 [ 4] local 192.168.1.4 port 50799 connected to 192.168.1.3 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 110 MBytes 923 Mbits/sec 0 129 KBytes [ 4] 1.00-2.00 sec 110 MBytes 921 Mbits/sec 0 129 KBytes [ 4] 2.00-3.00 sec 110 MBytes 921 Mbits/sec 0 137 KBytes [ 4] 3.00-4.00 sec 110 MBytes 921 Mbits/sec 0 153 KBytes [ 4] 4.00-5.00 sec 110 MBytes 922 Mbits/sec 0 161 KBytes [ 4] 5.00-6.00 sec 110 MBytes 921 Mbits/sec 0 170 KBytes [ 4] 6.00-7.00 sec 110 MBytes 921 Mbits/sec 0 170 KBytes [ 4] 7.00-8.00 sec 110 MBytes 922 Mbits/sec 0 170 KBytes [ 4] 8.00-9.00 sec 110 MBytes 922 Mbits/sec 0 263 KBytes [ 4] 9.00-10.00 sec 110 MBytes 920 Mbits/sec 0 263 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.07 GBytes 921 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 1.07 GBytes 921 Mbits/sec receiver iperf Done.
Netcat is een veelzijdig netwerk hulpmiddel die in staat is te lezen van, te schrijven naar en te luisteren naar TCP/UDP sockets. Handig samen met andere programma's of scripts voor netwerk overdrachten en het luisteren naar poorten. Wees geduldig bij het uitvoeren van de volgende opdracht, zeker als de geteste verbinding mislukt (failed).
dany@main:~> netcat -z -v 192.168.1.4 20-23
netcat: connect to 192.168.1.4 port 20 (tcp) failed: Connection timed out
Connection to 192.168.1.4 21 port [tcp/ftp] succeeded!
Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
netcat: connect to 192.168.1.4 port 23 (tcp) failed: Connection timed out
Nmap is een poort scanner en netwerk ontdekker. Het is gebaseerd op verschillende UDP/TCP scan technieken om openstaande poorten, actieve computers, besturingssystemen op het lokale netwerk op te sporen. Handig bij het opsporen van kwetsbaarheden of het opbouwen van een plattegrond van het netwerk.
dany@main:~>sudo zypper install nmap
root's password: Ophalen van metadata uit installatiebron 'home:X0F:HSF' .................[gereed] Cache van opslagruimte 'home:X0F:HSF' bouwen ............................[gereed] Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... Afhankelijkheden tussen pakketten oplossen... Het volgende NIEUWE pakket zal worden geïnstalleerd: nmap 1 nieuw te installeren pakket. Totale downloadgrootte: 3,6 MiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 16,7 MiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): pakket nmap-6.47-9.10.x86_64 wordt opgehaald (1/1), 3,6 MiB ( 16,7 MiB uitgepakt) Ophalen: nmap-6.47-9.10.x86_64.rpm ..........................[gereed (1,2 MiB/s)] Controleren op conflicten tussen bestanden: .............................[gereed] (1/1) Installeert: nmap-6.47-9.10 .......................................[gereed] dany@main:~>nmap --top-ports 10 192.168.1.4
Starting Nmap 6.47 ( http://nmap.org ) at 2016-03-12 16:41 CET Nmap scan report for 192.168.1.4 Host is up (0.00052s latency). PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp filtered telnet 25/tcp filtered smtp 80/tcp open http 110/tcp filtered pop3 139/tcp open netbios-ssn 443/tcp filtered https 445/tcp open microsoft-ds 3389/tcp filtered ms-wbt-server Nmap done: 1 IP address (1 host up) scanned in 2.57 seconds
Ping werkt met ICMP echo en de antwoord pakketten met een andere computer. Handig voor het meten van de Round-Trip-Time (RTT) vertraging en de onder de baan verloren geraakte pakketten. Eveneens geschikt om firewall regels van een systeem op afstand te testen.
dany@laptop:~>sudo zypper install noping
root's password: Gegevens van installatiebron laden... Lezen van geïnstalleerde pakketten... Afhankelijkheden tussen pakketten oplossen... De volgende 2 NIEUWE pakketten zullen worden geïnstalleerd: liboping0 noping 2 nieuw te installeren pakketten. Totale downloadgrootte: 45,9 KiB. Reeds in de cache: 0 B. Na de operatie zal aanvullend 88,5 KiB worden gebruikt. Doorgaan? [j/n/? alle opties tonen] (j): pakket liboping0-1.8.0-3.2.x86_64 wordt opgehaald (1/2), 28,2 KiB ( 57,8 KiB uitgepakt) Ophalen: liboping0-1.8.0-3.2.x86_64.rpm .................................[gereed] pakket noping-1.8.0-3.2.x86_64 wordt opgehaald (2/2), 17,7 KiB ( 30,8 KiB uitgepakt) Ophalen: noping-1.8.0-3.2.x86_64.rpm ....................................[gereed] Controleren op conflicten tussen bestanden: .............................[gereed] (1/2) Installeert: liboping0-1.8.0-3.2 ..................................[gereed] (2/2) Installeert: noping-1.8.0-3.2 .....................................[gereed] dany@laptop:~>sudo noping 192.168.1.3
--- 192.168.1.3 ping statistics --- 34 packets transmitted, 34 received, 0,00% packet loss, time 13,8ms RTT[ms]: min = 0, median = 0, p(95) = 0, max = 0