Wat is een ACL?

Een ACL (Access Control List) is een geordende lijst van permit- en deny-regels op een router, switch of firewall die voor elk netwerkpakket bepaalt of het wordt doorgelaten, op basis van kenmerken als bron- en doeladres, protocol en poortnummer. ACL’s zijn de eenvoudigste en snelste vorm van verkeersfiltering en komen voor in vrijwel elk IT- en OT-netwerk. In industriële omgevingen dwingen ze segmentatie af tussen zones, zodat bijvoorbeeld alleen de SCADA-server een PLC mag aanspreken.

ACL’s maken least privilege networking mogelijk: alleen verkeer dat een proces echt nodig heeft, wordt toegestaan.


🧠 Hoe werkt een ACL?

Een ACL bestaat uit regels (access control entries) die de router of switch van boven naar beneden afloopt. Elke regel vergelijkt een pakket met een aantal kenmerken:

  • Bron-IP en doel-IP - een enkel adres, een subnet of any
  • Protocol - bijvoorbeeld TCP, UDP of ICMP
  • Poortnummer - bijvoorbeeld 443 voor HTTPS of 502 voor Modbus TCP
  • Richting - de ACL hangt aan een interface en filtert inkomend (inbound) of uitgaand (outbound) verkeer

Drie regels bepalen het gedrag:

  1. De eerste match telt. Zodra een regel past, voert het apparaat de actie uit en stopt het met zoeken. Een brede permit bovenaan maakt alle specifieke deny’s eronder dus nutteloos.
  2. Impliciete deny aan het eind. Elke ACL eindigt met een onzichtbare regel “weiger al het overige”. Een ACL zonder ook maar één permit blokkeert daardoor alles.
  3. Eén ACL per interface, per richting, per protocol. Wie extra regels wil, past de bestaande lijst aan in plaats van een tweede toe te voegen.

Een voorbeeld in Cisco IOS-notatie, waarin alleen het SCADA-netwerk de PLC via Modbus TCP en OPC UA mag bereiken:

ip access-list extended OT-CEL-IN
 10 permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.15 eq 502
 20 permit tcp host 192.168.10.5 host 192.168.20.15 eq 4840
 30 deny ip any any log

Het masker 0.0.0.255 is een wildcard mask: de omgekeerde notatie van een subnetmasker, hier gelijk aan een /24. De expliciete deny met log aan het eind doet hetzelfde als de impliciete deny, maar maakt geblokkeerd verkeer zichtbaar in tellers en syslog.


🔧 Welke soorten ACL’s zijn er?

Type Filtert op Kenmerk
Standaard ACL Alleen bron-IP Cisco-nummers 1–99 en 1300–1999; plaats dicht bij de bestemming
Extended ACL Bron, doel, protocol, poort Cisco-nummers 100–199 en 2000–2699; plaats dicht bij de bron
Named ACL Als standaard of extended Leesbare naam en volgnummers, regels later in te voegen
MAC ACL MAC-adres en EtherType Werkt op laag 2, ook voor niet-IP-verkeer
Router-ACL (RACL) Gerouteerd verkeer Op een gerouteerde interface of VLAN-interface
VLAN-ACL (VACL) Al het verkeer in een VLAN Ook verkeer dat binnen het VLAN blijft
Poort-ACL (PACL) Verkeer op één switchpoort Op een laag-2-poort van een managed switch

Op switches draaien ACL’s in speciaal geheugen (TCAM), zodat filtering op lijnsnelheid gebeurt. Dat geheugen is beperkt: raakt het vol, dan gaat verkeer op sommige platforms via de processor en daalt de prestatie.


🔍 Wat is het verschil tussen een ACL en een firewall?

Een ACL is stateless: elk pakket wordt los beoordeeld, zonder kennis van de sessie waar het bij hoort. Retourverkeer moet daarom apart worden toegestaan. Het Cisco-sleutelwoord established helpt beperkt: het laat TCP-pakketten met een ACK- of RST-vlag door, maar controleert niet of er echt een sessie bestaat. Een firewall houdt wél de toestand van verbindingen bij.

