Comprendre le bitcoin, l'intelligence artificielle, faire un site web... En 3 minutes en vidéo!

Les Access Control List (ACL) : Qu'est-ce que c'est et comment s'en servir pour le filtrage réseau

Tutoriaux > Internet & Réseaux > Les Access Control List (ACL) : Qu'est-ce que c'est et comment s'en servir pour le filtrage réseau

Les Access Control List (ACL) : Qu'est-ce que c'est et comment s'en servir pour le filtrage réseau
Les Access Control List (ACL) permettent notamment de faire du filtrage, c'est à dire de définir les droits des utilisateurs du réseau, selon leur adresse IP ou le type de paquets qui transitent.

Qu'est-ce qu'une Access Control List ? (ACL)

Une Access Control List permet de filtrer les paquets IP, c'est à dire les paquets du niveau 3. Elle permet de définir les actions possibles des utilisateurs du réseau.
Ainsi, une ACL va indiquer au routeur les paquets qu'il doit accepter et ceux qu'il doit refuser, notamment en fonction de leur adresse IP de provenance, leur IP destination et les ports source et destination.

Principes généraux des ACL

Séquentialité


Les ACL sont lues de manière séquentielle par les routeurs, c'est à dire que c'est la première instruction rencontrée pour le paquet en question qui fait foi, et les instructions suivantes ne sont pas utilisées.

Nota : Une ACL non finie se termine toujours par deny any, pour refuser tous les paquets qui ne répondent à aucune règle de l'ACL et ainsi couvrir tous les cas possibles.

Types d'ACL


On distingue les types d'ACL selon le type de protocole de niveau 3 concerné. Ainsi, sur les routeurs CISCO on peut voir grâce à l'instruction access-list ? cette liste (Il faut être en mode de configuration) :

Code

RouterAidoweb(config)# access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<200-299> Protocol type-code access list
<300-399> DECnet access list
<600-699> Appletalk access list
<700-799> 48-bit MAC address access list
<800-899> IPX standard access list
<900-999> IPX extended access list
<1000-1099> IPX SAP access list
<1100-1199> Extended 48-bit MAC address access list
<1200-1299> IPX summary address access list
<1300-1999> IP standard access list (expanded range)
<2000-2699> IP extended access list (expanded range)



Les plus utilisées sont les <100-199> IP extended access list, car ce sont souvent des paquets IP qui transitent, notamment sur l'internet.

Masque générique (Wildcard mask)

Définition


Les ACL permettent de désigner des groupes d'adresses grâce à l'utilisation d'un masque générique. Dans un masque générique, les 0 signifient qu'il faut vérifier la valeur du bit correspondant, et les 1 signifient qu'il faut l'ignorer.

Attention donc, à ne pas confondre masque générique et masque de sous réseau! Le masque générique permet de filtrer, alors que le masque de sous réseau permet de diviser grâce à l'utilisation d'une addition booléenne.

Exemple pratique


Code

Adresse IP: 10.1.128.0
Adresse IP (binaire) : 00001010 . 00000001 . 10000000 . 00000000

Masque générique : 0.0.15.255
Masque générique (binaire) : 00000000 . 00000000 . 00001111 . 11111111


Comprendre ce masque générique


Comment comprendre ce masque ? Rappelez vous, les 0 sont ceux qu'on doit trouver dans l'adresse IP, et les 1 ceux qui n'ont pas besoin d'être vérifiés.

Ainsi, une ACL utilisant ce masque laissera passer les paquets de 10.1.128.0 à 10.1.143.255 ! Vous ne comprenez pas pourquoi ? Voyons ça de plus près en binaire, avec des jolies couleursContent

  • Voici le masque : 00000000 . 00000000 . 00001111 . 11111111
    La partie rouge est celle qui doit se retrouver dans toute la plage d'IP que la règle va laisser passer. La partie verte est la partie variable, c'est à dire qu'il n'y a plus de contrainte dedans. Voici donc l'adresse IP correspondante, en binaire, avec la partie rouge et verte :

  • Première adresse possible : 00001010 . 00000001 . 10000000 . 00000000. Soit, en décimal : 10.2.128.0
    Pourquoi est-ce la plus petite ? Tout simplement parce que toute la partie verte est composée de 0, et qu'on ne touche pas à la partie rouge.

  • La plus haute adresse de la plage est donc : 00001010 . 00000001 . 10001111 . 11111111. Soit, en décimal : 10.2.143.255


