Live netwerkdiagnose
Welke gebruiker legt op mijn internetlijn plat? Welke netwerkapparaten zijn er actief en hoeveel data verzenden ze? Dergelijke vragen kunnen nauwelijks beantwoord worden door een thuis- of bedrijfsrouter. Die kloof kan echter worden gedicht met de krachtige maar overzichtelijke monitoring-tool ntopng.
Als je een thuis- of bedrijfsnetwerk beheert en gedetailleerde informatie nodig hebt over het huidige dataverkeer, verspil dan geen tijd met het zoeken in de menu's van je router naar dergelijke bewakingsfuncties. De betere thuisrouters kunnen de huidige belasting in zend- en ontvangstrichting wel laten zien, maar niets meer. Zelfs de duurdere enterprise-firewalls loggen alleen welke apparaten ip-sessies hebben opgezet (voor bijvoorbeeld downloads of videoconferenties), en dat ook alleen als die afgesloten worden. In het beste geval kom je er dan achteraf achter dat er iets mis is gegaan.
Je kunt al het dataverkeer opnemen en dan analyseren met bijvoorbeeld Wireshark. Daarvoor voeg je een voorbereide pc aan je netwerk toe, zoals beschreven vanaf pagina 114, en laat je die de verzonden en ontvangen pakketten opnemen. Voor het aftappen kun je een mirror-poort van een managed switch gebruiken of een TAP (Terminal Access Point) die je in de kabelverbinding ertussen zet. Sommige thuisrouters kunnen ook ip-verkeer opnemen.
De locatie van het opnameapparaat is cruciaal: om het relevante dataverkeer te kunnen registreren, moet het zich bevinden tussen de bron en de bestemming van het te analyseren dataverkeer van de netwerkstations of subnetten. Je zet een TAP dan in de LAN-lijn naar de router als je het internetverkeer van bijvoorbeeld een slimme tv of webcam wilt analyseren. Als je de mirror-poort wilt gebruiken in plaats van een TAP, moeten de smart-tv en de webcam rechtstreeks op die switches worden aangesloten.
Elk van de opnamemethoden heeft echter beperkingen: onder zware belasting kunnen er pakketjes doorheen glippen of wordt de latentie te hoog. Incomplete opnamen maken het analyseren echter moeilijker of zelfs onmogelijk. Vanaf pagina 114 beschrijven we hoe je kosteneffectieve opnameapparaten kunt instellen en wat je daarvan kunt verwachten. Er liggen echter enkele valkuilen op de loer in het opnameen evaluatieproces. Vanaf pagina 118 krijg je daar hulp bij en worden ook scenario's in bedrijfsnetwerken besproken.
Als het in de praktijk mogelijk zou zijn, zouden veel systeembeheerders het dataverkeer het liefst het hele jaar door registreren, om bijvoorbeeld achteraf gedetecteerde inbraken te kunnen reconstrueren met behulp van historische gegevens. Dat werkt echter niet door de benodigde schijfruimte. In de praktijk moet je dan ook vaak genoegen nemen met het vastleggen van de metadata van het verkeer, zoals het bronadres, bestemmingsadres, de bron- en bestemmingspoort, het protocol en het overgedragen volume. Gespecialiseerde monitoring-tools lezen dergelijke gegevens direct uit de ip-pakketten en geven ze weer als een ‘NetFlow’ in grafische interfaces. Op die manier kan het actuele verkeer live worden geanalyseerd en kunnen de gegevens enkele dagen of weken opgeslagen worden.
VAN PI NAAR PC
Voor de zakelijke sector zijn er verschillende commerciële oplossingen zoals SolarWinds van het gelijknamige bedrijf of PRTG van Paessler. De opensource-tool ntopng bestrijkt daarnaast het entry-level bereik en kan ook bij kleine netwerken op goedkope hardware zoals een Raspberry Pi worden geïnstalleerd. In het kader van ons project c't-Raspion helpt ntopng bij het blootleggen van de clandestiene communicatie van webcams, smart-tv's en ontvangers (zie de vorige c’t). De tool ntopng is beschikbaar voor Linux, Windows en macOS.
In een thuisomgeving met slechts enkele netwerkapparaten kan c't-Raspion ook worden belast met het live analyseren van het netwerkverkeer. Als het echter gaat om het nauwkeurig registreren in bedrijfsnetwerken, raakt een Raspberry Pi overbelast. Bij zwaar belaste Gigabit-netwerken glippen er al pakketten door zijn vingers – en hij heeft ook geen NBaseT-interface voor 2,5, 5 of zelfs 10 Gigabit-ethernet. Daarom raden wij aan om ntopng voor live-analyse te installeren op een speciale pc. Die kan ook worden uitgerust met een 10GE-netwerkkaart.
We hebben een Dell PowerEdge R710 aangesloten op de mirror-poort van een zakelijke switch in een LAN met ongeveer 1000 hosts (twee cpu’s met 2,13 GHz, elk vier kernen, 24 GB RAM en 500 GB schijfcapaciteit op RAID5). Een beetje minder had waarschijnlijk ook gekund, want de server staat zich het grootste deel van de tijd te vervelen met een gemiddelde load-average van 2,5 en een RAM-belasting van nooit meer dan 1,2 GB. Voor zover wij weten is daar geen enkel pakket doorheen geglipt.
Voor alle gemonitorde hosts laat ntopng de uitgaande en binnenkomende ip-verbindingen in een overzichtelijke interface zien (Flows). Daardoor zie je in één oogopslag hoe veel en welk dataverkeer elk van je netwerkapparaten genereert. Wellicht vraag je je dan af welke vergeten apparaten de hele tijd zo druk in de weer zijn: staat er wellicht nog een accesspoint op het balkon of een weerstation achter in de tuin?
BANDBREEDTE-VRETERS EN ONVEILIGE TLS
Als je het dataverkeer opneemt, voegt de tool ook de MAC-adressen toe die zijn opgeslagen in de ethernetpakketten. Ook kunnen
er verschillende protocollen aan specifieke toepassingen worden toegewezen. Op die manier helpt ntopng je om bandbreedte-verslinders zoals YouTube en Netflix te identificeren.
Voor HTTPS-verbindingen rapporteert ntopng ook onveilige of verouderde TLS-methoden (ciphers) en waarschuwt voor fouten zoals ‘ TLS Certificate Mismatch’. Die fout treedt op wanneer een certificaat niet overeenkomt met het gevraagde domein. Dergelijke berichten vragen om een nadere blik. Het zouden pogingen kunnen zijn om valse certificaten bij medewerkers binnen te loodsen, om ze in een val te lokken.
De tool ntopng heeft toegang tot externe veiligheidslijsten zoals Cisco Talos Intelligence en de SSL Blacklist (SSLBL). Daarom waarschuwt de tool wanneer apparaten binnen je netwerk communiceren met bekende kwaadwillende hosts op internet. Verbindingen blokkeren kan ntopng echter niet – het is een puur passieve tool.
De software ntopng is gratis beschikbaar als community-versie. Sommige nuttige functies zitten alleen in de betaalde Professional- en Enterprise-versies. Specifiek voor c't-Raspion en het ARM-platform, bieden de ontwikkelaars gratis een één jaar geldige licentie voor de Pro-versie, die de verzamelde gegevens aan een eveneens op de Raspberry Pi geïnstalleerde MySQL-database doorstuurt voor archivering. De gratis versie heeft die feature niet.
ANALYZER-CONSTRUCTIE
Om ntopng het dataverkeer van je LAN te laten vastleggen, heb je een pc of een laptop nodig met ten minste twee netwerkpoorten en daarnaast een TAP of een mirror-poort op een switch (zie pagina 114 en 118).
Voor netwerken met weinig dataverkeer volstaat een oudere laptop met onboard-ethernet en een usb-adapter. Voor ntopng wijs je aan een van de poorten een in je netwerk geldig ip-adres toe, bij voorkeur een vast adres. De eenvoudigste manier om dat te doen is bij de DHCP-instellingen van je router door het MAC-adres van de netwerkkaart te koppelen aan een specifiek ipadres. Daar is de webinterface van ntopng dan mee te bereiken. Dat kan bij een laptop ook de wifi-interface zijn. Via de andere netwerkkaart(en) loopt dan het te analyseren dataverkeer.
INSTALLEREN VAN NTOPNG
De tool ntopng is beschikbaar voor verschillende besturingssystemen. We hebben hem op Ubuntu 18.04 LTS geïnstalleerd. Tips voor het installeren op andere besturingssystemen zijn te vinden bij de link op de laatste pagina van dit artikel. Op een Ubuntu of Debian gebaseerd systeem moet van tevoren het commando wget geïnstalleerd zijn en de ntopng-repository toegevoegd worden: sudo apt-get update sudo apt-get install software-properties-common wget sudo add-apt-repository universe wget http://apt-stable.ntop.org/18.04/
all/apt-ntop-stable.deb sudo apt-get install ./ apt-ntop-stable.deb sudo apt-get clean all sudo apt-get update sudo apt-get install ntopng ntopng-data
De LAN-interfaces waarover je het dataverkeer wilt opnemen, mogen geen ip-adressen hebben en moeten in de Promiscuous Mode draaien. Dan accepteren ze alle ip-pakketten en niet alleen de pakketten die rechtstreeks aan hen geadresseerd zijn. Die modus is in te stellen in het bestand /etc/network/interfaces. Een voorbeeld voor de interface enp4s0 ziet er als volgt uit: auto enp4s0 iface enp4s0 inet manual ip link set enp4s0 promisc on ip link set enp4s0 promisc down
Om IPv6 uit te schakelen, voeg je de volgende regel toe aan het bestand /etc/sysctl. conf (beheerderswachtwoord vereist): net.ipv6.conf.enp4s0.disable_ipv6=1
Start het systeem opnieuw op en bekijk de configuratie van de interfaces met het commando ip a. De opname-interfaces mogen geen IPv4- of IPv6-adressen hebben en de PROMISC-vlag moet gezet zijn.
Ntopng haalt de basisconfiguratie uit het bestand /etc/ntopng/ntopng.conf. Bij de link op de laatste pagina staat een voorbeeld om te downloaden. Zet dat bestand op de plaats van bestemming. Alle instellingen zijn voorzien van commentaar. Normaal gesproken kun je ze allemaal overnemen. Om toegang te krijgen tot ntopng, typ je in de browser het IP-adres van de computer waarop je de tool geïnstalleerd hebt, gevolgd door de geconfigureerde HTTP-poort (bijvoorbeeld http://192.168.178.123:3000). Log in met de gebruikersnaam ‘admin’ en het wachtwoord ‘admin’ en wijzig de toegangsgegevens.
TROUBLESHOOTING
Live-monitoring speelt altijd een rol als er ergens in het netwerk ‘sinds zojuist’ een probleem is. Als gebruikers klagen over een traag netwerk, moet je als verantwoordelijke beheerder snel weten of dat echt aan de orde is en zo ja, waarom. Het is niet ongewoon dat ‘het netwerk’ de schuld krijgt, ook al ligt het probleem elders, zoals bij een remote server of de client zelf.
Een onmiddellijke reactie kan nodig zijn, bijvoorbeeld tijdens grote evenementen wanneer een stabiele internettoegang vereist is, maar niet alle apparaten door jou beheerd worden. Het is niet eenvoudig om te onderscheiden of er een kwaadwillende op je netwerk zit of dat er alleen een grote
Dropbox-map gesynchroniseerd wordt. Maar ntopng zorgt gelukkig voor de benodigde gegevens.
Zo kun je snel zien of een enkele host het netwerk lamlegt of ‘gewoon’ alle gebruikers tezamen. In het eenvoudigste geval is het voldoende om de poort te mirroren waarmee de switch verbonden is met de router of de bedrijfsfirewall. Je kunt ook filteren op toepassingen en categorieën, zoals ‘ video’ en ‘cloud’. En tot slot kan een stoorzender ook schade veroorzaken binnen je netwerk, zelfs zonder toegang tot internet. Als je rechtstreeks op de centrale switch met ntopng luistert, kun je naast de ip-adressen ook de MAC-adressen van de netwerkapparaten achterhalen, zodat je de stoorzender tot aan de laatste switchpoort kunt traceren.
HOSTS & FLOWS
Ntopng beschouwt elk actief ip-adres als een aparte host. Een lijst van alle momenteel opgenomen adressen is te vinden via het menu ‘Hosts / Hosts’. Het overzicht toont de totale bandbreedte en de datavolumes van de individuele hosts, evenals het aantal huidige stromen. Sommige symbolen en vlaggen geven aan of een host lokaal of op afstand is en of de huidige waarschuwingen ernaar verwijzen.
Klik op Flows om het sessieoverzicht van de geselecteerde host te openen. Daar kun je de adressen van client en server en de huidige datasnelheid zien. In de kolom Info staat meer informatie, bijvoorbeeld afhankelijk van het type verbinding het domein van de opgeroepen HTTP-server en de ICMP-foutcode. Een tabblad in het bovenste gedeelte van het menu bevat verdere analyseresultaten. Je kunt taartdiagrammen bekijken van de applicaties die door een host worden gebruikt, HTTP-methoden zoals GET, POST, HEAD met de responscodes van de server, en JA3-vingerafdrukken van TLS-verbindingen. Dat laatste kan worden gebruikt voor verdere analyses van TLS-verbindingen op Threat-Intelligence-platforms.
TOEPASSINGEN
Ntopng probeert bij zowel de onversleutelde als de versleutelde protocollen de bijbehorende toepassing te vinden. Daarvoor evalueert het de ip-adressen van de bron en de bestemming, de domeinnamen en de HTTP-servernamen, en voor HTTPS de Server Name Indications. Het kijkt daarom diep in de packet-header, die ook onversleuteld is voor HTTPS-verbindingen. Voor die data zoekt ntopng naar matches in de eigen lokaal geïnstalleerde ip- en domeindatabases.