Netwerken 3
00
Hoofdstuk 13

Netwerkontwerp & examen-synthese

Open examenvragen: een netwerk ontwerpen met geldige IP-adressen, firewall, proxy, DNS en webserver, en technieken uit de hele cursus kunnen citeren.

0%
voltooid

1Zones: internet, DMZ en intern

Een eenvoudige firewall met de server in je LAN is gevaarlijk: wie de server hackt, bereikt het hele netwerk. Daarom deel je het netwerk op in zones met verschillend vertrouwen. De firewall (router + filter) staat op de grens en bepaalt welke zone naar welke mag.

Let op de drie zones en dat enkel de firewall ertussen zit: internet bereikt de DMZ, nooit rechtstreeks het interne netwerk.
Let op de drie zones en dat enkel de firewall ertussen zit: internet bereikt de DMZ, nooit rechtstreeks het interne netwerk.
ZoneWat staat erAdressenVertrouwen
Internet (extern, WAN)rest van de wereldpubliekgeen
DMZ (= Red LAN in de cursus)servers die van buiten bereikbaar moeten zijn: webserver, extern DNS, mail, (forward) proxypubliek, of privé + port forwardinglaag: kan gehackt worden
Intern (= Blue LAN in de cursus)clients, bestanden, interne DNS/DHCP, databasesprivé (10/8, 172.16/12, 192.168/16)hoog
Red LAN en Blue LAN (klassiek, 2 routers)
  • Router 1 (buiten) - Red LAN - Router 2 (binnen) - Blue LAN
  • Servers staan op de Red LAN; ook al wordt een server gehackt, de interne Blue LAN blijft achter een 2e filter
  • Dubbele bescherming
  • Red LAN: trager (WAN-kant), Blue LAN: snel (LAN)
  • Nadeel: extra router. Alternatief: three-interface firewall (= 2 routers in 1 toestel)
Wat dit betekent voor je tekening
  • Teken drie netwerken, elk met eigen subnet
  • Firewall met drie interfaces (of 2 routers) tussen internet - DMZ - intern
  • Servers in de DMZ, clients intern
  • Pijlen voor de flows: wie mag naar wie
+25 XP

2Stappenplan: een netwerk ontwerpen

Ontwerpmethode (volg dit op het examen)
Stap 1 van 8
1. Diensten en flows opsommen

Welke elementen? (clients, webserver, mailserver, proxy, DNS, firewall). Wie moet naar wie? Internet naar webserver (80/443), intern naar internet (web via proxy), internet naar extern DNS (53).

DienstPlaatsWaarom
WebserverDMZmoet van buiten bereikbaar zijn; als hij gehackt wordt blijft intern veilig
Extern DNS (authoritative)DMZbeantwoordt het internet over de publieke namen (www, mail); kent geen interne namen
Mailserver (SMTP in)DMZontvangt post van buiten (25); medewerkers lezen intern via de mailserver
Proxy (forward)DMZ (of op de firewall)clients gaan enkel via de proxy naar het web: cache, ACL's, logging; internet ziet enkel de proxy
Reverse proxy / HTTP acceleratorDMZ, vóór de webserver(s)cachet statische pagina's, filtert, verbergt de echte servers
Interne DNS / DHCPinterninterne namen; DHCP deelt IP + gateway + DNS uit
Clientsinternprivé-adressen, NAT/proxy naar buiten
+25 XP

3Intern versus extern DNS

Externe DNS (DMZ)
  • Staat in de DMZ met een publiek bereikbaar adres
  • Beantwoordt vragen van het internet over je domein (www, mail)
  • Bevat enkel publieke records; geen interne namen/IP's
  • UDP 53 voor opzoekingen, TCP 53 enkel voor zone transfers (secundaire nameserver)
Interne DNS (intern)
  • Staat in het interne netwerk, privé-adres
  • Beantwoordt vragen van de interne clients
  • Kent interne namen (fileserver, printer) en stuurt al de rest door naar een externe nameserver (forwarder)
  • Enkel de interne DNS moet naar buiten mogen, niet elke client
  • Gebruik je een traditionele proxy, dan hoeft DNS niet intern te draaien: de proxy lost de naam voor de client op.
  • Bij een transparante proxy of NAPT hebben clients wel een DNS nodig (op de proxy/firewall of intern).
  • In de firewall: UDP 53 naar de nameserver toelaten; TCP 53 enkel van de secundaire nameserver (zone transfer).
+25 XP

4Ontwerp A: three-leg firewall (VyOS) met proxy, web en extern DNS