Aspect ACL Firewall
OSI-lagen Laag 3 en 4 (MAC-ACL: laag 2) Laag 3 tot en met 7
Toestand Stateless, per pakket Stateful, per sessie
Inhoud Ziet alleen headers DPI kan protocolinhoud controleren
Logging Tellers en logregels per regel Uitgebreide sessie- en gebeurtenislogging
Snelheid Lijnsnelheid in hardware Lager bij zware inspectie
Kosten Zit al in router of switch Aparte appliance of licentie

Een industriële firewall of next-gen firewall kan bijvoorbeeld zien of een Modbus-pakket een leesopdracht (functiecode 3) of een schrijfopdracht (5, 6, 15 of 16) bevat. Voor een ACL zijn beide gewoon TCP-verkeer naar poort 502.


🏭 Hoe zet u ACL’s in OT-netwerken in?

ACL’s zijn in OT vaak de eerste laag van netwerksegmentatie, met name op laag-3-switches tussen cellen en niveaus van het Purdue Model. Typische toepassingen:

  • Alleen bepaalde PLC’s laten communiceren met de SCADA-server
  • Toegang tot HMI’s beperken tot specifieke subnets of werkstations
  • Ongewenste protocollen blokkeren, zoals SMB of Telnet in het OT-segment
  • Safety PLC’s afschermen tegen alle verbindingen behalve die van het engineeringstation
  • Beheer beperken, zodat SSH en webinterfaces van switches alleen vanaf een jump server bereikbaar zijn

Hiervoor moet u weten welke poorten industriële protocollen gebruiken:

Protocol Standaardpoort Opmerking
Modbus TCP TCP 502 Geen authenticatie in de basisvariant
IP TCP/UDP 44818, UDP 2222 2222 voor cyclische I/O
OPC UA TCP 4840 Vaak aangepast per server
S7comm TCP 102 Siemens S7-communicatie via ISO-on-TCP
DNP3 TCP/UDP 20000 Veel in water en energie
IEC 60870-5-104 TCP 2404 Telecontrol in de energiesector
BACnet/IP UDP 47808 Gebouwautomatisering
ProfiNET UDP 34964 (+ EtherType 0x8892) Realtimeverkeer is geen IP

Let op bij ProfiNET: het realtimeverkeer loopt rechtstreeks over Ethernet (EtherType 0x8892) en is niet routeerbaar. Een IP-ACL ziet alleen het verbindingsopbouwdeel via UDP 34964; scheiding van het cyclische verkeer regelt u op laag 2, met VLAN’s of MAC-ACL’s.


🧭 Hoe richt u een ACL-beleid stapsgewijs in?

  1. Breng verkeersstromen in kaart. Gebruik passieve monitoring of Wireshark om te zien wie met wie communiceert, zonder het proces te verstoren.
  2. Stel een communicatiematrix op. Leg per zone en conduit vast welke bron, bestemming, protocol en poort nodig zijn, en waarom.
  3. Werk volgens deny by default. IEC 62443-3-3 vraagt bij zonegrenzen (SR 5.2) vanaf security level 2 dat verkeer standaard wordt geweigerd en alleen bij uitzondering wordt toegestaan.
  4. Plaats regels slim. Specifieke regels bovenaan, extended ACL’s dicht bij de bron, en een expliciete deny met logging onderaan.
  5. Test in een onderhoudsvenster. Een vergeten regel kan een PLC-verbinding verbreken en een proces stilleggen. Houd een terugvalconfiguratie klaar.
  6. Log en monitor. Stuur deny-meldingen naar een SIEM, zodat scans en verkeerd geconfigureerde apparaten opvallen.
  7. Beheer wijzigingen. Leg elke regel vast via change management en beoordeel de set periodiek, zoals beschreven bij firewallregelbeheer.

Vergeet IPv6 niet: een IPv4-ACL filtert geen IPv6-verkeer. Staat IPv6 aan op apparaten, dan is een aparte IPv6-ACL nodig of moet IPv6 worden uitgeschakeld. Let daarbij op een verschil: Cisco IOS laat in een IPv6-ACL vóór de impliciete deny standaard neighbor discovery-berichten (NS en NA) door, omdat IPv6 zonder die berichten niet werkt. Wie zelf een expliciete deny ipv6 any any onderaan zet, moet die berichten dus eerst expliciet toestaan.


