Vous êtes sur la page 1sur 17

Introduction

Ce chapitre présente d’abord les principes de base des ACLs Ciso IOS. Ensuite,
quelques exemples de mise en oeuvre en IPv4 démontrent leur usage. Enfin, le
document se termine par un exposé sur les ACLs IPv6 en Cisco IOS.

1. ACLs

Une liste d’accès est un ensemble d’instructions basées sur des protocoles de
couche 3 et de couches supérieures pour contrôler le trafic.
La configuration des ACLs IPv4 et des ACLs IPv6 sont similaires mais aussi très
différentes.
Cette fonctionnalité Cisco IOS est utile pour :
 les fonctions de pare-feu
 le marquage du trafic, QoS
 les configurations NAT
 le contrôle des logs
 le contrôle des accès aux consoles virtuelles (VTY)
 le contrôle des informations de routage
 le contrôle du trafic SNMP, …

1.1 Deux types d’ACLs IPv4

Les deux types d’ACLs se distinguent en fonction des critères utilisés :


Une liste simple (standard) et l’autre plus complexe (étendue).
 Standard : uniquement adresse IPv4 source
 Étendue :
o protocole IPv4, ICMPv4, TCP, UDP, ESP, AH, … ou IPv6 et
supérieurs
o origine et destination
o ports ou types de messages
Les ACLs standard n’existent plus en IPv6.
 Liste d’accès standard
Router(config)#access-list numéro-liste-accès {deny|permit} adresse-
source [masque-source] [log]
 Liste d’accès étendue IPv4
Router(config)#access-list numéro-liste-accès {deny|permit} protocole
adresse-source masque-source [opérateur port] adresse-destination
masque-destination [opérateur port] [log]
Où protocole (IPv4) peut être :
 <0-255> An IP protocol number
 ahp Authentication Header Protocol
 eigrp Cisco’s EIGRP routing protocol
 esp Encapsulation Security Payload
 gre Cisco’s GRE tunneling
 icmp Internet Control Message Protocol
 igmp Internet Gateway Message Protocol
 ip Any Internet Protocol
 ipinip IP in IP tunneling
 ospf OSPF routing protocol

 tcp Transmission Control Protocol


 udp User Datagram Protocol
Où l’opérateur peut prendre les valeurs suivantes :
 lt (less than) : “moins que”.
 gt (greater than) : “plus que”.
 eq (equal) : “égal à”.
 neq (not equal) : “non équivalent”.
 range (inclusive range) : “étendue d’une plage”.
Où le paramètre “port” peut prendre une valeur nominative ou numéraire :
de 0 à 65535 ou, par exemple, www, telnet, ftp, etc.
1.2 ACLs numérotées

Les ACLs numérotées sont constituées d’un ensemble de règles :


 ordonnées selon la frappe
 ayant un même numéro
Pratique obsolète (en IPv6) dont le numéro indique la nature :
 IPv4 standard : 1 - 99 et 1300 - 1999
 IPv4 étendue : 100 - 199 et 2000 - 2699
Par exemple :
En configuration globale : (config)#
access-list 1 deny host 192.168.1.1
access-list 1 permit any
L’ACL standard 1 empêche seulement le trafic venant de l’hôte
192.168.1.100
Un autre exemple :
access-list 102 deny tcp any any eq 23
access-list 102 permit ip any any
L’ACL extended 102 empêche tout trafic vers le service Telnet et autorise
tout autre trafic IPv4.
Faut-il encore placer ces ACLs dans une fonction (filtrage, marquage,
règles NAT…)

1.3 ACL nommées

Les ACLs nommées se distinguent par un nom.


Il faut spécifier le type standard ou extended en IPv4.
Les ACLs IPv6 sont d’office “extended” de telle sorte que le paramètre
disparaît des commandes.
les règles s’incrémentent d’un numéro d’ordre (tous les 10). Cet ID permet
d’insérer des règles dans une liste.
(config)#ip access-list standard ACL_IPv4_STD
(config-std-nacl)#permit | deny ?
(config)#exit
(config)#ip access-list extended ACL_IPv4_EXT
(config-ext-nacl)#permit | deny ?
(config)#exit
(config)#ipv6 access-list ACL_IPv6
(config-ipv6-acl)#permit | deny ?
Par exemple :
(config)#ip access-list extended IPv4_LAN
(config-ext-nacl)#
permit tcp 192.168.0.0 0.0.255.255 any eq 80
permit tcp 192.168.0.0 0.0.255.255 any eq 443