Opgave: teken een netwerkontwerp met geldige IP-adressen met proxy server, webserver, firewall en externe DNS. ISP geeft het publieke blok 203.0.113.0/29 (gateway ISP = .1). (203.0.113.0/24 is een documentatierange; in de cursus gebruikt men 200.2.2.0/24. Op het examen kies je gewoon een geldig publiek blok.)

text
            INTERNET
               |
     ISP-router 203.0.113.1            publiek blok 203.0.113.0/29
               |                       (.1 ISP, .2 firewall, .3 web, .4 DNS)
         eth0  203.0.113.2/29
      +------------------------+
      |   FIREWALL (VyOS)      |
      |   NAT + stateful       |
      +------------------------+
   eth1 10.0.1.1/24         eth2 192.168.10.1/24
        |                         |
   DMZ  switch              INTERN switch
        |                         |
   +----+--------+----------+     +--- clients 192.168.10.100-.200 (DHCP)
   |             |          |     +--- (gw 192.168.10.1, proxy 10.0.1.20:8080)
 Web          Ext. DNS    Proxy
 10.0.1.10    10.0.1.11   10.0.1.20
 (publiek     (publiek
  .3)          .4)
Topologie
ApparaatIP / maskGatewayOpmerking
ISP-router203.0.113.1/29
default route naar internet
Firewall eth0 (buiten)203.0.113.2/29203.0.113.1publiek; NAT-adres voor uitgaand verkeer. Krijgt ook .3 en .4 als extra (alias-)adressen, zodat DNAT erop kan werken
Firewall eth1 (DMZ)10.0.1.1/24
gateway van de DMZ
Firewall eth2 (intern)192.168.10.1/24
gateway van intern
Webserver10.0.1.10/2410.0.1.1bereikbaar op publiek 203.0.113.3 (port forwarding 80/443)
Extern DNS10.0.1.11/2410.0.1.1bereikbaar op publiek 203.0.113.4 (UDP/TCP 53); www.bedrijf.be = 203.0.113.3
Proxy10.0.1.20/2410.0.1.1poort 8080, ACL's, cache; naar buiten via masquerade (203.0.113.2)
Clients192.168.10.100-200/24 (DHCP)192.168.10.1browser: proxy 10.0.1.20:8080; DNS niet nodig (proxy lost op)
Elke subnet apart: 203.0.113.0/29, 10.0.1.0/24, 192.168.10.0/24. Geen overlap.
Flows (benoem ze op je tekening)
Stap 1 van 4
1. Internet naar webserver

Bezoeker vraagt www.bedrijf.be. Extern DNS (203.0.113.4) antwoordt 203.0.113.3. Browser verbindt naar 203.0.113.3:80/443. Firewall doet DNAT naar 10.0.1.10 en laat het door (NEW toegelaten).

bash
echo 1 > /proc/sys/net/ipv4/ip_forward          # router aanzetten

# 1. Default policy: alles weigeren
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  ACCEPT

# 2. Terugkerend verkeer en gerelateerd verkeer (stateful)
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# 3. Anti-spoofing: privé/loopback-bronadressen van buiten weigeren
iptables -A FORWARD -i eth0 -s 10.0.0.0/8     -j DROP
iptables -A FORWARD -i eth0 -s 172.16.0.0/12  -j DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -i eth0 -s 127.0.0.0/8    -j DROP

# 4. Port forwarding: publiek -> DMZ-servers (DNAT voor het filteren)
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.3 -p tcp --dport 80  -j DNAT --to 10.0.1.10
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.3 -p tcp --dport 443 -j DNAT --to 10.0.1.10
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.4 -p udp --dport 53  -j DNAT --to 10.0.1.11
iptables -t nat -A PREROUTING -i eth0 -d 203.0.113.4 -p tcp --dport 53  -j DNAT --to 10.0.1.11

# 5. Internet -> DMZ: enkel web en DNS (na DNAT is het doel het DMZ-adres)
iptables -A FORWARD -i eth0 -o eth1 -d 10.0.1.10 -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -d 10.0.1.11 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -d 10.0.1.11 -p tcp --dport 53 -m state --state NEW -j ACCEPT

# 6. Intern -> proxy (enkel 8080)
iptables -A FORWARD -i eth2 -o eth1 -s 192.168.10.0/24 -d 10.0.1.20 -p tcp --dport 8080 -m state --state NEW -j ACCEPT

# 7. Proxy -> internet (web + DNS-opzoekingen)
iptables -A FORWARD -i eth1 -o eth0 -s 10.0.1.20 -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 10.0.1.20 -p udp --dport 53 -m state --state NEW -j ACCEPT

