Fouten maken mag! Zo kun je in een veilige omgeving je netwerk testen
Als je een nieuw netwerk wilt inrichten of je huidige netwerk wilt optimaliseren, kunnen de vereiste configuraties je misschien wat afschrikken. Gelukkig kun je zo’n taak ook softwarematig simuleren, zodat je de nodige kennis en ervaring in een veilige omgeving kunt opdoen.
In dit artikel laten we zien hoe je met Filius een nieuw netwerk kunt opzetten of je huidige netwerk kunt aanpassen, zonder dat een klein foutje je netwerk naar de knoppen helpt. We beschrijven de volgende stappen:
- Zet je netwerk op in de simulatietool
- Test de verbinding
- Creëer een subnetmasker en gateway
- Voeg een DHCP-server toe
- Voeg overige servers als een DNS- en mailserver toe
- Stel firewall-regels in
Ook interessant: Is je systeem goed beveiligd? Ontdek het met deze hack-tools
In dit artikel gaan we dieper in op netwerken, maar vermijden we fysieke apparatuur. We maken daarvoor graag gebruik van Filius, een gratis opensource-tool voor netwerksimulaties. Met Filius kun je experimenteren en snel ontdekken waarom iets wel of niet werkt. Deze tool is ook geschikt voor beginners en is populair bij docenten in het hoger voortgezet onderwijs voor hun technologie- en IT-lessen.
In het kader ‘Virtuele netwerken’ (aan het einde) bespreken we kort nog een andere aanpak met behulp van VirtualBox, waarmee je diverse netwerkconfiguraties voor virtuele machines kunt opzetten.
1 Configuratie
In het kader ‘Simulatietools’ noemen we enkele alternatieve tools voor netwerksimulatie, maar we blijven in de rest van deze masterclass bij Filius omdat het qua moeilijkheidsgraad mooi in het midden zit: niet te eenvoudig en niet te complex.
Download de software via deze pagina, het is beschikbaar voor zowel Windows als Linux. De website is in het Duits en dat geldt ook voor de installatie van het programma, maar deze is (onder Windows) gelukkig niet moeilijker dan klikken op Weiter, Annehmen, Installieren en Fertig stellen. Je kunt nu Filius starten en bij de eerste keer stel je de gewenste interfacetaal in: Deutsch, English of Français. Wij kiezen voor English.
Als je per ongeluk de verkeerde taal hebt ingesteld, open dan het configuratiebestand filius.ini in de standaardmap \Program Files\Filius\config met Kladblok en verwijder het #-teken naast de gewenste taal, bijvoorbeeld # locale=en_GB. Er zijn hier trouwens nog andere instellingen die je kunt activeren door het #-teken te verwijderen.
2 Werkmodi
Het is raadzaam om vertrouwd te raken met de Filius-omgeving voordat je je netwerk gaat opbouwen. Er zijn namelijk drie modi waarin je kunt werken: de ontwerpmodus (hamericoon; om je netwerk op te zetten), de simulatiemodus (pijlicoon; om je netwerksimulatie te testen) en de documentatiemodus (potloodicoon; om tekst- en structuurvelden naar je netwerksimulatie te verslepen, hier doen we in dit artikel niets mee).
Logischerwijs begin je vanuit de ontwerpmodus, omdat er momenteel nog niets te simuleren of te bewerken valt. In het linkermenu vind je enkele typische netwerkcomponenten: Connection (netwerkkabel), Computer (server), Notebook (client), Switch, Router (en een Home Router met beperkte opties) en Modem.
Onze opzet voor dit artikel is als volgt: we gaan twee netwerken (subnetten) aan een router koppelen en ervoor zorgen dat ze elkaar kunnen bereiken, zodat we bijvoorbeeld een eigen DNS-server, webserver, mailserver en (p2p-)bestandsserver kunnen benaderen. Zo leer je geleidelijk aan de belangrijkste mogelijkheden van Filius kennen.
3 Basisnetwerk
Laten we beginnen met het opzetten van een eenvoudig netwerk. Sleep een Switch, twee Notebooks en een Computer naar het ontwerpscherm. Plaats de switch bij voorkeur in het midden. Selecteer elk van deze vier componenten en geef ze vanuit het onderste deelvenster een passende naam, zoals Client 1, Client 2, Server en Switch. Geef de drie computers ook elk een ander ip-adres, bijvoorbeeld 192.168.0.1, 192.168.0.2 en 192.168.0.3, allemaal met hetzelfde subnetmasker 255.255.255.0. We kunnen hier helaas niet dieper ingaan op de betekenis en structuur van een subnetmasker, maar hier vind je meer informatie.
Verbind vervolgens elke computer met de switch: klik op Connection in het linkermenu en klik daarna op de twee apparaten die je wilt verbinden, bijvoorbeeld de computer en de switch. Druk op Esc als je hiermee klaar bent.
4 Verbinding testen
Laten we eerst ons basisnetwerk testen voordat we dit gaan uitbreiden. Klik dus op de knop met de groene pijl om naar de simulatiemodus te gaan. Voordat er iets te beleven valt, moet je eerst een netwerktoepassing toevoegen. Dubbelklik bijvoorbeeld op Client 1, zodat de desktopomgeving zichtbaar wordt. Klik hier op Software installation, selecteer in het rechterdeelvenster Command Line en klik op de knop met de pijl naar links om dit onderdeel toe te voegen. Doe hetzelfde voor Generic client en bevestig met Apply changes.
Dubbelklik nu op Command Line in het desktopvenster en voer ping 192.168.0.2 of ping 192.168.0.3 uit. Als alles goed is, ontvang je een reactie van beide doelcomputers. Je kunt dit netwerkverkeer trouwens ook op een andere manier bekijken. Klik met de rechtermuisknop op bijvoorbeeld Client 1 en kies Show data exchange. Je zult merken dat vooralsnog al het netwerkverkeer beperkt is tot de netwerk- of internetlaag (in het zogeheten OSI- en TCP/IP-model) en dat de eerste twee pakketten afkomstig zijn van het ARP-protocol (Address Resolution Protocol), om het fysieke MAC-adres van de doelcomputer te vinden. De overige datapakketten komen van het ICMP-protocol, dat standaard wordt gebruikt door ping. Klik op een datapakket voor meer details in het onderste deelvenster.
5 Tekstberichten
Een eenvoudig ping-commando is natuurlijk niet erg spectaculair. Laten we daarom een paar tekstberichten versturen. Hiervoor installeren we eerst het softwarepakket Echo server op onze server. In de vorige paragraaf heb je geleerd hoe je dat doet. Open vervolgens deze applicatie, laat de poortinstelling gerust op 55555 staan en klik op Start zodat de server luistert naar binnenkomende pakketten.
We laten deze pakketten van Client 1 komen. Dubbelklik hiervoor op de geïnstalleerde Generic Client en vul het ip-adres van je server in (192.168.0.3). Bevestig met Connect, typ een tekstbericht in bij Message en verstuur dit met Send. Als je nu het dataverkeervenster opent, zie je het bericht verschijnen en zie je dat voor zo’n netwerktoepassing ook de OSI-lagen Transport (via het TCP-protocol) en Application worden aangesproken.
Simulatietools Filius is natuurlijk niet de enige simulatietool voor netwerkomgevingen. Zo kun je ook in Educational Network Simulator een netwerk samenstellen met pc’s, servers, switches en routers, vanuit een wat gedateerde webinterface.
Is het je vooral te doen om kennis op te doen rond netwerkveiligheid, dan kun CS4G Netsim proberen, maar het aantal scenario’s is hier beperkt.
Als je op zoek bent naar een veel krachtigere oplossing waarin je zowel virtuele als echte apparaten kunt opnemen, dan is GNS3 (Graphical Network Simulator-3) een interessante optie. Deze gratis opensource-tool is beschikbaar voor Windows, macOS en Linux. Je kunt ervoor kiezen om ook de GNS3-VM te installeren, een virtuele machine die meer protocollen en netwerkapparaten ondersteunt.
Een ander interessant alternatief is EVE-NG. De tool ondersteunt nog meer netwerkapparaten van verschillende bekende producenten. EVE-NG werkt met een gebruiksvriendelijke webinterface en de simulaties zijn zeer realistisch. Let wel op dat alleen de Community Edition van EVE-NG gratis is en dat deze enkele beperkingen heeft.
6 Subnetten
Laten we ons netwerk wat complexer maken. Als je wilt, kun je nu je huidige netwerkopstelling opslaan door op het diskette-icoon te klikken in de ontwerpmodus. Laat je huidige netwerkcomponenten ongewijzigd en voeg aan de rechterkant een extra switch en twee notebooks toe. Plaats een router tussen beide netwerken (we negeren de vereenvoudigde Home Router) en ken deze meteen twee NIC’s (Network Interface Cards) toe.
Verbind de nieuwe notebooks en de router met de extra switch. Verbind ten slotte ook de router met je eerste switch. Grafisch ziet dit er misschien goed uit, maar praktisch gezien kun je met dit netwerk nauwelijks iets doen. Je moet namelijk nog enkele configuraties binnen dit tweede netwerk (subnet) uitvoeren. Geef de nieuwe notebooks alvast een ander ip-adres, bijvoorbeeld 192.168.1.1 en 192.168.1.2. Laat de subnetmaskers ook hier op 255.255.255.0 staan.
Selecteer nu de router. Op de tabbladen in het onderste deelvenster zie je hetzelfde ip-adres staan voor beide NIC’s. Dit is natuurlijk niet correct. Klik op het eerste tabblad. Als de netwerkkabel tussen je router en de switch van je tweede netwerk groen kleurt, geef dan deze netwerkinterface het ip-adres 192.168.1.10. Voor de andere netwerkinterface, die verbonden is met de switch van het eerste netwerk, vul je 192.168.0.10 in.
7 Gateway
Wanneer je nu probeert te pingen tussen een computer uit beide netwerken, krijg je helaas alleen de foutmelding Destination not reachable. Dit is logisch, omdat er nog een gateway ontbreekt in beide netwerken. Deze configuratie doe je op het niveau van je computers.
Open een computer in je eerste netwerk (aan de linkerzijde) en vul bij Gateway het ip-adres van de bijbehorende router-netwerkinterface in (192.168.0.10). Doe dit ook voor de andere twee computers in dat netwerk. Voor de computers in je tweede netwerk (aan de rechterzijde) vul je als Gateway het ip-adres 192.168.1.10 in. Nu zou je vanuit beide netwerken ook de computers uit het andere netwerk moeten kunnen bereiken, zoals met het ping-commando of via een generic client.
We hebben wel gemerkt dat het virtuele netwerk na wijzigingen soms kuren kan vertonen. Sla in dat geval je configuratie op en herstart Filius. Als dat niet helpt, verwijder dan het betreffende softwarepakket van het betreffende apparaat, voeg het opnieuw toe en configureer het opnieuw (meestal duurt dit nog geen minuut).
8 DHCP-server
Zodra je een wat groter netwerk uitbouwt, wordt het omslachtig als je alle apparaten handmatig een ip-adres moet geven. Dan kun je beter een DHCP-server inzetten (in elk van beide netwerken als je dit verkiest). DHCP staat voor Dynamic Host Configuration Protocol en dit wijst automatisch ip-adressen toe aan netwerkapparaten.
Ga naar het eigenschappenvenster van zo’n server en klik rechtsonder op DHCP server setup. Geef het DHCP-adresbereik op, bijvoorbeeld van 192.168.0.1 achter Lower bound of address tot 192.168.0.20 achter Upper bound of address. Plaats een vinkje bij Activate DHCP en bevestig met OK.
Merk op dat je op het tabblad Static Address Assignment specifieke apparaten op basis van hun MAC-adres een vast ip-adres kunt toewijzen (bij voorkeur buiten het ingestelde DHCP-bereik). Dit is vooral nuttig voor apparaten zoals servers, die je altijd via hetzelfde ip-adres wilt kunnen benaderen.
Over nu naar de apparaten die je van deze DHCP-service gebruik wilt laten maken. In het eigenschappenvenster van elk apparaat plaats je een vinkje bij Use DHCP for configuration. Om het toegekende ip-adres van een apparaat te achterhalen, klik je er met rechts op, of je start een commandline-sessie op en voert het commando ipconfig uit.
9 Webserver
In Filius kun je ook een basale webserver activeren en deze voeden met (eigen) webpagina’s. Gebruik hiervoor eventueel een al bestaande server in je netwerk en voeg het softwarepakket Webserver eraan toe. Open dit pakket en klik op Start.
Om de webserver te testen, installeer je het pakket Webbrowser op een willekeurige computer. Open dit en vul achter http:// het ip-adres van je webserver in (bijvoorbeeld http://192.168.0.3) en druk op de knop Start. Als alles goed is, verschijnt nu de standaard startpagina van Filius.
Natuurlijk wil je liever je eigen pagina zien. Installeer hiervoor het pakket Text editor op je webserver en open deze applicatie. Klik op Open en open de map webserver. Dubbelklik op het bestand index.html en open dit. Nu krijg je de achterliggende html-code te zien, zodat je deze kunt aanpassen. Je kunt ook je eigen webpagina’s maken en deze via Save as in afzonderlijke html-bestanden opslaan.
Zodra je je eigen webpagina hebt gemaakt, kun je deze bekijken met de ingebouwde webbrowser door iets als http://192.168.0.3/mijnpagina.html in te tikken.
10 DNS-server
Het zou wel handiger zijn om een domeinnaam zoals www.mijnsite.nl te gebruiken in plaats van telkens het ip-adres van de webserver te moeten intikken.
Hiervoor moet je een DNS-server (Domain Name System) opzetten. Voeg een server toe in een afzonderlijk subnet en geef deze bijvoorbeeld het ip-adres 192.168.2.1 met als Gateway 192.168.2.10. Maak deze gateway door in het eigenschappenvenster van je router naar het tabblad General te gaan en op Manage connections te klikken. Druk op de plusknop voor een extra verbinding en klik op Close. Open het toegevoegde tabblad en wijzig IP Address in 192.168.2.10. Verbind nu je DNS-server met de nieuwe verbinding op je router door een kabelverbinding te maken.
Open nu elke computer en vul bij Domain Name Server het ip-adres van je DNS-server in. Let op, bij apparaten die via DHCP worden bediend, lukt dit wellicht niet. In dit geval vul je het ip-adres van je DNS-server in bij de DHCP-server zelf.
Voeg nu het softwarepakket DNS server toe aan je DNS-server. Open dit en vul bij Host/domain name bijvoorbeeld www.mijnsite.nl in en bij IP address het adres van je webserver (bijvoorbeeld 192.168.0.3). Bevestig met Add en activeer de DNS-service met de knop Start.
Nu zou je vanaf je webbrowser je webserver moeten kunnen bereiken met het adres www.mijnsite.nl/mijnpagina.html.
11 Mailserver
Als laatste voegen we het softwarepakket Email server toe aan onze server. Open het pakket en vul bij Mail domain bijvoorbeeld mijnsite.nl in. Bij New account geef je een User en een Password op. Bevestig dit met de knop New account en met OK, zodat het aan de Account list wordt toegevoegd. Start de service met de gelijknamige knop Start.
Je moet de mailserver natuurlijk nog kenbaar maken bij je DNS-server. Open hier het pakket DNS server, ga naar het tabblad Mail exchange (MX), vul bij Mail domain bijvoorbeeld mijnsite.nl in en bij Mail server domain name de waarde www.mijnsite.nl. Bevestig met Add, stop de DNS-server en druk daarna weer op Start om de wijzigingen te laten doorzetten.
Selecteer vervolgens een willekeurige client en voeg het softwarepakket Email program toe. Open dit en klik op Account voor een nieuw e-mailaccount. Vul de gevraagde gegevens in. Als Email address kun je <naam>@mijnsite.nl gebruiken, bij POP3 server en bij SMTP server vul je www.mijnsite.nl in. De poorten laat je ongewijzigd. Vul bij User en Password dezelfde gegevens in als zojuist bij Email server. Bevestig met Save. Via de knop New email kun je nu een testbericht naar jezelf sturen. Uiteraard kun je nog andere e-mailaccounts maken en berichten naar elkaar versturen, op andere computers met Email program.
12 Firewall
Om je netwerk te beveiligen, stel je firewallregels in. Zo kun je het Firewall-softwarepakket op een of meer computers in Filius installeren, maar weet dat de mogelijkheden hier beperkt zijn. Je werkt daarom beter op routerniveau.
Ga naar het eigenschappenvenster van je router en open Firewall settings. Op het tabblad Network interfaces kun je Filter ICMP packets inschakelen, zodat ping-verzoeken niet meer doorkomen, maar wij zijn meer geïnteresseerd in het tabblad Firewall Rules. Een voorzichtige benadering is accept instellen als Default action if no rule matches. Hierdoor wordt alle verkeer dat niet door zelf gedefinieerde regels wordt onderschept, standaard toegelaten.
Laten we als test een regel aanmaken om te voorkomen dat een specifieke client kan surfen. Klik op add new rule, vul het ip-adres van de client in bij Source IP, gebruik 255.255.255.255 als Netmask, selecteer TCP als Protocol en stel Port in op 80 (voor http-verkeer). Stel Action in op drop. Vergeet niet Activate firewall in te schakelen op het tabblad Network Interfaces.
Test je nieuwe regel grondig om te controleren of de gewenste beperkingen worden toegepast. Stel je meerdere firewallregels in, weet dan dat deze in chronologische volgorde, van boven naar beneden, worden afgehandeld.
13 Routers en netwerken
Filius biedt ook mogelijkheden voor complexere netwerksimulaties. Je kunt bijvoorbeeld meerdere routers inzetten voor verschillende netwerken en Automatic routing inschakelen om het routeerprotocol de kortste weg binnen je netwerk te laten vinden. Maar het kan ook leerzaam zijn om handmatige routering in te schakelen op het tabblad Forwarding table. Je kunt dan het dataverkeer volgen via een Generic Client en een Echo server.
Een andere interessante optie is om het gesimuleerde netwerk van Filius te koppelen aan je fysieke netwerk. Om dit te testen, installeer je Filius op twee computers binnen je thuisnetwerk. Maak op elk van beide een netwerk met een client (bijvoorbeeld 192.168.0.1 en 192.168.0.2) en een modem. Bij het ene modem plaats je een vinkje bij Wait for incoming connection request en bevestig je met Activate. Op de bijbehorende client installeer je een Echo server en start je deze. Op het tweede modem vul je het fysieke ip-adres van je eerste computer in en druk je op Connect. Voeg vervolgens aan je client een Generic Client toe. Nu kun je berichten van de ene client naar de andere sturen via je fysieke netwerkverbinding. Zorg er wel voor dat bijvoorbeeld je Windows-firewall dit verkeer niet blokkeert.
Virtuele netwerken Netwerksimulaties met Filius zijn leerzaam en ook handig voor het voorbereiden van een fysiek netwerk. Maar als je een netwerk wilt opzetten met echte besturingssystemen, is het beter om een hypervisor zoals het gratis VirtualBox te gebruiken. Met VirtualBox kun je verschillende soorten virtuele netwerken opzetten, afhankelijk van je behoeften.
Het standaardtype is NAT, waarbij je bijna niets hoeft in te stellen. Het is ook een veilige constructie aangezien virtuele machines elkaar niet kunnen benaderen en externe apparaten de virtuele machines niet kunnen bereiken (tenzij je poortdoorverwijzing gebruikt). In een NAT-netwerk daarentegen kunnen virtuele machines onderling wel communiceren en hebben ze ook toegang tot het externe netwerk.
Naast een NAT-netwerk zijn er ook andere netwerkscenario’s mogelijk, zoals Intern netwerk, Bridged adapter en Host-only adapter.