MDstable
NoteSnippetChecklistPlaybook

ACL Cisco — Standard, Étendue & NAT

Configurer les ACL standard et étendues Cisco, NAT/PAT et filtrage applicatif

snippetintermediate 2025-05-14 7 min read
aclcisconatpatstandardextendednamediosaccess-list

Concepts fondamentaux

ACL Access Control List liste de rgles de filtrage applique sur une interface
Traites squentiellement de haut en bas premire rgle qui matche applique
Rgle implicite finale "deny any any" tout ce qui nest pas explicitement permis est refus
Types
Standard 1-99, 1300-1999) filtre sur IP SOURCE uniquement
tendue 100-199, 2000-2699) filtre src/dst IP protocole ports L4
Named ACL avec nom recommand plus lisible
Direction dapplication
in filtre le trafic entrant sur linterface avant le routage
out filtre le trafic sortant sur linterface aprs le routage
Placement recommand principe classique Cisco
ACL tendue au plus prs de la SOURCE vite de consommer de la bande passante
ACL standard au plus prs de la DESTINATION filtre uniquement sur src IP
Wildcard mask inverse du masque rseau
2552552550 wildcard 000255 rseau /24
255255255252 wildcard 0003 rseau /30
0000 wildcard 255255255255 "any"
255255255255 wildcard 0000 "host"

ACL Standard

text
Variables
{{ADMIN_IP}}
{{TRUSTED_SUBNET}}
{{WILDCARD}}
conf t
! Numérotée (1-99)
access-list 10 permit {{ADMIN_IP}}
access-list 10 permit {{TRUSTED_SUBNET}} {{WILDCARD}}
access-list 10 deny any log ! deny explicite avec log
! Appliquer sur interface (sortant — standard au plus près de destination)
interface GigabitEthernet0/1
ip access-group 10 out
! Vérifier
show ip access-lists 10
show ip access-lists 10 | include matches ! compteurs de matchs

ACL Étendue

Numérotée (100-199)

text
Variables
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
conf t
! Autoriser HTTP/HTTPS depuis le LAN vers Internet
access-list 100 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 80
access-list 100 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 443
! Autoriser DNS
access-list 100 permit udp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 53
access-list 100 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 53
! Autoriser ICMP
access-list 100 permit icmp {{LAN_SUBNET}} {{LAN_WILDCARD}} any
! Connexions établies (retour)
access-list 100 permit tcp any {{LAN_SUBNET}} {{LAN_WILDCARD}} established
! Deny implicite — explicite pour avoir les logs
access-list 100 deny ip any any log
interface GigabitEthernet0/0
description ** WAN **
ip access-group 100 in ! étendue au plus près de la source (entrant sur WAN)

Named ACL (recommandé)

text
Variables
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
{{DMZ_SUBNET}}
{{DMZ_WILDCARD}}
conf t
! ACL étendue nommée — plus lisible, permet insertion/suppression par séquence
ip access-list extended POLICY_LAN_OUT
remark ** Politique de sortie LAN vers Internet **
10 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 80
20 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 443
30 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 22
40 permit udp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 53
50 permit icmp {{LAN_SUBNET}} {{LAN_WILDCARD}} any
60 deny ip {{LAN_SUBNET}} {{LAN_WILDCARD}} {{DMZ_SUBNET}} {{DMZ_WILDCARD}} log
999 permit ip any any ! si ACL permissive (ou 999 deny ip any any log)
interface GigabitEthernet0/1
description ** LAN **
ip access-group POLICY_LAN_OUT in
! Ajouter une règle dans une ACL existante (insérer à la séquence 55)
ip access-list extended POLICY_LAN_OUT
55 permit tcp {{LAN_SUBNET}} {{LAN_WILDCARD}} any eq 8443
! Supprimer une règle par numéro de séquence
ip access-list extended POLICY_LAN_OUT
no 60

ACL pour DMZ

text
Variables
{{DMZ_SUBNET}}
{{DMZ_WILDCARD}}
{{ADMIN_SUBNET}}
{{ADMIN_WILDCARD}}
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
conf t
ip access-list extended POLICY_DMZ_IN
remark ** Trafic entrant vers la DMZ **
10 permit tcp any {{DMZ_SUBNET}} {{DMZ_WILDCARD}} eq 80
20 permit tcp any {{DMZ_SUBNET}} {{DMZ_WILDCARD}} eq 443
30 permit tcp {{ADMIN_SUBNET}} {{ADMIN_WILDCARD}} {{DMZ_SUBNET}} {{DMZ_WILDCARD}} eq 22
40 deny ip {{LAN_SUBNET}} {{LAN_WILDCARD}} {{DMZ_SUBNET}} {{DMZ_WILDCARD}} log
999 deny ip any any log
ip access-list extended POLICY_DMZ_OUT
remark ** Trafic sortant depuis la DMZ **
10 permit tcp {{DMZ_SUBNET}} {{DMZ_WILDCARD}} any eq 80
20 permit tcp {{DMZ_SUBNET}} {{DMZ_WILDCARD}} any eq 443
30 permit tcp {{DMZ_SUBNET}} {{DMZ_WILDCARD}} any eq 53
40 permit udp {{DMZ_SUBNET}} {{DMZ_WILDCARD}} any eq 53
! Bloquer accès DMZ → LAN (isolation)
50 deny ip {{DMZ_SUBNET}} {{DMZ_WILDCARD}} {{LAN_SUBNET}} {{LAN_WILDCARD}} log
999 permit ip any any
interface GigabitEthernet0/2
description ** DMZ **
ip access-group POLICY_DMZ_IN in
ip access-group POLICY_DMZ_OUT out

