Fiche – ACL et NAT Cisco (segmentation + DMZ/publication web)

Dans un contexte BTS CIEL / SIO, les ACL Cisco permettent de contrôler les communications entre plusieurs réseaux. Elles sont utilisées pour segmenter un réseau, limiter les accès entre VLAN et autoriser uniquement les flux nécessaires.

Cette fiche présente un cas pratique avec plusieurs VLAN en /27. L’objectif est de comprendre où placer les ACL, pourquoi il ne faut pas appliquer la même ACL partout, et comment autoriser les utilisateurs à accéder à un serveur web interne sans bloquer les réponses du serveur.

Objectif du filtrage

VLANRéseauRôleAccès autorisés
VLAN 10172.16.0.32/27Utilisateurs 1Serveur web + Internet
Non autorisé depuis utilisateurs
VLAN 20172.16.0.64/27Utilisateurs 2Serveur web + Internet
Non autorisé depuis utilisateurs
VLAN 30172.16.0.96/27ServeursAccessible en HTTP/HTTPS
VLAN 40172.16.0.128/27Autre VLAN interneNon autorisé depuis utilisateurs
VLAN 99172.16.0.160/27AdministrationAccès partout
WAN192.168.16.0/28Accès InternetAccès HTTP/HTTPS vers serveur

Configuration complète avec commentaires

enable
configure terminal

! ==============================
! CONFIGURATION DES INTERFACES
! ==============================

! Interface WAN vers Internet ou routeur amont
interface GigabitEthernet0/0
 ip address 192.168.16.4 255.255.255.240
 no shutdown
 exit

! Interface physique utilisée pour le router-on-a-stick
interface GigabitEthernet0/1
 no ip address
 no shutdown
 exit

! VLAN 10 - Utilisateurs 1
interface GigabitEthernet0/1.10
 encapsulation dot1Q 10
 ip address 172.16.0.33 255.255.255.224
 exit

! VLAN 20 - Utilisateurs 2
interface GigabitEthernet0/1.20
 encapsulation dot1Q 20
 ip address 172.16.0.65 255.255.255.224
 exit

! VLAN 30 - Serveurs
interface GigabitEthernet0/1.30
 encapsulation dot1Q 30
 ip address 172.16.0.97 255.255.255.224
 exit

! VLAN 40 - Autre VLAN interne
interface GigabitEthernet0/1.40
 encapsulation dot1Q 40
 ip address 172.16.0.129 255.255.255.224
 exit

! VLAN 99 - Administration
interface GigabitEthernet0/1.99
 encapsulation dot1Q 99
 ip address 172.16.0.161 255.255.255.224
 exit

! ==============================
! ACL WAN
! ==============================

! Cette ACL filtre ce qui arrive depuis Internet.
! Internet peut accéder uniquement au serveur web interne.
! Serveur web : 172.16.0.98

ip access-list extended ACL-WAN
 permit tcp any host 172.16.0.98 eq www
 permit tcp any host 172.16.0.98 eq 443
 deny ip any any
 exit

! Application de l’ACL WAN en entrée sur l’interface Internet
interface GigabitEthernet0/0
 ip access-group ACL-WAN in
 exit

! ==============================
! ACL UTILISATEURS
! ==============================

! Cette ACL est destinée uniquement aux VLAN utilisateurs.
! Elle autorise :
! - l’accès HTTP/HTTPS au serveur web
! - l’accès à Internet
! Elle bloque :
! - les accès vers les autres VLAN internes

ip access-list extended ACL-USERS

 ! Autoriser VLAN 10 vers serveur web en HTTP
 permit tcp 172.16.0.32 0.0.0.31 host 172.16.0.98 eq www

 ! Autoriser VLAN 10 vers serveur web en HTTPS
 permit tcp 172.16.0.32 0.0.0.31 host 172.16.0.98 eq 443

 ! Autoriser VLAN 20 vers serveur web en HTTP
 permit tcp 172.16.0.64 0.0.0.31 host 172.16.0.98 eq www

 ! Autoriser VLAN 20 vers serveur web en HTTPS
 permit tcp 172.16.0.64 0.0.0.31 host 172.16.0.98 eq 443

 ! Bloquer les utilisateurs vers les autres VLAN internes
 deny ip 172.16.0.32 0.0.0.31 172.16.0.0 0.0.0.255
 deny ip 172.16.0.64 0.0.0.31 172.16.0.0 0.0.0.255

 ! Autoriser le reste vers Internet
 permit ip 172.16.0.32 0.0.0.31 any
 permit ip 172.16.0.64 0.0.0.31 any

 exit

! Application uniquement sur les VLAN utilisateurs
interface GigabitEthernet0/1.10
 ip access-group ACL-USERS in
 exit

interface GigabitEthernet0/1.20
 ip access-group ACL-USERS in
 exit

! ==============================
! ACL ADMINISTRATION
! ==============================

! Le VLAN admin peut aller partout.
! Cette ACL est optionnelle, mais elle rend la règle explicite.