# 8. NAPT: DMZ-proxy gaat naar buiten met het publieke IP van de firewall
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 9. DMZ -> intern: expliciet blokkeren en loggen
iptables -A FORWARD -i eth1 -o eth2 -j LOG --log-prefix "DMZ-naar-intern "
iptables -A FORWARD -i eth1 -o eth2 -j DROP
Firewallregels met iptables op de firewall (eth0 = buiten, eth1 = DMZ, eth2 = intern)
text
configure
set interfaces ethernet eth0 address 203.0.113.2/29
set interfaces ethernet eth1 address 10.0.1.1/24
set interfaces ethernet eth2 address 192.168.10.1/24
set protocols static route 0.0.0.0/0 next-hop 203.0.113.1 distance '1'

# NAPT (uitgaand) en port forwarding (inkomend)
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 10.0.0.0/8
set nat source rule 100 translation address masquerade
set nat destination rule 10 inbound-interface eth0
set nat destination rule 10 destination address 203.0.113.3
set nat destination rule 10 protocol tcp
set nat destination rule 10 destination port 80,443
set nat destination rule 10 translation address 10.0.1.10

# Internet -> DMZ: enkel web, plus terugkerend verkeer
set firewall name OUTSIDE-IN default-action drop
set firewall name OUTSIDE-IN rule 10 action accept
set firewall name OUTSIDE-IN rule 10 state established enable
set firewall name OUTSIDE-IN rule 10 state related enable
set firewall name OUTSIDE-IN rule 20 action accept
set firewall name OUTSIDE-IN rule 20 protocol tcp
set firewall name OUTSIDE-IN rule 20 destination address 10.0.1.10
set firewall name OUTSIDE-IN rule 20 destination port 80,443
set interfaces ethernet eth0 firewall in name OUTSIDE-IN

# Intern -> enkel proxy 8080
set firewall name INTERN-IN default-action drop
set firewall name INTERN-IN rule 10 action accept
set firewall name INTERN-IN rule 10 state established enable
set firewall name INTERN-IN rule 20 action accept
set firewall name INTERN-IN rule 20 protocol tcp
set firewall name INTERN-IN rule 20 destination address 10.0.1.20
set firewall name INTERN-IN rule 20 destination port 8080
set interfaces ethernet eth2 firewall in name INTERN-IN

# DMZ -> internet: enkel proxy op 80/443, rest drop (dus ook niets naar intern)
set firewall name DMZ-IN default-action drop
set firewall name DMZ-IN rule 10 action accept
set firewall name DMZ-IN rule 10 state established enable
set firewall name DMZ-IN rule 10 state related enable
set firewall name DMZ-IN rule 20 action accept
set firewall name DMZ-IN rule 20 protocol tcp
set firewall name DMZ-IN rule 20 source address 10.0.1.20
set firewall name DMZ-IN rule 20 destination port 80,443
set interfaces ethernet eth1 firewall in name DMZ-IN
commit
save
Zelfde ontwerp in VyOS (basisconfig; syntax verschilt licht per versie)
+25 XP

5Ontwerp B en C: klassiek Red/Blue LAN en klein kantoor

Ontwerp B = het cursusmodel met twee Cisco-routers: publiek Red LAN met servers, privé Blue LAN met clients. ISP geeft het punt-tot-punt-netwerk 198.51.100.0/30 en het publieke blok 203.0.113.16/28.

text
Internet - ISP 198.51.100.1
                |   198.51.100.0/30
          R1 s0/0 198.51.100.2
          R1 fa0/0 203.0.113.17/28   (Red LAN = 203.0.113.16/28, hosts .17-.30)
                |
   +------------+----------+-----------+----------------+
 Web           Ext. DNS    Proxy        R2 fa0/0 203.0.113.30/28
 203.0.113.18  .19         .20                 |
                                       R2 fa0/1 192.168.20.1/24   (Blue LAN)
                                               |
                          Interne DNS 192.168.20.2     Clients 192.168.20.50-.200
Topologie ontwerp B
ApparaatIP / maskGateway
Webserver203.0.113.18/28203.0.113.17
Extern DNS203.0.113.19/28203.0.113.17
Proxy (poort 8080)203.0.113.20/28203.0.113.17
R1 (buitenrouter)s0/0 198.51.100.2/30, fa0/0 203.0.113.17/28default via 198.51.100.1
R2 (binnenrouter, NAT)fa0/0 203.0.113.30/28, fa0/1 192.168.20.1/24default via 203.0.113.17
Interne DNS192.168.20.2/24192.168.20.1 (forward naar externe DNS)
Clients192.168.20.50-.200/24192.168.20.1
cisco
interface Serial0/0
 ip address 198.51.100.2 255.255.255.252
 ip access-group 110 in