#show access-lists
Extended IP access list IPv4_LAN
10 permit tcp 192.168.0.0 0.0.255.255 any eq www
20 permit tcp 192.168.0.0 0.0.255.255 any eq 443
1.4 Logique des ACLs appliquée sur les interfaces

Logique des ACLs appliquées sur les interfaces


Le routeur parcourt la liste d’accès et valide chaque règle jusqu’à

trouver une correspondance.


Si une correspondance est trouvée, le routeur prend la

décision permit ou deny correspondante. Il ne lit pas la suite de la


liste.

Une ACL se termine toujours par une règle deny any implicite.


On imagine aisément que plus il y a de règles à examiner, plus il y a

de la charge sur le matériel qui contrôle le trafic.

1.5 Masque Générique

Il ne faut pas confondre un masque générique (wilcard mask) avec un

masque de sous-réseau (subnet mask). Un masque générique est un


masque de filtrage.
Quand un bit aura une valeur de 0 dans le masque, il y aura
vérification de ce bit sur l’adresse IP de référence.

Lorsque le bit aura une valeur de 1, il n’y en aura pas.


Cette notion est utilisée dans les configurations OSPFv2 sous Cisco

IOS.
Masque de réseau

Un masque de réseau est un masque de division ou de regroupement.


Une addition booléenne d’une adresse IP et d’un masque de réseau

est utilisée pour distinguer la partie réseau de la partie hôte.


En binaire, alors qu’un masque de réseau est nécessairement une suite

homogène de 1 et puis de 0, un masque générique peut être une


suite quelconque de 1 et de 0 en fonction du filtrage que l’on veut

opérer sur des adresses IP.


Exemples de masque générique

Soit un masque générique 0.0.0.0 demande une correspondance


exacte de l’adresse IP de référence :
permit 192.168.59.2 0.0.0.0
Le mot-clé host remplace 0.0.0.0 :

permit host 192.168.59.1


255.255.255.255 filtre toutes les adresses IPv4.

permit 0.0.0.0 255.255.255.255


Le mot-clé any remplace 0.0.0.0 255.255.255.255

permit any
Filtrer 192.168.59.0/24

Réseau : 192.168.59.0 255.255.255.0


ACL : 192.168.59.0 0.0.0.255
Filtrer 192.168.2.40/30

Réseau : 192.168.2.40 255.255.255.252


ACL : 192.168.2.40 0.0.0.3

Masques de “summarization”
Filtrer tous les réseaux qui commencent en 192.168 :

ACL : 192.168.0.0 0.0.255.255


Numéros pairs sur le dernier octet du /24 :

ACL : 192.168.1.0 0.0.0.254


Numéros impairs sur le troisième octet :

ACL : 0.0.1.0 255.255.254.255

1.6 Applications

En soi, une ACL n’a pas de portée si elle n’est pas appliquée.
De manière non exhaustive, les ACLs trouvent une quantité d’applications en Cisco
IOS :
 Filtrage sans état de trafic de données sur des interfaces.
 Firewall (filtrage à état) sur des interfaces : ACL bloquante
 Filtrage de trafic de trafic de gestion (sur une ligne VTY).
 Trafic source dans une règle NAT (inside source list) pour désigner de
nombreuses adresses IP privées à traduire.
 Transfert de port
 Déboggage pour filtrer les sorties.
 … et bien d’autres en ingénérie du trafic (VPN, QoS, filtrage du routage,
routage à la demande, …).

1.7 Direction des ACLs de Filtrage

Les liste d’accès s’appliquent sur les interfaces :


 pour le trafic entrant sur l’interface, in
 pour le trafic sortant de l’interface, out
#show access-lists
Extended IP access list IPv4_LAN
10 permit tcp 192.168.0.0 0.0.255.255 any eq www
20 permit tcp 192.168.0.0 0.0.255.255 any eq 443
(config)#int f0/0
(config-subif)#ip access-group IPv4_LAN in