ip access-list extended ACL-ADMIN
 permit ip 172.16.0.160 0.0.0.31 any
 exit

interface GigabitEthernet0/1.99
 ip access-group ACL-ADMIN in
 exit

! ==============================
! IMPORTANT
! ==============================

! On n’applique pas ACL-USERS sur le VLAN serveur.
! Sinon les réponses du serveur vers les clients peuvent être bloquées.
! on fait une ACL dédié qui limite les flux au stricte nécessaire HTTP et HTTPS

ip access-list extended ACL-SERVER

! Autoriser les réponses HTTP/HTTPS du serveur web vers les utilisateurs uniquement pour les connexions établies
! established autorise uniquement les paquets TCP avec le bit ACK ou RST, ce qui correspond généralement à du trafic de retour.
! Ce n’est pas un vrai pare-feu stateful, mais c’est mieux qu’un simple eq www en source.

! Autoriser uniquement le trafic TCP de retour vers le LAN interne
permit tcp 172.16.0.96 0.0.0.31 172.16.0.0 0.0.0.255 established

! Bloquer la DMZ vers tous les VLAN internes
deny ip 172.16.0.96 0.0.0.31 172.16.0.0 0.0.0.255

! Autoriser la DMZ vers Internet si nécessaire
permit ip 172.16.0.96 0.0.0.31 any

exit

interface g0/1.30
 ip access-group ACL-SERVER in

! ==============================
! SAUVEGARDE
! ==============================

end
write memory

Explication détaillée

1. Principe d’une ACL

Une ACL est une liste de règles lues de haut en bas. Dès qu’une ligne correspond au trafic, elle est appliquée. Si aucune ligne ne correspond, Cisco applique un refus implicite à la fin.

Cela signifie que l’ordre des lignes est très important.

2. ACL standard et ACL étendue

Une ACL standard filtre uniquement sur l’adresse source.

Exemple :

access-list 10 permit 172.16.0.160 0.0.0.31

Une ACL étendue filtre sur la source, la destination, le protocole et éventuellement le port.

Exemple :

permit tcp 172.16.0.32 0.0.0.31 host 172.16.0.98 eq 443

Dans cet exemple, on autorise le réseau 172.16.0.32/27 à accéder au serveur 172.16.0.98 en HTTPS.

3. Signification de host, any et eq

host désigne une seule adresse IP.

host 172.16.0.98

équivaut à :

172.16.0.98 0.0.0.0

any signifie n’importe quelle adresse.

permit ip 172.16.0.32 0.0.0.31 any

Cela autorise le VLAN utilisateur vers n’importe quelle destination, donc Internet si les autres VLAN internes ont été bloqués avant.

eq signifie “égal à” et sert à filtrer un port précis.

eq www

correspond au port TCP 80.

eq 443

correspond au port TCP 443.

4. Pourquoi ne pas appliquer la même ACL sur tous les VLAN

Dans l’exercice, l’erreur classique consiste à appliquer la même ACL sur les VLAN utilisateurs, serveurs et admin.

Si on applique cette ACL sur le VLAN serveur :

deny ip 172.16.0.0 0.0.0.255 172.16.0.0 0.0.0.255

alors les réponses du serveur vers les clients peuvent être bloquées.

Exemple :

Laptop0 -> serveur web : autorisé
serveur web -> Laptop0 : bloqué

La bonne méthode consiste à créer une ACL selon le rôle du VLAN :

ACL-USERS : appliquée aux VLAN utilisateurs
ACL-WAN : appliquée sur l’interface Internet
ACL-ADMIN : appliquée au VLAN admin si besoin

5. Wildcard mask en /27

Un réseau en /27 utilise le masque :

255.255.255.224

Le wildcard correspondant est : >> 255-224 = 31

0.0.0.31

Exemple :

172.16.0.32 0.0.0.31

désigne le sous-réseau :

172.16.0.32/27

Plage utilisable :

172.16.0.33 à 172.16.0.62

6. Voir les ACL

show access-lists

Pour voir où elles sont appliquées :

show running-config

ou sur une interface précise :

show running-config interface GigabitEthernet0/1.10

7. Supprimer une ACL

Supprimer une ACL nommée :

configure terminal
no ip access-list extended ACL-USERS
end

Retirer une ACL d’une interface :

configure terminal
interface GigabitEthernet0/1.10
no ip access-group ACL-USERS in
end

8. Résumé

Les ACL permettent de contrôler précisément les flux réseau. Pour éviter les erreurs, il faut toujours vérifier trois points :

1. Quelle source veut communiquer ?
2. Quelle destination est visée ?
3. Où appliquer l’ACL pour ne pas bloquer les retours ?

Dans cette fiche, la règle importante est la suivante :

On filtre les utilisateurs en entrée de leurs VLAN.
On filtre Internet en entrée de l’interface WAN.
On n’applique pas une ACL utilisateur sur le VLAN serveur.

Retour en haut