ACL sur VTY (SSH/Telnet)

text
Variables
{{ADMIN_SUBNET}}
{{ADMIN_WILDCARD}}
conf t
! Restreindre l'accès SSH/Telnet à un réseau admin uniquement
ip access-list standard MGMT_ACCESS
10 permit {{ADMIN_SUBNET}} {{ADMIN_WILDCARD}}
20 deny any log
line vty 0 4
access-class MGMT_ACCESS in ! filtrage sur les sessions entrantes VTY
transport input ssh ! SSH uniquement
login local
line vty 5 15
access-class MGMT_ACCESS in
transport input ssh

NAT Statique

text
Variables
{{PRIVATE_IP}}
{{PUBLIC_IP}}
conf t
! NAT statique 1-to-1 (serveur avec IP publique fixe)
ip nat inside source static {{PRIVATE_IP}} {{PUBLIC_IP}}
! NAT statique avec port spécifique (port forwarding)
ip nat inside source static tcp {{PRIVATE_IP}} 80 {{PUBLIC_IP}} 80
ip nat inside source static tcp {{PRIVATE_IP}} 443 {{PUBLIC_IP}} 443
ip nat inside source static tcp {{PRIVATE_IP}} 22 {{PUBLIC_IP}} 2222
! Configurer les interfaces
interface GigabitEthernet0/0
description ** WAN **
ip nat outside
interface GigabitEthernet0/1
description ** LAN/DMZ **
ip nat inside

NAT Dynamique avec Pool

text
Variables
{{PUBLIC_START}}
{{PUBLIC_END}}
{{PUBLIC_MASK}}
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
conf t
! Définir le pool d'adresses publiques
ip nat pool PUBLIC_POOL {{PUBLIC_START}} {{PUBLIC_END}} netmask {{PUBLIC_MASK}}
! ACL pour sélectionner les hôtes à NATer
ip access-list standard NAT_SOURCES
permit {{LAN_SUBNET}} {{LAN_WILDCARD}}
! Associer ACL et pool
ip nat inside source list NAT_SOURCES pool PUBLIC_POOL
interface GigabitEthernet0/0
ip nat outside
interface GigabitEthernet0/1
ip nat inside

PAT — Port Address Translation (overload)

text
Variables
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
{{WAN_IP}}
{{WAN_MASK}}
conf t
! PAT avec l'IP de l'interface WAN (IP dynamique — DHCP)
ip access-list standard PAT_SOURCES
permit {{LAN_SUBNET}} {{LAN_WILDCARD}}
ip nat inside source list PAT_SOURCES interface GigabitEthernet0/0 overload
! PAT avec IP fixe (meilleure option si IP publique statique)
ip nat inside source list PAT_SOURCES interface GigabitEthernet0/0 overload
! Ou avec un pool + overload
ip nat pool PUBLIC_IP {{WAN_IP}} {{WAN_IP}} netmask {{WAN_MASK}}
ip nat inside source list PAT_SOURCES pool PUBLIC_IP overload
interface GigabitEthernet0/0
ip nat outside
interface GigabitEthernet0/1
ip nat inside

NAT avec ACL de référence (combinaison NAT + ACL)

text
Variables
{{DMZ_SERVER1}}
{{PUBLIC_IP1}}
{{DMZ_SERVER2}}
{{PUBLIC_IP2}}
{{LAN_SUBNET}}
{{LAN_WILDCARD}}
{{DMZ_SUBNET}}
{{DMZ_WILDCARD}}
conf t
! Scénario : LAN principal NATé, DMZ avec IP publiques statiques
! 1. NAT statique pour serveurs DMZ
ip nat inside source static {{DMZ_SERVER1}} {{PUBLIC_IP1}}
ip nat inside source static {{DMZ_SERVER2}} {{PUBLIC_IP2}}
! 2. PAT pour le LAN utilisateurs (reste du trafic)
ip access-list standard PAT_LAN
permit {{LAN_SUBNET}} {{LAN_WILDCARD}}
deny {{DMZ_SUBNET}} {{DMZ_WILDCARD}} ! exclure la DMZ du PAT
ip nat inside source list PAT_LAN interface GigabitEthernet0/0 overload

Vérifications

text
Variables
{{PRIVATE_IP}}
{{PUBLIC_IP}}
! Lister toutes les ACL avec compteurs de matchs
show ip access-lists
! ACL spécifique
show ip access-lists POLICY_LAN_OUT
! ACL appliquées sur les interfaces
show ip interface GigabitEthernet0/0 | include access list
! Table de traduction NAT
show ip nat translations
! Traductions NAT détaillées
show ip nat translations verbose
! Statistiques NAT
show ip nat statistics
! Déboguer NAT
debug ip nat ! verbeux — lab uniquement
debug ip nat detailed
! Vider la table de traduction NAT (forcer renouvellement)
clear ip nat translation *
clear ip nat translation inside {{PRIVATE_IP}} outside {{PUBLIC_IP}}

Interprétation show ip nat translations

Pro Inside global Inside local Outside local Outside global
tcp 203011311024 1921681101024 888853 888853
---
IP publique IP prive LAN Serveur distant Serveur distant
💡 Tip —

Placer les ACL étendues au plus près de la source (interface entrante côté source) et les ACL standard au plus près de la destination (interface sortante côté destinataire). Ce principe minimise le trafic inutile sur le réseau : avec une ACL étendue proche de la source, les paquets filtrés ne traversent pas le réseau. Avec une ACL standard loin de la source, le trafic voyage jusqu'au routeur de destination avant d'être droppé.

OPS·BRAIN v1.027 notes · Networklocal