🔐 Welke beperkingen en risico’s hebben ACL’s?

  • Geen identiteit - een ACL kent IP-adressen, geen gebruikers. Wie een toegestaan adres overneemt of vervalst, komt erdoor. Combineer daarom met RBAC, port security of Zero Trust.
  • Volgordegevoelig - één verkeerd geplaatste regel kan onbedoeld te veel openzetten of juist kritieke communicatie blokkeren
  • Groei en vervuiling - regels die niemand meer begrijpt, blijven jaren staan
  • Geen inhoudscontrole - voor protocolinspectie zijn DPI of een industriële firewall nodig

Wet- en regelgeving maken toegangsbeleid expliciet. NIS2 noemt in artikel 21 lid 2 onder i beleid voor toegangscontrole als verplichte maatregel; in Nederland is dat uitgewerkt in de Cyberbeveiligingswet. NIST SP 800-82 (Rev. 3, september 2023) beveelt ACL’s en firewalls aan als onderdeel van defense in depth.


❓ Veelgestelde vragen

Is een ACL hetzelfde als een firewall?

Nee, een ACL is een stateless filter dat pakketten los beoordeelt op headers als adres, protocol en poort. Een firewall houdt de toestand van verbindingen bij en kan vaak ook de inhoud van protocollen inspecteren. In OT-netwerken worden ACL’s en firewalls meestal gecombineerd.

Wat betekent de impliciete deny in een ACL?

De impliciete deny is een onzichtbare laatste regel die al het verkeer weigert dat niet eerder is toegestaan. Daardoor moet elke ACL minstens één permit-regel bevatten. Veel beheerders zetten een expliciete deny met logging onderaan, zodat geblokkeerd verkeer zichtbaar wordt.

Waar plaatst u een ACL het best?

Een extended ACL plaatst u zo dicht mogelijk bij de bron, zodat ongewenst verkeer het netwerk niet onnodig belast. Een standaard ACL filtert alleen op bronadres en hoort dicht bij de bestemming, anders blokkeert hij ook verkeer naar andere doelen. In OT ligt de natuurlijke plek op de grens tussen zones.

Kan een ACL PROFINET-verkeer filteren?

Een IP-ACL kan het cyclische PROFINET-verkeer niet filteren, omdat dat rechtstreeks over Ethernet loopt met EtherType 0x8892 en geen IP gebruikt. Alleen de verbindingsopbouw via UDP-poort 34964 is IP-verkeer. Scheiding van PROFINET-netwerken gebeurt daarom met VLAN’s of MAC-ACL’s op laag 2.

Bestaan er ook ACL’s buiten netwerken?

Ja, besturingssystemen gebruiken ACL’s om rechten op bestanden en mappen vast te leggen. Windows kent op NTFS een DACL voor toegangsrechten en een SACL voor auditing, en Linux ondersteunt POSIX-ACL’s. Het principe is hetzelfde: een lijst die per subject bepaalt wat is toegestaan.

Voldoet u met ACL’s aan IEC 62443?

ACL’s kunnen invulling geven aan eisen voor zonegrensbescherming in IEC 62443-3-3, zoals het principe deny by default, allow by exception. Vanaf security level 3 vraagt dezelfde eis ook island mode en fail close, en de norm stelt daarnaast eisen aan onder meer authenticatie en monitoring, waarvoor in de praktijk stateful firewalls en detectie nodig zijn. ACL’s zijn dus een bouwsteen, geen volledige oplossing.


📌 Samengevat

Een ACL is een geordende lijst van permit- en deny-regels waarmee routers en switches netwerkverkeer filteren op IP-adres, protocol en poort, met de eerste match als winnaar en een impliciete deny aan het eind. In industriële netwerken is de ACL een snelle, goedkope bouwsteen voor segmentatie en least privilege, mits gecombineerd met firewalls, monitoring en goed wijzigingsbeheer.