ACLs (Access Control Lists) (Listes de Contrôle d’Access) · ACL (Access Control List) Liste...

42
1 4-1 © Mohammed EL HARFAOUI - [email protected] ACLs (Access Control Lists) (Listes de Contrôle d’Access) © Mohammed EL HARFAOUI ([email protected]) 2 Introduction Les ACLs sont des règles fixant les conditions de filtrage qui seront appliquées au trafic circulant via une interface d’un routeur. Les ACL filtrent le trafic réseau en commandant aux interfaces d’un routeur d’acheminer ou de bloquer des paquets qui y transitent. Le routeur examine chaque paquet afin de déterminer s’il doit l’acheminer ou le rejeter en fonction des conditions précisées dans la liste de contrôle d’accès.

Transcript of ACLs (Access Control Lists) (Listes de Contrôle d’Access) · ACL (Access Control List) Liste...

  • 1

    4-1

    © Mohammed EL HARFAOUI - [email protected]

    ACLs(Access Control Lists)

    (Listes de Contrôle d’Access)

    © Mohammed EL HARFAOUI ([email protected])

    2

    Introduction

    Les ACLs sont des règles fixant les conditions de filtrage qui seront appliquées au trafic circulant via une interface d’un routeur.

    Les ACL filtrent le trafic réseau en commandant aux interfaces d’un routeur d’acheminer ou de bloquer des paquets qui y transitent.

    Le routeur examine chaque paquet afin de déterminer s’il doit l’acheminer ou le rejeter en fonction des conditions précisées dans la liste de contrôle d’accès.

  • 2

    © Mohammed EL HARFAOUI ([email protected])

    3

    Introduction

    Les ACLs servent à :

    Contrôler le flux de trafic en déterminant le type de trafic qui sera acheminé ou bloqué au niveau des interfaces du routeur.

    Améliorer les performances réseau en limitant certain trafic tel que la vidéo, par exemple.

    Fournir un niveau de sécurité d’accès réseau de base :

    Filtrer certains hôtes afin de leur accorder ou de leur refuser l’accès à une section (subnet) de réseau.

    Accorder ou refuser aux utilisateurs la permission d’accéder à certains types de services, tels que FTP ou HTTP.

    © Mohammed EL HARFAOUI ([email protected])

    4

    Parcours des instructions

    Correspondà la règle ?

    Autoriser ou refuser ?

    D’autresrègles explicites

    existes ?

    OUI

    NON

    OUI

    NON

    Passer à la règle suivante

    Paquet Transmission à la file d’attente

    Autoriser

    Refuser

    Une ACL est un groupe d’instructions séquentielles qui définissent si les paquets sont acceptés ou rejetés au niveau des interfaces d’entrée et de sortie.

  • 3

    © Mohammed EL HARFAOUI ([email protected])

    5

    ACL et Routage

    Les ACLs appliquées à une interface d’entrée (inbound) filtre les pacquetsavant les decisions de routage (avant d’être routés vers l’interface de sortie).

    Les ACLs appliquées à une interface de sortie (outbound) filtre les packets après les decisions de routage.

    © Mohammed EL HARFAOUI ([email protected])

    6

    Principes fondamentaux

    ACL (Access Control List) Liste séquentielle d’instructions Filtrage des paquets

    1 ACL maximum par Protocole , par Interface et par Direction

    Autrement dit : pour un protocole donné, une interface d’un routeur peut avoir au maximum deux ACLs: Une ACL en entrée de l’interface (inbound traffic) Une ACL en sortie de l’interface (outbound traffic)

    Filtrage Autoriser ou interdire En entrée ou en sortie

  • 4

    © Mohammed EL HARFAOUI ([email protected])

    7

    Principes fondamentaux

    Exemple du schéma ci-dessous : avec deux interfaces et trois protocole, le routeur peut avoir un total de 12 ACL distinctes.

    Les instructions d’une ACL sont toujours parcourues séquentiellement de la première à la dernière.Si une correspondance est trouvée, la suite des instructions de l’ACL

    (s’elles y on a ) est ignorée.Si aucune correspondance n’est trouvée te trafic est rejeté L’instruction implicite (deny) est utilisée

    © Mohammed EL HARFAOUI ([email protected])

    8

    Critères spécifiables dans une ACL

    Les critères de filtrage qui peuvent être spécifiés dans une ACL sont:

    Adresses IP sources

    Adresses IP de destination

    Numéros de ports (couche de Transport)

    Protocoles utilisés (couches de Transport et Application)

  • 5

    © Mohammed EL HARFAOUI ([email protected])

    9

    Types d’ACLs

    ACL standard ACL étendue (Extended)

    Segment header

    (TCP or UDP)Data

    Packet(IP header)

    Frame Header(Ethernet, HDLC,PPP,…)

    DestinationAddress

    SourceAddress

    Protocol

    PortNumber

    Règles de testPermit

    or Deny

    © Mohammed EL HARFAOUI ([email protected])

    10

    Types d’ACLs

    ACL standard

    Se base uniquement sur les adresses IP sources

    Numérotée (Identifiable par un numéro entre 1-99 ou 1300-1999)

    Nommée (Identifiable par un nom alphanumérique)

    ACL étendue (Extended ACL)

    Se base sur les adresses IP sources et destination, les type de

    protocoles et les numéros de ports sources et destination.

    Numérotée (Identifiable par un numéro entre 100-199 ou 2000-2699)

    Nommée (Identifiable par un nom alphanumérique)

  • 6

    © Mohammed EL HARFAOUI ([email protected])

    11

    Numéros d’ACL

    Plage de numéros Type d’ACL associé

    1 à 99 1300 à 1999 Standard pour IP

    100 à 1992000 à 2699 Etendue pour IP

    600 à 699 AppleTalk

    800 à 899 Standard pour IPX

    900 à 999 Etendue pour IPX

    1000 à 1099 IPX/SAP

    © Mohammed EL HARFAOUI ([email protected])

    12

    ACLs Standards- Numérotées- Nommées

  • 7

    © Mohammed EL HARFAOUI ([email protected])

    13

    Configuration des ACLs numérotées

    La configuration se fait en 2 étapes :1. Création de l’ACL

    2. Application de l’ACL sur une interface ou sur une line tty (line)

    access-group : pour les interfaces (interface)access-class : pour les consoles tty (line)

    Router(config)# access-list aclNnumber {permit | deny} {test conditions}

    Router(config-if)# { protocol } access-group aclNnumber {in|out}

    Router(config-line)# access-group aclNnumber {in|out}

    © Mohammed EL HARFAOUI ([email protected])

    14

    ACL standard nommée: Exemple

    R1(config)# access-listR1(config)# access-list 50 permit 172.16.0.0 0.0.255.255

    Refuserou

    autoriser

    Masque générique

    Pas de masque générique : par défaut 0.0.0.0

    50 deny 172.16.1.1

    Nombre compris entre 1 et 99,ou entre 1300 et1999 (IOS recent)

    c’est une ACL standard

    La première ligne refuse l’accès à l’adresse IP 172.16.1.1

    La deuxième ligne autorise l’accès à toute une plage d’adresses qui est

    définie par le masque générique (wildcard mask) 0.0.255.255

    Cela signifie que tout le subnet 172.16.0.0/16 est autorisé

  • 8

    © Mohammed EL HARFAOUI ([email protected])

    15

    Configuration des ACLs nommées

    La configuration se fait en 2 étapes :1. Création de l’ACL

    2. Application de l’ACL sur une interfaceRouter(config-if)#{ protocol } access-group ACL_NAME {in | out}

    access-group : pour les interfaces (interface)access-class : pour les consoles tty (line)

    Router(config)# ip access-list standard ACL_NAME

    Router(config-std-nacl)# [permit | deny | remark] { source [Source-wildcard]} [log]

    Router(config-line)#{ protocol } access-class ACL_NAME {in | out}

    © Mohammed EL HARFAOUI ([email protected])

    16

    Vérification d’une ACL

  • 9

    © Mohammed EL HARFAOUI ([email protected])

    17

    Masque générique (Wildcard Mask)

    Un masque générique est un masque de 32 bits divisés en quatre octets

    (Notation décimale pointée) et qui jumelé à une adresse IP.

    Intérêt

    Identifier des plages d’adresses et spécifie ce qui doit être autorisé/refusé

    Signification

    "0" binaire = vérifiez la correspondance (doit correspondre)

    "1" binaire = Ignorez la correspondance (peut varier)

    © Mohammed EL HARFAOUI ([email protected])

    18

    Comment utiliser les bits du masque générique

    0 signifie "vérifier le bit correspondant" (match) 1 signifie "ignorer le bit correspondant" (don’t care)

    do not check address (ignore bits in octet)=1 1 1 1 1 1 1 1

    Position des bits dans l’octet

    =0 0 1 1 1 1 1 1 ignore last 6 address bits

    128 64 32 16 8 4 2 1

    =00 0 0 0 0 0 0check all address bits

    (match all)

    =0 0 0 0 1 1 1 1 ignore last 4 address bits

    =1 1 1 1 1 1 0 0 check last 2 address bits

    Examples

  • 10

    © Mohammed EL HARFAOUI ([email protected])

    19

    Comment utiliser les bits du masque générique

    Par rapport à un masque de sous-réseau

    Inverse binaire En notation décimale pointée = Complément à 255 du masque de sous-réseau

    correspondant

    Masque desous-réseau

    255.255.224.0 1111 1111.1111 1111.1110 000.0000 0000

    Masquegénérique

    0.0.31.255 0000 0000.0000 0000.0001 111.1111 1111

    255 255 255 255224255255 . . .

    . . .

    . . .00

    255310

    -

    =

    Masque de sous-réseau Masque générique

    © Mohammed EL HARFAOUI ([email protected])

    20

    Comment utiliser les bits du masque générique

    Condition ACL: Verifier les subnets IP 172.30.16.0/24 à172.30.31.0/24

    Adresse et masque générique : 172.30.16.0 0.0.15.255

    Network .host172.30.16. 0172.30.31. 0

    16 = 0 0 0 1 0 0 0 017 = 0 0 0 1 0 0 0 118 = 0 0 0 1 0 0 1 0… = ……………………………………………….31 = 0 0 0 1 1 1 1 1

    0 0 0 0 1 1 1 1Wildcard mask :|||

    8 7 6 5 4 3 2 1

    0 : doit correspondre (match) 1 : peut varier (don’t care)

  • 11

    © Mohammed EL HARFAOUI ([email protected])

    21

    Masque générique : Ecritures spécifiques

    Keyword any : Wildcard =255.255.255.255 IP =0.0.0.0 any remplace 255.255.255.255 dans le masque générique (et 0.0.0.0

    dans l’adresse IP).

    Keyword host : remplace 0.0.0.0 dans le masque générique. host a.b.c.dWildcard 0.0.0.0 Wildcard mask= 0.0.0.0 1 seule adresse

    0.0.0.0

    255.255.255.255 (ignorer tout)

    Any IP address

    Wildcard mask=

    172.30.16.29

    0.0.0.0 (verifier tout les bits)

    Exemple : une adresse IP de hôte, :

    Wildcard mask=

    © Mohammed EL HARFAOUI ([email protected])

    22

    Masque générique : Exemples

    Condition ACL: Vérifier les subnets IP 192.168.32.0/24 à 192.168.39.0/24

    Puisque les cinq premiers bits correspondent, les huit réseaux peuvent être récapitulés en un réseau (192.168.32.0/21 ou 192.168.32.0 255.255.248.0).

    le masque générique correspondant est : 0.0.7.255 (255.255. 255.255 - 255.255.248.0) access-list 15 permit ip 192.168.32.0 0.0.7.255

    32 = 0 0 1 0 0 0 0 033 = 0 0 1 0 0 0 0 134 = 0 0 1 0 0 1 0 035 = 0 0 1 0 0 0 1 136 = 0 0 1 0 0 1 0 037 = 0 0 1 0 0 1 0 138 = 0 0 1 0 0 1 1 039 = 0 0 1 0 0 1 1 1

    M M M M M D D D

  • 12

    © Mohammed EL HARFAOUI ([email protected])

    23

    Masque générique : Exemples

    Condition ACL: Vérifier les subnets IP 192.168.146.0/24 à 192.168.149.0/24

    Puisque les cinq premiers bits correspondent, les huit réseaux peuvent être récapitulés en un réseau 192.168.144.0/21.

    Ce réseau récapitulé, 192.168.144.0/21, couvre une plage de réseaux comprise entre 192.168.144.0 et 192.168.151.0. Parmi ces derniers, les réseaux 192.168.144.0, 192.168.145.0, 192.168.150.0 et 192.168.151.0 ne sont pas dans la liste des quatre réseaux donnée.

    146 = 1 0 0 1 0 0 1 0147 = 1 0 0 1 0 0 1 1148 = 1 0 0 1 0 1 0 0149 = 1 0 0 1 0 1 0 1

    M M M M M D D D

    © Mohammed EL HARFAOUI ([email protected])

    24

    Masque générique : Exemples

    Afin de couvrir les réseaux spécifiques en question, on a besoin d'un minimum de deux réseaux récapitulés.

    Les quatre réseaux donnés peuvent être récapitulés dans ces deux réseaux :Pour les réseaux 192.168.146.0/24

    et 192.168.147.0/24, tous les bits correspondent à l'exception du dernier, qui est à « ignorer ». Il peuvent être écrit comme 192.168.146.0/23 (ou 192.168.146.0 255.255.254.0).Pour les réseaux 192.168.148.0/24 et 192.168.149.0/24, tous les bits correspondent à l'exception du

    dernier, qui est à « ignorer ». Il peuvent être écrit comme 192.168.148.0/23 (ou 192.168.148.0 255.255.254.0).

    192.168.146.0/23 et 192.168.146.0/23 masque générique 0.0.1.255 (255.255. 255.255 - 255.255.254.0)

    access-list 10 permit 192.168.146.0 0.0.1.255 access-list 10 permit 192.168.148.0 0.0.1.255

    146 = 1 0 0 1 0 0 1 0147 = 1 0 0 1 0 0 1 1148 = 1 0 0 1 0 1 0 0149 = 1 0 0 1 0 1 0 1

    M M M M M D D D

  • 13

    © Mohammed EL HARFAOUI ([email protected])

    25

    Précautions à prendre et Règles de base à respecter

    Les règles de base suivantes doivent être respectées lors de la création et de l’application des ACLs : Une ACL par protocole, par interface et par direction. Les ACLs standard doivent être appliquées le plus près possible de la

    destination. Les ACLs étendues doivent être appliquées le plus près possible de la

    source. Pour faire référence à une interface d’entrée ou de sortie, placez-vous à

    l’intérieur du routeur en regardant l'interface en question. Les instructions sont traitées séquentiellement jusqu’à la fin de listeSi une correspondance est trouvée, la suite des instructions de l’ACL est ignorée.

    Si aucune correspondance n’est trouvée, l’instruction implicite (deny) est appliquée.

    © Mohammed EL HARFAOUI ([email protected])

    26

    Précautions à prendre et Règles de base à respecter (suite)

    Il existe un refus implicite deny any à la fin de toutes les ACLs. Cela n’apparaît pas dans la liste de configuration. Vous devez avoir au moins une instruction d'autorisation dans une ACL

    ou tout le trafic sera bloqué.Les entrées d’une ACL doivent filtrer les paquets dans l’ordre, du plus

    spécifique au plus général. Les hôtes spécifiques doivent être rejetés/autorisés en premier, tandis que les filtres généraux viennent en dernier.La condition de correspondance est examinée en premier. L’acceptation

    ou le refus est examiné UNIQUEMENT si la condition est vraie. Ne travaillez jamais (interactivement) avec une ACL qui est appliquée de

    manière active. Utilisez des commentaires indiquant la logique, puis ajoutez les instructions

    correspondantes.

  • 14

    © Mohammed EL HARFAOUI ([email protected])

    27

    Précautions à prendre et Règles de base à respecter (suite)

    La commande no access-list x supprime toute la liste.Soyez particulièrement attentif lorsque vous supprimez une liste d’accès. Si la liste d’accès est appliquée à une interface de production et que vous la supprimez, selon la version de l’IOS, une instruction deny any peut être appliquée par défaut à l’interface et tout le trafic peut être arrêté.

    Les filtres de sortie ne concernent pas le trafic généré par le routeur local. Une liste d’accès IP envoie un message ICMP ‘Host Unreachable’ (hôte

    inaccessible) à l’émetteur du paquet lorsque celui ci est rejeté.Testez vos listes de contrôle d’accès sur un réseau d’essai avant de les

    implémenter sur un réseau de production.Les ACL doivent être crées conformément à la stratégie de sécurité

    de l’entreprise.

    © Mohammed EL HARFAOUI ([email protected])

    28

    ACL Standard numérotée : Exemple 1

    Permettre uniquement le trafic du réseau 172.16.0.0 .Autre traffic est bloqué.

    172.16.3.0/24 172.16.4.0/24

    172.16.4.13E0S0

    E1

    172.16.0.0/16

    Router(config)# access-list 1 permit 172.16.0.0 0.0.255.255(implicit deny all - not visible in the list)(access-list 1 deny 0.0.0.0 255.255.255.255)

    Router(config)# interface Ethernet 0Router(config-if)# ip access-group 1 outRouter(config)# interface Ethernet 1Router(config-if)# ip access-group 1 out

  • 15

    © Mohammed EL HARFAOUI ([email protected])

    29

    ACL Standard numérotée : Exemple 2

    Rejeter le trafic du hôte 172.16.4.13 et permettre tout autre traffic d’être acheminer via l’interface Ethernet 0

    172.16.3.0 172.16.4.0

    172.16.4.13E0S0

    E1

    172.16.0.0/16

    Router(config)# access-list 1 deny 172.16.4.13 0.0.0.0(Or Router(config)# access-list 1 deny host 172.16.4.13)Router(config)# access-list 1 permit 0.0.0.0 255.255.255.255(implicit deny all)(access-list 1 deny 0.0.0.0 255.255.255.255)

    Router(config)# interface ethernet 0Router(config-if)# ip access-group 1 out

    © Mohammed EL HARFAOUI ([email protected])

    30

    172.16.3.0/24 172.16.4.0/24

    172.16.4.13E0S0

    E1

    172.16.0.0/16

    Router(config)# access-list 1 deny 172.16.4.0 0.0.0.255Router(config)# access-list 1 permit any

    (implicit deny all - not visible in the list)(access-list 1 deny 0.0.0.0 255.255.255.255)

    Router(config)# interface Ethernet 0Router(config-if)# ip access-group 1 out

    ACL Standard numérotée : Exemple 3

    Rejeter le trafic initié à partir du réseau 172.16.4.0/24 et permettre tout autre trafic

  • 16

    © Mohammed EL HARFAOUI ([email protected])

    31

    ACL Standrd nommée : Exemple

    R1(config)# ip access-list standard NO_ACCESSR1(config-std-nacl)# deny host 192.168.11.10R1(config-std-nacl)# permit 192.168.11.0 0.0.0.255 R1(config-std-nacl)# Interface Fa0/0R1(config-if)# ip access-group NO_ACCESS out

    © Mohammed EL HARFAOUI ([email protected])

    32

    Question1

    Créez une liste d'accès qui refuse l'accès à tous les hôtes du réseau 172.16.1.0/24. Autorise l'accès à tous les autres hôtes. Choisissez une interface et appliquez-lui la liste d'accès dans la direction sortante.

    Router(config)# access-list 2 deny 172.16.1.0 0.0.0.255 Router(config)# access-list 2 permit anyRouter(config)# Interface ethernet 0 Router(config-if)# ip access-group 2 out

  • 17

    © Mohammed EL HARFAOUI ([email protected])

    33

    Question2

    Créez une liste d'accès qui refuse l'accès aux hôtes du réseau 172.16.0.0/16. Autorise l'accès à l’hôte 172.16.1.1. Choisissez une interface et appliquez-lui la liste d'accès dans la direction sortante.

    Router(config)# access-list 2 deny 172.16.0.0 0.0.255.255 Router(config)# access-list 2 permit host 172.16.1.1 Router(config)# Interface ethernet 0 Router(config-if)# ip access-group 2 out

    © Mohammed EL HARFAOUI ([email protected])

    34

    Question3

    Créez une liste d'accès qui permet l'accès uniquement au réseau 172.0.0.0/8. Choisissez une interface et appliquez-lui la liste d'accès dans la direction sortante.

    Router(config)# access-list 2 permit 172.0.0.0 0.255.255.255 Router(config)# Interface ethernet 0 Router(config-if)# ip access-group 2 out

  • 18

    © Mohammed EL HARFAOUI ([email protected])

    35

    Modification d’une ACL standard: 1er option

    Pour faire une modification1. Copier/coller dans un éditeur

    de texte (‘show run’)2. Effectuer les modifications

    voulues 3. Supprimer l’ACL du routeur

    (‘no access-list’)4. Insérer (coller) les nouvelles

    instructions dans le routeur (recréer l’ACL)

    Note: Pour supprimer complètement une ACL: 1) Désactiver l’ACL de l’interface ( no ip access-group (ou no access-class ) ).2) Désactiver l’ACL du routeur avec no access-list numACL (ou no ip access-list standard

    nameACL).

    © Mohammed EL HARFAOUI ([email protected])

    36

    Modification d’une ACL standard: 2eme option

    Pour modifier une ACL1. Afficher le contenu de l’ACL (à travers ‘show access-list’)2. Effectuer les modifications voulues

    3. Supprimer les entrées de l’ACL via la commande ‘no’ et lenuméro de séquence de l’entrée.

    4. Insérer les nouvelles instructions dans l’ACL à l’emplacement voulue.

  • 19

    © Mohammed EL HARFAOUI ([email protected])

    37

    Pratique1

    Autoriser uniquement le sous-réseau 192.168.10.0/24 à sortir

    R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# Interface s0/0/0R1(config)# ip access-group 1 out

    © Mohammed EL HARFAOUI ([email protected])

    38

    Pratique2

    Refuser l’accès de sortir à l’hôte 192.168.10.10/24

    R1(config)# access-list 1 deny 192.168.10.10 0.0.0.0R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# Interface s0/0/0R1(config -if)# ip access-group 1 out

  • 20

    © Mohammed EL HARFAOUI ([email protected])

    39

    Pratique3

    Refuser l’accès de sortir uniquement au sous-réseau 192.168.10.0/24

    R1(config)# access-list 1 deny 192.168.10.0 0.0.0.255R1(config)# access-list 1 permit 192.168. 0.0 0.0.255.255 R1(config)# Interface s0/0/0R1(config -if)# ip access-group 1 out

    © Mohammed EL HARFAOUI ([email protected])

    40

    Contrôle d’accès pour les lignes VTY (telnet & ssh)

    La commande access-class limite les connexions entrantes et sortantes entre une ligne VTY donnée et les adresses IP dans une ACL.

    Remarque 1: Les ACLs (standard et étendues) s’appliquent aux paquets traversant un routeur. Elles ne sont pas destinées à bloquer les paquets créés sur le routeur. Par défaut, une ACL étendue pour le trafic Telnet sortant n’empêche pas le routeur de lancer des sessions Telnet.

    Remarque 2: Seules les ACLs numérotées peuvent être appliquées aux lignes VTY.

  • 21

    © Mohammed EL HARFAOUI ([email protected])

    41

    Contrôle d’accès pour les lignes VTY (telnet & ssh)

    Autoriser le réseau 192.168.10.0 à accéder aux lignes VTY 0 - 4. L’accès aux lignes VTY est refusé à tous les autres réseaux.

    Router(config)# access-list 1 permit 192.168.10.0 0.0.0.255R1(config)# access-list 1 deny anyR1(config)# line vty 0 4R1(config-line)# loginR1(config-line)# password ciscoR1(config-line)# access-class 1 in

    © Mohammed EL HARFAOUI ([email protected])

    42

    ACLs Etendues- Numérotées- Nommées

  • 22

    © Mohammed EL HARFAOUI ([email protected])

    43

    ACL étendue

    Filtrage plus précis qu’une ACL standard Plus de contrôle ACL basée sur l’adresse source, l’adresse de destination, le protocole et

    le numéro de port.

    Syntaxe simplifiée (Pour une ACL numérotée)

    Router(config)# access-list NumACL { permit | deny | remark }

    protocol source source-wildcard [operator operand] [port

    portNumber] destination destination-wildcard [operator

    operand] [port portNumber] [ established ] [log]

    © Mohammed EL HARFAOUI ([email protected])

    44

    Syntaxe simplifiée (Pour une ACL numérotée)

    NumACL : un nombre entre 100 et 199 ou 2000 et 2699. permit | deny : autoriser ou bloquer les adresses respectant les critères spécifiés. remark : Utilisée pour entrer une remarque (Par exemple indique si cette entrée autorise ou

    bloque l’adresse spécifiée). protocol : Nom ou numéro d’un protocole Internet. Les mots clés communs comprennent icmp, ip,

    tcp ou udp. Pour faire correspondre un protocole Internet quelconque (y compris les protocoles ICMP, TCP et UDP), utilisez le mot clé ip.

    source: Réseau ou hôte d’où provient le paquet. source-wildcard: Bits de masque générique à appliquer à la source. destination: Réseau ou hôte auquel le paquet est envoyé. destination -wildcard: Bits de masque générique à appliquer à la destination. operator: (Facultatif) Compare le port source et/ou le port de destination. Les opérateurs éventuels

    sont les suivants : lt (inférieur à), gt (supérieur à), eq (égal), neq (non égal) et range (plage inclusive)

    port:(Facultatif) Numéro décimal ou nom d’un port TCP ou UDP. established: (Facultatif) Pour le protocole TCP uniquement : indique une connexion établie. log :(Facultatif) Déclenche la journalisation de l’ACL lorsqu’une correspondance est trouvée

  • 23

    © Mohammed EL HARFAOUI ([email protected])

    45

    ACL étendue – Syntaxe

    Router(config)# access-list access-list-number [dynamic dynamic-name

    [timeout minutes]] {deny | permit} protocol source source-wildcard

    destination destination-wildcard [precedence precedence] [tos tos] [log |

    log-input] [time-range timer-ange-name] icmp-type icmp-code icmp-

    message igmp-type [operator operand] [port port number or name]

    [established] [fragments]

    © Mohammed EL HARFAOUI ([email protected])

    46

    ACL étendue : Remarques

    protocole IP, TCP, UDP, ICMP, IGMP, GRE, IGRP, EIGRP, OSPF, etc. Ou numéro

    de protocole (de 0 à 255) opérateur/opérandePour TCP et UDP uniquementCompare les numéros de ports

    Pour la source et/ou la destination

    establishedUniquement avec TCPCorrespond aux sessions TCP déjà établies

    opérateur Significationeq Egal à

    neq Différent delt Inférieur àgt Supérieur à

    range Entre (nécessite 2 numéros de port)

  • 24

    © Mohammed EL HARFAOUI ([email protected])

    47

    ACL étendue : Exemple d’utilisation

    access-list 101 permit ip host 10.0.0.1 anyaccess-list 101 deny ip 10.0.0.0 0.0.0.255 anyaccess-list 101 deny tcp host 172.16.6.1 192.168.1.0 0.0.0.255 eq 23access-list 101 permit tcp 172.16.6.0 0.0.0.255 any eq telnet

    1. autorise tout le trafic IP venant de l’hôte 10.0.0.1, quelle que soit la destination

    1.

    2.3.4.

    2. refuse le trafic venant du réseau 10.0.0.0/24, quelle que soit la destination 3. interdit à l’hôte 172.16.6.1 (only) l’accès telnet au réseau 192.168.1.0/244. autorise tous les hôtes du réseau 172.16.6.0/24 à utiliser telnet vers tous les

    réseaux

    Protocole Source Destination Porteq : equal

    © Mohammed EL HARFAOUI ([email protected])

    48

    ACL étendue : Exemple d’utilisation

  • 25

    © Mohammed EL HARFAOUI ([email protected])

    49

    ACL étendue : Génération des numéros de port

    © Mohammed EL HARFAOUI ([email protected])

    50

    L’ACL 101 autorise des requêtes TCP depuis le réseau 192.168.10.0 vers les ports 80 et 443 (HTTP & HTTPS)

    L’ACL 102 autorise des réponses HTTP & HTTPS établies.

    ACL étendue : Exemple d’utilisation 1

    R1(config)# ip access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq 80R1(config)# ip access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq 443R1(config)# ip access-list 102 permit tcp any 192.168.10.0 0.0.0.255 established

  • 26

    © Mohammed EL HARFAOUI ([email protected])

    51

    ACL étendue : Application de l’ACL

    R1(config)# interface S0/0/0R1(config-if)# ip access-group 101 outR1(config-if)# ip access-group 102 in

    © Mohammed EL HARFAOUI ([email protected])

    52

    Router(config)# access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21Router(config)# access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20Router(config)# access-list 101 permit ip 172.16.4.0 0.0.0.255 0.0.0.0 255.255.255.255(implicit deny all)(Router(config)# access-list 101 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.25

    Router(config-if)# interface ethernet 0Router(config-if)# ip access-group 101 out

    172.16.3.0 172.16.4.0

    172.16.4.13E0S0

    E1

    172.16.0.0

    ACL étendue – Exemple 2

    Interdire le trafic FTP originaire du réseau 172.16.4.0 vers le réseau 172.16.3.0 via l’interface E0

    Autoriser tout autre trafic

  • 27

    © Mohammed EL HARFAOUI ([email protected])

    53

    ACL étendue – Exemple 3

    Interdire uniquement Telnet à partir 172.16.4.0 out of E0 Permettre tout autre trafic

    172.16.3.0 172.16.4.0

    172.16.4.13E0S0

    E1

    Non-172.16.0.0

    Router(config)# access-list 102 deny tcp 172.16.4.0 0.0.0.255 any eq 23Router(config)# access-list 102 permit ip any any

    (implicit deny all)(Router(config)# access-list 102 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255)

    Router(config-if)# interface ethernet 0Router(config-if)# ip access-group 102 out

    © Mohammed EL HARFAOUI ([email protected])

    54

    ACL étendue – Exemple 4

    Autoriser uniquement le trafic SMTP (mail) de sortir via E0Tout autre trafic est interdit

    172.16.3.0 172.16.4.0

    172.16.4.13E0S0

    E1

    Non-172.16.0.0

    Router(config)# access-list access-list 103 permit tcp 172.16.4.0 0.0.0.255 any eq 25

    (implicit deny all)(Router(config)# access-list 103 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255)

    Router(config-if)# interface ethernet 0Router(config-if)# ip access-group 103 out

  • 28

    © Mohammed EL HARFAOUI ([email protected])

    55

    Vérification des ACLs

    show access-lists

    Affiche toutes les ACL du routeur

    show access-lists {name | number}

    Affiche une ACL en particulier

    show running-config

    Affiche toutes les ACL et à quelles interfaces elles sont appliquées

    © Mohammed EL HARFAOUI ([email protected])

    56

    Vérification des ACLs

    Suppression d’une ACL (en mode de configuration globale) no access-list {numéro | nom}

    Visualiser les ACL qui sont appliquées a cette interface, et leur sensd’application:show ip interface [{type} {numéro}]

    Lab_A#show ip interface FastEthernet 0/0FastEthernet0/0 is up, line protocol is up Internet address is 20.0.0.1/8 Broadcast address is 255.255.255.255 Address determined by setup command MTU is 1500 bytes Helper address is not set Directed broadcast forwarding is disabled Outgoing access list is 101 Inbound access list is 1--More--

  • 29

    © Mohammed EL HARFAOUI ([email protected])

    57

    Router#show ip interfaceEthernet 0 is up, line protocol is upInternet address is 192.54.222.2, subnet mask is 255.255.255.0Broadcast address is 255.255.255.255Address determined by non-volatile memoryMTU is 1500 bytesHelper address is 192.52.71.4Secondary address 131.192.115.2, subnet mask 255.255.255.0Outgoing access list 10 is setInbound access list is not setProxy ARP is enabledSecurity level is defaultSplit horizon is enabledICMP redirects are always sentICMP unreachables are always sentICMP mask replies are never sentIP fast switching is enabledGateway Discovery is disabledIP accounting is disabledTCP/IP header compression is disabledProbe proxy name replies are disabledRouter#

    Vérification des ACLs

    © Mohammed EL HARFAOUI ([email protected])

    58

    Vérification des ACLs

    Router#show {protocol} access-list {access-list number}

    Router#show access-lists {access-list number}

    Router> show access-listsStandard IP access list 19

    permit 172.16.19.0 deny 0.0.0.0, wildcard bits 255.255.255.255

    Standard IP access list 49 permit 172.16.31.0, wildcard bits 0.0.0.255permit 172.16.194.0, wildcard bits 0.0.0.255 permit 172.16.195.0, wildcard bits 0.0.0.255permit 172.16.196.0, wildcard bits 0.0.0.255permit 172.16.197.0, wildcard bits 0.0.0.255

    Extended IP access list 101permit tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 23

    Type code access list 201permit 0x6001 0x0000

    …..Router>

  • 30

    © Mohammed EL HARFAOUI ([email protected])

    59

    Vérification des ACLs

    © Mohammed EL HARFAOUI ([email protected])

    60

    Pratique 5

    Refuser le trafic FTP pour depuis le réseau 164.168.12.0/24 vers le réseau164.168.11.0/24.

    Router(config)# access-list 101 deny tcp 164.168.12.0 0.0.0.255 164.168.11.0 0.0.0.255 eq 21 Router(config)# access-list 101 deny tcp 164.168.12.0 0.0.0.255 164.168.11.0 0.0.0.255 eq 20 Router(config)# access-list 101 permit ip any anyR1(config)# interface Fa0/0R1(config-if)# ip access-group 101 in

  • 31

    © Mohammed EL HARFAOUI ([email protected])

    61

    ACL nommée étendue

    Identification de l’ACL par une chaîne alphanumérique au lieu d’un numéro IntérêtIdentifier facilement une ACL avec un nom au lieu d’un numéroPossibilité de supprimer ou ajouter une instruction particulièrePas besoin de tout supprimer comme avec les ACL numérotées

    Mode de configuration d’ACL nommée étendue(config-ext-nacl)#

    Exemple:

    © Mohammed EL HARFAOUI ([email protected])

    62

    Dépannage d’erreurs relatives aux ACLs

  • 32

    © Mohammed EL HARFAOUI ([email protected])

    63

    Dépannage d’erreurs relatives aux ACLs

    © Mohammed EL HARFAOUI ([email protected])

    64

    Dépannage d’erreurs relatives aux ACLs

  • 33

    © Mohammed EL HARFAOUI ([email protected])

    65

    Dépannage d’erreurs relatives aux ACLs

    © Mohammed EL HARFAOUI ([email protected])

    66

    Dépannage d’erreurs relatives aux ACLs

  • 34

    © Mohammed EL HARFAOUI ([email protected])

    67

    ACLs Complexes

    Les listes de contrôle d’accès standard et étendues peuvent être la base d’ACL complexes, qui fournissent des fonctions supplémentaires.

    Le tableau suivant résume les trois catégories d’ACLs complexes.

    ACLs complexes DescriptionACL dynamiques (lock-and-key ACLs)

    Les utilisateurs sont bloqués tant qu’ils n’utilisent pas Telnet/SSH pour se connecter et s’authentifier au routeur.Une fois authentifiés une entrée est ajouté dynamiquement à l’ACL.

    ACL réflexives (ReflexiveACLs)

    Autorisent le trafic sortant et limitent le trafic entrant uniquement en réponse aux sessions provenant du routeur lui-même.

    ACL basées sur le temps (Time-based ACLs)

    Autorisent le contrôle d’accès en fonction du temps (heure, jour et semaine).

    © Mohammed EL HARFAOUI ([email protected])

    68

    ACLs dynamiques

    Les ACL classiques utilisent l’adresse IP pour déterminer quelles machines communiquent, mais il n’y a pas de vérification de l’identité de l’utilisateur lui-même

    Pour les ACLs dynamiques l’utilisateur doit d’abord s’identifier via:

    Un nom d’utilisateur

    Un mot de passe

    Avec les ACLs dynamiques , on peut spécifier quel utilisateur peut accéder à des ressources (définies en @IP et n° de port), en spécifiant depuis quels hôtes il a le droit de le faire.

    On peut ainsi donner un accès dynamique à un utilisateur à travers un firewall, sans compromettre les autres restrictions de sécurité.

  • 35

    © Mohammed EL HARFAOUI ([email protected])

    69

    ACLs dynamiques

    Une ACL dynamique ou ACL Lock-and-key (verrou) utilise :Une connexion Telnet (ou ssh)L’authentification locale ou distante (TACACS+ ou RADIUS) Une ACL étendue.

    La configuration d’une ACL dynamique comprend donc:La création d’un compte utilisateurLa création et l’application d’une ACL étendue qui bloque le trafic spécifié

    traversant le routeur (le trafic qu’on veut bloquer). Les utilisateurs souhaitant traverser le routeur sont bloqués par cette ACL tant

    qu’ils ne se connectent pas au routeur via Telnet et tant qu’ils n’ont pas été authentifiés.

    © Mohammed EL HARFAOUI ([email protected])

    70

    ACL dynamiques

    Une fois les utilisateurs authentifiés: La connexion Telnet est abandonnée (fermée). Une entrée unique est ajoutée dynamiquement à l’ACL étendue existante

    Le trafic est alors autorisé pour une durée déterminée (possibilité de limiter la durée de l’autorisation de connexion).

  • 36

    © Mohammed EL HARFAOUI ([email protected])

    71

    S0/0/1

    ACLs dynamiques : Exemple

    Autoriser un administrateur sur PC1 à obtenir un accès momentané au réseau (192.168.30.0 /24) via le routeur R3.

    Pour faciliter cette tâche, une ACL dynamique est configurée sur l’interface série S0/0/1 du routeur R3.

    © Mohammed EL HARFAOUI ([email protected])

    72

    ACL dynamique : Exemple avec authentification locale

    R3(config)# username admin password cisco

    R3(config)#access-list 101 permit tcp any host 10.2.2.2 eq telnetR3(config)#access-list 101 dynamic MyDynamicACL timeout 15 permit ip192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255

    R3(config)# interface s0/0/1R3(config-if)# ip address 10.2.2.2 255.255.255.252R3(config-if)# no shutR3(config-if)# ip access-group 101 in

    R3(config)# line vty 0 4R3(config-line)# login localR3(config-line)# autocommand access-enable timeout 5

    entrée dynamique qui autorise tout le trafic IPà partir du réseau 192.168.10.0/24 vers le réseau192.168.30.0/24

    l’authentification se fera en local

    Extanded ACL : autorisation du telnet sur l’interface du routeur ayant cette @IP

    définition d’un compte utilisateur avec mot de passe

    commande d’activation de la partie dynamique de l’ACL :• elle sera ajoutée après un telnet authentifié• elle restera dans l’ACL pendant 5 minutes

  • 37

    © Mohammed EL HARFAOUI ([email protected])

    73

    ACL dynamique : Démo

    © Mohammed EL HARFAOUI ([email protected])

    74

    ACLs réflexives

    Le filtrage par ACL réflexive consiste à générer une ACL dynamiquement en fonction du trafic sortant afin d’autoriser temporairement le retour.

    Les ACLs réflexives filtrent les paquets IP en fonction des informations de session des couches supérieures.

    Elle permettent d’autoriser un certain trafic, seulement s’il a été initié depuis l’intérieur du réseau.

    Fonctionnement similaire à celui de l’option established ( qui n’est valable que pour le protocole TCP).

    Les ACL réflexives permettent ce type de filtrage aussi bien avec le protocole TCP, qu’avec le protocole UDP et ICMP.

    Le routeur examine le trafic sortant. Lorsqu’il détecte une nouvelle connexion, il ajoute une entrée à une ACL provisoire pour autoriser les réponses.

  • 38

    © Mohammed EL HARFAOUI ([email protected])

    75

    ACLs réflexives

    Les ACL réflexives comprennent uniquement des entrées provisoires qui sont

    supprimées automatiquement à la clôture d’une session.

    Ces entrées sont créées automatiquement au lancement d’une nouvelle

    session IP (par exemple, avec un paquet sortant).

    Les ACL réflexives ne s’appliquent pas directement à une interface. Elles sont

    imbriquées dans une ACL IP étendue nommée appliquée à cette interface.

    Les ACL réflexives peuvent être utilisées avec d’autres ACLs statiques

    (étendues et standards).

    © Mohammed EL HARFAOUI ([email protected])

    76

    restrictions à l’utilisation des ACL réflexives

    Il y a deux restrictions à l’utilisation des ACL réflexives :Elles doivent être définies et utilisées uniquement dans une ACL IP

    étendue nommée.Ne fonctionne pas avec les applications qui changent de numéro de port

    en cours de session (par exemple FTP en mode actif). Le mode par défaut de FTP est le mode actif, dans ce mode : Le client ouvre une connexion de contrôle sur le port 21 du serveur. Quand le client demande des données le serveur utilise son port 20 pour lui envoyer. Le mode actif du protocole FTP est donc incompatible avec les ACLs réflexives.

  • 39

    © Mohammed EL HARFAOUI ([email protected])

    77

    ACLs réflexives : Exemple

    Exemple où on a besoin d’une ACL réflexive autorisant le trafic ICMP entrant et sortant, tout en autorisant uniquement le trafic TCP initié à l’intérieur du réseau. Tout autre trafic est refusé. L’ACL réflexive est appliquée (via une ACL étendue) à l’interface de sortie du routeur R2.

    © Mohammed EL HARFAOUI ([email protected])

    78

    ACL Réflexive: Démo

  • 40

    © Mohammed EL HARFAOUI ([email protected])

    79

    ACL Réflexive: Démo

    !! Forcer le routeur R2 à tracker (pister) le trafic IP autorisé !! et initié depuis l’intérieur!! Ce trafic sera pris en charge l’ACL dynamique ALLTRAFFIC R2(config)#ip access-list extended OUTBOUNDFILTERSR2(config-ext-nacl)# permit ip 164.168.20.0 0.0.0.255 anyreflect ALLTRAFFIC !! Créer une autre ACL étendue qui va évaluer le trafic de !! retour(Reflected traffic) pour voir s’il a été initié de !! l’intérieur.R2(config)#ip access-list extended INBOUNDFILTERSR2(config-ext-nacl)# evaluate ALLTRAFFIC!! Définir un ‘timeout’ globale R2(config)# ip reflexive-list timeout 180!! Appliquer les deux ACLs sur l’interface série du routeurR2(config)# interface fa0/0R2(config-if)# ip access-group OUTBOUNDFILTERS outR2(config-if)# ip access-group INBOUNDFILTERS in

    © Mohammed EL HARFAOUI ([email protected])

    80

    ACL à caractère temporel (Time-based ACL)

    Ce genre d’ACL permet d’interdire certains trafics pendant certaines périodes

    L’implémentation des ACLs basées sur le temps nécessite la création d’une

    plage horaire, qui définit certains moments de la journée et de la semaine.

    Identifiez la plage horaire par un nom (qui doit, de préférable, désigner un rôle

    ou une fonction).

    La référence de temps utilisée est l’horloge interne du routeur, il est dans ce

    cas intéressant d’utiliser le protocole NTP (Network Time Protocol ) pour bien

    synchroniser tous les équipements.

  • 41

    © Mohammed EL HARFAOUI ([email protected])

    81

    Exemple d’ ACL basée sur le temps

    Dans cet exemple, une connexion Telnet est autorisée depuis le réseau intérieur au réseau extérieur les lundis, mercredis et vendredis pendant les heures ouvrables. Etape 1. Définissez la plage horaire pour implémenter une ACL et appelez-la

    EVERYOTHERDAY.Etape 2. Appliquez la plage horaire à l’ACL.Etape 3. Appliquez l’ACL à l’interface.

    © Mohammed EL HARFAOUI ([email protected])

    82

    Autres utilisations des ACL

    En plus de leur fonction de filtrage des paquets (acceptation ou rejet), les ACL

    sont utilisées notamment :

    Dans la modification des règles NAT (Traffic will be Nated or Not)

    Dans la mise en œuvre des serveurs AAA

    Dans la mise en œuvre des VPN

    Dans la mise en œuvre de la Qualité de Service (QoS).

    Etc.

  • 42

    © Mohammed EL HARFAOUI ([email protected])

    83

    Common Reserved TCP/UDP Port Numbers

    Decimal Keyword Description20 FTP DATA File Transfer Protocol (data)21 FTP File Transfer Protocol22 SSH Secure Shell23 TELNET Terminal Connection25 SMTP Simple Mail Transfer Protocol53 DNS Domain Name Server69 TFTP Trivial File Transfer Protocol80 HTTP Hyper Text Transfer Protocol110 POP3 Post Office Protocol v3123 NTP Network Time Protocol161 SNMP Simple Network Management Protocol443 HTTPS Secure HTTP520 RIP Routing Information Protocol

    © Mohammed EL HARFAOUI ([email protected])

    84

    TD