interface FastEthernet0/0
 ip address 203.0.113.17 255.255.255.240
!
ip route 0.0.0.0 0.0.0.0 198.51.100.1
! Als R2 GEEN NAT zou doen: ip route 192.168.20.0 255.255.255.0 203.0.113.30
!
! anti-spoofing: privé-bronadressen van buiten weigeren
access-list 110 deny ip 10.0.0.0 0.255.255.255 any
access-list 110 deny ip 172.16.0.0 0.15.255.255 any
access-list 110 deny ip 192.168.0.0 0.0.255.255 any
! internet -> web en DNS
access-list 110 permit tcp any host 203.0.113.18 eq 80
access-list 110 permit tcp any host 203.0.113.18 eq 443
access-list 110 permit udp any host 203.0.113.19 eq 53
! antwoorden op onze eigen aanvragen (proxy, DNS-forwarding)
access-list 110 permit tcp any any established
access-list 110 permit udp any eq 53 any gt 1023
access-list 110 permit icmp any any echo-reply
access-list 110 deny ip any any log
R1: buitenrouter met ACL (stateloos: terugverkeer moet expliciet toegelaten)
cisco
interface FastEthernet0/0
 ip address 203.0.113.30 255.255.255.240
 ip nat outside
 ip access-group 120 in
interface FastEthernet0/1
 ip address 192.168.20.1 255.255.255.0
 ip nat inside
 ip access-group 121 in
!
ip route 0.0.0.0 0.0.0.0 203.0.113.17
access-list 1 permit 192.168.20.0 0.0.0.255
ip nat inside source list 1 interface FastEthernet0/0 overload
!
! red -> blue: enkel terugverkeer
access-list 120 permit tcp any any established
access-list 120 permit udp any eq 53 any gt 1023
access-list 120 deny ip any any log
! blue -> red: clients enkel naar de proxy, enkel de interne DNS naar buiten
access-list 121 permit tcp 192.168.20.0 0.0.0.255 host 203.0.113.20 eq 8080
access-list 121 permit udp host 192.168.20.2 any eq 53
access-list 121 deny ip any any log
R2: binnenrouter met NAPT en ACL voor het Blue LAN

Ontwerp C = klein kantoor of thuis: één Linux-machine (router + firewall + transparante proxy) tussen ADSL-modem en LAN. Eén publiek IP (DHCP van de ISP), intern 192.168.1.0/24.

bash
echo 1 > /proc/sys/net/ipv4/ip_forward

# Transparante proxy: poort 80 van het LAN omleiden naar de proxy (Squid) op 8080
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

# NAPT naar buiten
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Port forwarding naar de interne webserver
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.10:80

# Firewall
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -d 192.168.1.10 -p tcp --dport 80 -j ACCEPT
Ontwerp C: eth0 = naar ISP (DHCP), eth1 = LAN 192.168.1.1/24; interne webserver 192.168.1.10
Ontwerp B (Red/Blue, 2 routers)
  • Twee filters: dubbele bescherming
  • Servers publiek geadresseerd op de Red LAN
  • Stateloze Cisco-ACL's: terugverkeer expliciet toelaten
  • Past bij grotere organisaties
Ontwerp C (1 machine)
  • Goedkoop, 1 publiek IP, alles in 1 toestel
  • Webserver intern met port forwarding = geen DMZ: bij een hack staat het LAN open
  • Transparante proxy: clients merken niets
  • Past bij thuis/klein kantoor; verbeter door een DMZ toe te voegen
+25 XP

6Veelgemaakte fouten en een ontwerp verbeteren

FoutGevolgOplossing
Webserver in het interne LAN met port forwardingwie de server hackt zit in het LANserver in een DMZ
Alles in één subnet (flat network)geen scheiding, firewall onmogelijkaparte subnetten per zone
Privé-adressen op het internet, of publieke adressen intern zonder redenniet routeerbaar / verspillingprivé intern + NAT; publiek enkel waar nodig
Overlappende subnetten of verkeerde gateway (buiten het subnet)geen verbindingsubnetten uitschrijven, gateway in eigen subnet
Default policy ACCEPTalles wat je vergeet is opendefault DROP, expliciet toelaten
Geen regel voor terugverkeerverbindingen werken nietESTABLISHED/RELATED (stateful) of expliciete terugregels in stateloze ACL's
Proxy bereikbaar vanaf internetopen proxy: misbruikproxy enkel toegankelijk vanuit het LAN
DMZ mag naar interneen gehackte server is een springplankDMZ naar intern: drop
Alle clients kennen een externe DNSfirewall moet poorten > 1023 UDP openzetteninterne DNS als forwarder (of via proxy)
Geen anti-spoofingIP spoofing: pakketten van buiten met interne bronprivé- en loopback-bronadressen van buiten droppen
Interne namen in de externe DNSinfolek over het interne netwerkextern: enkel publieke records
+25 XP