Combien d’ACLs de filtrage sur une interface ?


“Une seule ACL par interface par protocole par direction”
Cela signifie que l’on pourra appliquer au maximum pour chaque interface 4 ACLs :
 une ACL IPv4 in
 une ACL IPv4 out
 une ACL IPv6 in
 une ACL IPv6 out

1.8 Autres types d’ACLs

Ce document ne couvre pas d’autres types d’ACLs Cisco :


 ACLs established
 Reflexive ACLs
 Dynamic ACLs (sorte de Port Knocking)
 Time-based ACLs that use time ranges
 Authentication proxy
 Turbo ACLs
 Distributed time-based ACLs

2. Exemples de mise en œuvre ACLs IOS IPv4

 Refuser l’accès d’un hôte à un réseau


 Autoriser une plage contiguë d’adresses IP
 Autoriser l’accès d’un hôte à une interface
 Pare-simple CBAC
 Autoriser des Pings (ICMP)
 Autoriser le Web, le mail, FTP et SSH
 Autoriser le trafic DNS
 Autoriser le trafic de routage
 Déboggage du trafic
 Filtrage VTY (Telnet, SSH)
 Filtrage NTP
 Configurations NAT, PAT, transfert de ports (DNAT)
 Règles implicites en IPv6
 Filtrage IPv6
2.1. Refuser l’accès d’un hôte à un réseau

Refuser PC1 (192.168.59.3) d’accéder à Server (192.168.101.2) :

R1#show ip dhcp binding


Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.59.2 000c.298b.3f44 Mar 02 2015 12:08 AM Automatic
192.168.59.3 0100.5079.6668.00 Mar 02 2015 12:41 AM Automatic
192.168.101.2 000c.2995.6f42 Mar 02 2015 12:44 AM Automatic
R1(config)#ip access-list standard DENY_PC1_SERVER
R1(config-std-nacl)#deny host 192.168.59.2
R1(config-std-nacl)#exit
R1(config)#int f1/0
R1(config-if)#ip access-group DENY_PC1_SERVER out

2.2. Autoriser une plage contiguë d’adresses IP

Autoriser le trafic d’une série de LANs adressés en 192.168.X.X/24 derrière le pare-


feu :
R1(config)#ip access-list standard PERMIT_LANS
R1(config-std-nacl)#permit 192.168.0.0 0.0.255.255

2.3. Autoriser l’accès d’un hôte à une interface

R1#show ip dhcp binding


Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.59.2 000c.298b.3f44 Mar 02 2015 12:08 AM Automatic
192.168.59.3 0100.5079.6668.00 Mar 02 2015 12:41 AM Automatic
192.168.101.2 000c.2995.6f42 Mar 02 2015 12:44 AM Automatic

R1(config)#ip access-list standard PERMIT_PC1


R1(config-std-nacl)#permit host 192.168.59.2
R1(config-std-nacl)#exit
R1(config)#int f0/0
R1(config-if)#ip access-group PERMIT_PC1 in

2.4. Pare-feu simple CBAC

(config)#ip access-list extended IP_BLOCK


(config-ext-nacl)#100 deny ip any any
(config-ext-nacl)#exit
(config)#exit
(config)#int f0/0
(config-if)#ip access-group IP_BLOCK in

#show access-list IP_BLOCK


Extended IP access list IP_BLOCK
deny ip any any (39 match(es))

(config)#ip inspect name FW udp


(config)#ip inspect name FW tcp
(config)#int f0/0
(config-subif)#ip inspect FW out

On peut aussi demander à auto secure firewall en mode privilège :


R1#auto secure firewall

--- AutoSecure Configuration ---

*** AutoSecure configuration enhances the security of


the router, but it will not make it absolutely resistant
to all security attacks ***

AutoSecure will modify the configuration of your device.


All configuration changes will be shown. For a detailed
explanation of how the configuration changes enhance security
and any possible side effects, please refer to Cisco.com for
Autosecure documentation.
At any prompt you may enter '?' for help.
Use ctrl-c to abort this session at any prompt.