Appliquer des règles dans une ACL

Une fois la plage d'adresses à laisser passer définie, il faut l'appliquer dans le routeur lui-mêmeClin d'oeil Un peu de langage Cisco s'impose... Une ACL s'applique en deux temps :

  • Identification du ou des flux (définition de l’ACL)
    access-list

  • Application des règles à une interface (application de l’ACL)
    access-group



Il faut de plus définir le sens sur lequel l'ACL agit, c'est à dire si c'est en entré ou en sortie. (In ou Out).

Définition d'une ACL Standard


Cela relève directement de l'utilisation des masques génériques. Ainsi, la syntaxe pour appliquer la règle créée ci-dessus serait : (N'oubliez pas que les ACL sont séquentielles et qu'il faut placer les règles dans le bon ordre ! )

Code

RouterAidoweb(config)# access-list 20 permit 10.2.128.0 0.0.15.255


On va accepter les paquets venant de la plage de données définie plus haut. Et le numéro 20 n'est que le numéro que l'on a donné à l'ACL, qui doit être compris entre 1 et 99, ou entre 1300 et 1999 (car c'est une ACL standard, sur le protocole IP)

Définition d'une ACL étendue


L'ACL définie plus haut ne prend en compte que l'adresse IP source. Une ACL étendue permet de prendre en compte plus de critères, comme l'IP destination et les ports utilisés. Et nous avons donné le numéro 121 à l'ACL définie.

Code

RouterAidoweb(config)# access-list 121 deny tcp host 10.2.16.1 10.2.128.0 0.0.15.255 eq 23


Ainsi, ici on interdit à l'hôte 10.2.16.1 l'accès telnet (car port TCP 23) au réseau 10.2.128.0/20. Vous avez donc plus comprendre que la première IP concerne l'hôte (défini par host), la seconde le réseau destination, et la troisième est le masque générique.
Un autre exemple :

Code

RouterAidoweb(config)# access-list 122 permit tcp 10.2.128.0 0.0.0.255 any eq telnet


Ici on autorise tous les hôtes du réseau 10.2.128/24 à utiliser telnet vers tous les réseaux. Joli, non ?Sourire

Application de l'ACL à une interface


Voici le code pour l'application de la liste 10, à l'interface FastEthernet 0/0 de notre routeur :

Code

RouterAidoweb(config)#interface fa0/0
RouterAidoweb(config-if)#ip access-group ?
<1-199> IP access list (standard or extended)
WORD Access-list name
RouterAidoweb(config-if)#ip access-group 20 ?
in inbound packets
out outbound packets
RouterAidoweb(config-if)#ip access-group 20 in


On a donc appliqué la règle 20, créée ci-dessus, à l'interface Fa0/0, pour les paquets entrants. Tous les autres paquets qui ne viennent pas de la plage d'adresses définie seront refusés.

Voir les Access Control List


Pour voir les ACL du routeur, c'est simple :

Code

RouterAidoweb# show access-lists


Ou, pour en voir une particulière :

Code

RouterAidoweb# show access-lists {numéro}
RouterAidoweb# show ip access-list {numéro}



Voilà, ce n'est qu'un bref aperçu des ACL mais j'espère que ça vous ouvrira les yeux sur leur fonctionnementClin d'oeil Pour plus d'informations sur leur fonctionnement en profondeur et les syntaxes possibles, vous trouverez pas mal de ressources sur le netSourire

Par Pouzy , Le 14 Avril 2010 à 18h12
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à Internet & Réseaux

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Lectures recommandées

Commentaires sur cet article

fou - Le 05 Novembre 2011 à 16h35

Merci , c'est vraiment très bien expliqué
juste ce qu'il faut

karti - Le 12 Juin 2011 à 23h22

C'est une bonne lecon

karti - Le 12 Juin 2011 à 23h20

merci
c'est un bon LECON

alilo - Le 26 Août 2010 à 12h51

merci, votre tuto m'est de bon aide

Tutoriaux > Internet & Réseaux > Les Access Control List (ACL) : Qu'est-ce que c'est et comment s'en servir pour le filtrage réseau