7Toolbox: technieken uit de hele cursus voor open vragen

Open vragen vragen om technieken + uitleg hoe ze werken. Kies 2-3 relevante, noem de naam en leg in één zin de werking en het effect uit.

DoelTechniekHoe / waarom
WiFi snellerMIMO (n, ac, ax), MU-MIMOmeerdere antennes/streams parallel (n: 4, ac: 8); MU = meerdere clients tegelijk
OFDM / OFDMAkanaal in veel orthogonale subcarriers; OFDMA wijst subcarriers aan meerdere gebruikers tegelijk toe (WiFi 6: minder botsingen, ~300% netwerkverbetering)
Hogere QAM256-QAM (ac), 4096-QAM (WiFi 7): meer bits per symbool, vraagt wel sterk signaal
Bredere kanalen / channel bonding20 MHz kanalen bundelen tot 40/80/160/320 MHz
Extra banden5 GHz (ac), 6 GHz (6E), MLO (WiFi 7: 2,4 + 5 + 6 GHz tegelijk)
Beamformingsignaal gericht naar de client in plaats van breed uitzenden: beter bereik, minder interferentie
Mobiel (3G/4G/5G)CDMA spreading + Rake receiverspreidcodes scheiden gebruikers; Rake combineert multipath-signalen
Power controlzenders passen vermogen aan zodat niemand de rest overstemt (UMTS)
HARQfoute pakketten worden bewaard en gecombineerd met hertransmissies (incremental redundancy)
Beamforming / massive MIMO5G: veel kleine antennes, gerichte bundels voor hoge frequenties
Soft/softer/hard handoverzonder onderbreking van cel wisselen
Sneller webHTTP/3 over QUIC0-RTT (geen aparte handshake), per-stream afhandeling zonder TCP head-of-line blocking, connection migration, loopt over UDP (tegen ossificatie)
Proxy cache / HTTP acceleratorstatische pagina's uit de disk cache (HIT), TTL, ICP tussen proxies
TCP Fast Open / 0-RTT (SOCKS 6)data al in SYN / early data in TLS handshake
WAN / bedrijfsnetwerkMPLSlabels i.p.v. IP-lookup per hop (label switching), LSP, snelle en voorspelbare paden, QoS
SD-WANoverlay over meerdere (goedkope) verbindingen met centraal beleid; kiest per applicatie het beste pad
BGP + CIDRroutering tussen AS's; CIDR aggregeert prefixen, kleinere tabellen
Frame Relay / ATM (legacy)PVC/SVC virtuele circuits; ATM met kleine vaste cellen en QoS maar weinig populair meer
VeiligheidStateful filtering/inspectionfirewall onthoudt verbindingen (statustabel); inspection begrijpt ook FTP/VoIP
DMZ + proxy + ACL'szones, afgeschermde servers, filteren per IP/URL/poort/tijd
IDS/IPS (Snort, Suricata)inspecteert verkeer op aanvalspatronen
WPA2/3-Enterprise: 802.1X + RADIUS (PEAP/TLS)per gebruiker authenticatie; vervangt zwakke WEP/TKIP
SNMPv3authenticatie + encryptie voor beheer (SHA/AES)
AdresseringIPv6enorme adresruimte (geen NAT nodig), vaste header, stateless autoconfig (SLAAC), geen fragmentatie door routers
NAT/NAPT + port forwardingprivé-adressen delen 1 publiek IP; servers bereikbaar maken
ToegangsnetwerkDSL: DMT, QAM, echo cancellationsubkanalen met eigen QAM; upstream/downstream gescheiden of ge-echo-cancelled
Kabel: HFC; fiberglasvezel tot de wijk, coax laatste stuk; fiber: hoge bandbreedte, weinig demping
SpraakVoIP: SIP + RTP, STUNSIP voor signalering, RTP voor audio, STUN/ENUM om NAT te omzeilen/nummers te mappen
Beheer / schaalMesh (MANET/batman), multi-radio APzelfherstellend netwerk, meerdere radio's voor backhaul en clients
+25 XP
Volgende stap

Nog niet klaar? Je kan altijd terugkomen.

Leer de begrippen