Gathering information about the router for AutoSecure

Is this router connected to internet? [no]: yes


Enter the number of interfaces facing the internet [1]:
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.1.1 YES NVRAM up up
GigabitEthernet0/1 unassigned YES NVRAM administratively down down
GigabitEthernet0/2 192.168.3.1 YES NVRAM up up
GigabitEthernet0/3 unassigned YES NVRAM administratively down down
Enter the interface name that is facing the internet: GigabitEthernet0/1

Configure CBAC Firewall feature? [yes/no]: yes

This is the configuration generated:

ip inspect audit-trail
ip inspect dns-timeout 7
ip inspect tcp idle-time 14400
ip inspect udp idle-time 1800
ip inspect name autosec_inspect ftp timeout 3600
ip inspect name autosec_inspect http timeout 3600
ip inspect name autosec_inspect rcmd timeout 3600
ip inspect name autosec_inspect realaudio timeout 3600
ip inspect name autosec_inspect smtp timeout 3600
ip inspect name autosec_inspect tftp timeout 30
ip inspect name autosec_inspect udp timeout 15
ip inspect name autosec_inspect tcp timeout 3600
ip access-list extended autosec_firewall_acl
permit udp any any eq bootpc
deny ip any any
interface GigabitEthernet0/1
ip inspect autosec_inspect out
ip access-group autosec_firewall_acl in
!
end

Apply this configuration to running-config? [yes]: yes

Applying the config generated to running-config

R1#
*Aug 14 23:03:04.669: %AUTOSEC-5-ENABLED: AutoSecure is configured on the
device

2.5. Autoriser des Pings (ICMP)

Le plus simplement du monde avec CBAC :


R1(config)#ip inspect name FW icmp
Autrement par ACL out WAN (f0/0) :
10 permit icmp any any echo-reply

2.6. Autoriser le Traffic DNS

Dur dur l’Internet sans DNS …


11 permit udp any eq domain any

2.7. Autoriser le Traffic DHCP

12 permit udp any eq bootps any eq bootpc

2.8. Autoriser le Web, le Mail, FTP et SSH

Par exemple Vers le serveur en DMZ 192.168.101.2 venant de toutes les autres
zones :
R1(config)#ip access-list extended DMZ_SERVICES
R1(config-ext-nacl)#permit tcp any host 192.168.101.2 eq www
R1(config-ext-nacl)#permit tcp any host 192.168.101.2 eq 22
R1(config-ext-nacl)#permit tcp any host 192.168.101.2 eq smtp
R1(config-ext-nacl)#permit tcp any host 192.168.101.2 eq pop3
R1(config-ext-nacl)#permit tcp any host 192.168.101.2 eq 21
R1(config-ext-nacl)#
R1(config-ext-nacl)#exit
R1(config)#int f1/0
R1(config-if)#ip access-group DMZ_SERVICES out

2.9. Autoriser les mises à jours de routage

permit udp any any eq rip


permit eigrp any any
permit ospf any any
permit tcp any any eq 179
permit tcp any eq 179 any

2.10. Débogage du trafic

Par exemple :
R1(config)#access-list 199 permit tcp host 192.168.56.2 host 192.168.101.2
R1(config)#access-list 199 permit tcp host 192.168.101.2 host 192.168.56.2
R1(config)#end

R1#debug ip packet 199 detail


IP packet debugging is on (detailed) for access list 199

2.11. Refuser/autoriser du trafic SSH

Sur une interface : Non


Sur l’accès à une console VTY : Oui

2.12. Contrôle des accès consoles VTY

(config)#ip access-list extended VTY


(config-ext-nacl)#permit ip host 172.16.0.1 any
(config-ext-nacl)#permit ip 192.168.56.0 0.0.0.255 any
(config-ext-nacl)#exit

(config)#line vty 0 4
(config-line)#ip access-class VTY in
2.13. Contrôle des requêtes NTP

Configuration du service NTP 


ntp master 5
ip access-list standard LAN_R1
permit 192.168.1.0 0.0.0.255
ntp access-group serve-only LAN_R1

2.14. NAT

Le NAT permet de traduire :


 les adresses internes (inside)
