Wireshark (voorheen Ethereal) is een FOSS (free and open-source software) voor netwerkprotocolanalyse. Je kunt het gebruiken om netwerkproblemen op te lossen en communicatieprotocollen zoals TCP, DNS, HTTP enz. te analyseren. Er zijn veel functies waardoor Wireshark zich onderscheidt van veel van zijn tegenhangers:
Wireshark is beschikbaar in de standaard softwarebronnen van Debian Bookworm en installeer je als volgt:
Na het starten van Wireshark zie je een lijst met apparaten waarvan je pakketten kunt vastleggen.
Selecteer een apparaat om te beginnen met het vastleggen van pakketten door te dubbelklikken op de naam ervan.
Laten we in ons geval de interface wlp4s0
selecteren.
Oeps, dit gaat fout, blijkbaar hebben we onvoldoende rechten om alle netwerkpakketten op het apparaat te registreren. Sluit dit dialoogvenster en sluit Wireshark af. Start een terminalvenster (Konsole).
Het Wireshark installatiepakket bevat een script waarmee je jouw systeem kunt configureren voor Wireshark. Dit voeren we uit met de opdracht:
dany@pindabook:~$ sudo dpkg-reconfigure wireshark-common
[sudo] wachtwoord voor dany:
Druk na het lezen van de tekst op Enter.
Beantwoord de vraag Moet het voor niet-systeembeheerders mogelijk zijn om pakketjes te onderscheppen?
met <Ja>
door met de Tab-toets de knop <Ja>
te selecteren en te bevestigen met Enter.
Daarna zorgen we dat de gebruiker (hier dany
) wordt toegevoegd aan de groep Wireshark
waardoor deze gebruiker de rechten krijgt om Wireshark volop te gebruiken.
dany@pindabook:~$ sudo usermod -a -G wireshark dany
Log uit en terug in of herstart de computer.
Start Wireshark terug op en dubbelklik op een netwerkverbinding die je wilt bekijken. Zoals je kunt zien na het selecteren van het apparaat, beginnen er pakketten op het scherm te verschijnen.
In de promiscuous modus zal Wireshark ook pakketten tonen die niet aan onze netwerkinterface zijn geadresseerd. Om te controleren of deze modus actief is, moet je het registreren van pakketten stoppen door op de rode werkbalkknop te klikken. Start via het menu Capture de opdracht Options en activeer indien nodig het selectievakje Enable promiscuous mode on all interfaces (onderin het venster).
Als je je opnames later wilt inspecteren, kun je ze gewoon opslaan door op File > Save te klikken. Op dezelfde manier kun je capturebestanden downloaden en openen om ze te inspecteren door te klikken op File > Open. Zoek jouw bestand en open het.
Wireshark gebruikt verschillende kleurenschema's om verschillende soorten netwerkverkeer aan te duiden. Lichtblauwe kleuren worden bijvoorbeeld gebruikt voor UDP, paars voor TCP en zwart voor pakketten met fouten. Om de betekenis te zien en deze kleuren aan te passen ga je naar View > Coloring Rules....
Wireshark heeft een filterfunctie om netwerkverkeer uit te filteren dat specifiek voor jou van belang is.
De eenvoudigste manier om deze functie te gebruiken is door gebruik te maken van de zoekbalk aan het begin van de pakketlijst of de tabel met het netwerkverkeersoverzicht.
Als je bijvoorbeeld het TCP
verkeer wilt filteren, voer dan TCP
in in de zoekbalk.
We zullen dit proces later in deze tip verder bekijken.
Wireshark bevat ook standaardfilters in de sectie Analyze > Display Filters.... Je kunt er hier één kiezen en je kunt hier ook jouw eigen filters opslaan voor de toekomst.
Naast het filteren van het verkeer, kun je ook volledige TCP conversaties tussen de client en de server bekijken. Klik hiervoor met de rechtermuisknop op een pakket en klik op de optie Follow > TCP Stream. Wanneer je dit venster sluit, verschijnt er automatisch een filter in de filterzoekbalk.
Klik in de tabel met het netwerkverkeersoverzicht op een pakket om de verschillende details te zien. Hier is een andere manier om een aangepast filter te maken. Wanneer je met de rechtermuisknop klikt op een detail, zie je de optie Apply as Filter en het bijbehorende submenu. Selecteer een submenu om die filter te maken:
Laten we nu een praktisch voorbeeld nemen om verkeer op een netwerkinterface vast te leggen en te inspecteren met behulp van Wireshark.
In ons geval hebben we Wireshark geïnstalleerd op Debian Bookworm en werken we met de WiFi interface wlp4s0
.
Voer nu de volgende stappen uit:
linux.pindanet.be
.
Zodra de pagina geladen is, stop je de capture door op het rode icoon naast de startknop te drukken.ipv6.dst == 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f && tcpVervang het IP-adres
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
door het IP-adres van jouw systeem.Als je Wireshark niet kunt gebruiken voor een realtime netwerkverbinding, kun je ook een gedownload pakkettracebestand gebruiken.
Eerst gaan we terug de rechten voor Wireshark intrekken.
We beginnen met de gebruiker (hier dany
) te verwijderen uit de groep wireshark:
dany@pindabook:~$ sudo gpasswd -d dany wireshark
[sudo] wachtwoord voor dany:
Gebruiker dany wordt verwijderd uit groep wireshark
Daarna gebruikern we het wireshark configuratiescript om de extra wireshark rechten terug te verwijderen:
dany@pindabook:~$ sudo dpkg-reconfigure wireshark-common
En deze keer beantwoorden we de vraag Moet het voor niet-systeembeheerders mogelijk zijn om pakketjes te onderscheppen?
met de knop <Nee>
.
Nu we toch in de terminal werken, verwijderen we Wireshark van de computer met de opdracht:
dany@pindabook:~$ sudo apt purge wireshark
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende pakketten zullen VERWIJDERD worden:
wireshark*
0 opgewaardeerd, 0 nieuw geïnstalleerd, 1 te verwijderen en 0 niet opgewaardeerd.
Na deze bewerking zal er 36,9 kB schijfruimte vrijkomen.
Wilt u doorgaan? [J/n]
(Database wordt ingelezen ... 174303 bestanden en mappen momenteel geïnstalleerd.)
wireshark (4.0.6-1~deb12u1) wordt verwijderd ...
Om ook de niet meer gebruikte afhankelijke pakketten te verwijderen, voer je de volgende opdracht uit:
dany@pindabook:~$ sudo apt autoremove
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Dit ging vlug.
Wireshark gebruikt een werkmap voor de gebruiker die je kunt verwijderen met de opdracht:
dany@pindabook:~$ rm -r .config/wireshark