o privée (local) en
o publique (global)
 les adresses externes (outside)
Le routeur NAT tient une table de traduction
Il transforme le trafic : il remplace les en-têtes IP et de couche transport
(UDP/TCP).
PAT
Un routeur peut prendre en compte le port TCP ou UDP utilisé. On appelle cette
technique “Port Address Translation”.
La méthode PAT permet de :
 transférer un service TCP ou UDP sur une adresse privée vers une adresse
publique.
 multiplexer la connectivité globale d’un LAN avec une seule adresse IP
publique.
Le “PAT” correspond au “NAT overload” de Cisco
Mise en oeuvre du PAT (NAT Overload)

access-list 1 permit 192.168.0.0 0.0.255.255


!
ip nat inside source list 1 interface f0/1 overload
!
interface f0/1.1
ip nat inside
interface f0/1.2
ip nat inside
interface f0/0
ip nat outside
!
end

Vérification du NAT/PAT

#show ip nat translations


Pro Inside global Inside local Outside local Outside global
icmp 195.238.2.21:11 192.168.1.254:11 195.238.2.22:11 195.238.2.22:11
icmp 195.238.2.21:12 192.168.1.254:12 195.238.2.22:12 195.238.2.22:12
icmp 195.238.2.21:13 192.168.1.254:13 195.238.2.22:13 195.238.2.22:13
icmp 195.238.2.21:14 192.168.1.254:14 195.238.2.22:14 195.238.2.22:14
icmp 195.238.2.21:15 192.168.1.254:15 195.238.2.22:15 195.238.2.22:15

Note :
 Inside Local = adressage privé
 Inside Global = adressage public

2.15. Transfert de port (DNAT)

Transfert de trafic du port TCP 3389 entrant sur une interface f0/1 (externe) vers
une adresse (interne) sur le même port.
(config)#
ip nat inside source static tcp 192.168.59.1 3389 interface f0/1 3389

2. ACLs Cisco IOS IPv6

3.1. Filtrages IPv6

 Préfixes bogon
 En-têtes et extension d’en-tête
 Filtrage des tunnels (6in4, GRE, IPSEC, …)
 Firewall L2
 Logs et performances
Dans le document qui suit, on développera :
 ACL : filtrage sans état
 IPv6 IOS Firewall : SPI + ACL
 IPv6 Zone-Based Firewall (ZBF)

3.2. Cisco IPv6 ACLs

Les ACLs IPv6 sont très similaires aux ACLs IPv4. Il n’y a plus que des ACLs
nommées étendues.

(config)#ipv6 access-list name


permit/deny protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-
address | auth} [operator [port-number]] {destination-ipv6-prefix/prefix-length |
any | host destination-ipv6-address | auth} [operator [port-number]] [dest-option-
type[doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log]
[log-input] [mobility] [mobility-type [mh-number | mh-type]] [reflect name
[timeout value]] [routing] [routing-type routing-number] [sequence value] [time-
range name]

Les ACLs IPv6 sont appliquées sur les interfaces en utilisant la commande :

(config-if)#ipv6 traffic-filter access-list-name {in | out}

Entrées implicites ACLs


Toutes les ACLs IPv6 contiennent deux règles implicites qui autorisent le trafic IPv6
neighbor discovery (ND) à l’envoi et à la réception :

permit icmp any any nd-na


permit icmp any any nd-ns

Comme les ACLs IPv4, les ACLs IPv6 contiennent une règle imlicite qui refuse tout
autre trafic.

deny ipv6 any any

Ces règles ne sont pas visibles dans la configuration? On conseillera de les encoder
explicitement. Entrer manuellement la règle implicite deny any any vous permettra
de journaliser les paquets refuser sans concerner neighbor discovery (ND).
3.3. Exemple ACL IPv6

Exemple refuser tout trafic TCP80 pour une adresse en dehors du LAN :

interface f0/0
description interface LAN
ipv6 traffic-filter BLOCK_HOST_01 in
!
ipv6 access-list BLOCK_HOST_01
sequence 20 deny tcp host 2001:db8:1ab::1 any eq www

3.4. Trafic IPv6 à contrôler

Trafic à bloquer

Vous aimerez peut-être aussi