Objectifs de certification

ENCOR 350-401

  • 5.5 Describe the components of network security design

    • 5.5.a Threat defense
    • 5.5.b Endpoint security
    • 5.5.c Next-generation firewall
    • 5.5.d TrustSec, MACsec
    • 5.5.e Network access control with 802.1X, MAB, and WebAuth

Lab Cisco IOS Zone Based Firewall

Introduction

Cet exercice de mise en oeuvre d’un pare-feu IOS ZBF est accessoire au vu des objectifs du CNNA.

Il démontre toutefois l’usage des ACLs et du NAT dans un contexte sécurisé.

Topologie

Configuration

Il est toujours préférable de ne jamais activer les accès Telnet, contrairement à la configuration proposée dans cet exercice.

Configuration de départ

conf t
enable secret mot_de_passe
!
hostname R1
ip domain name entreprise.lan
ip name-server 8.8.8.8
ip domain-lookup
!
ip dns server
!
username root secret mot_de_passe
!
line vty 0 4
 login local
 transport input ssh telnet
!
ip ssh version 2
crypto key generate rsa modulus 4096
end
wr

Service DHCP (LAN et DMZ)

conf t
! ip dhcp excluded-address 192.168.59.1 192.168.59.99
! ip dhcp excluded-address 192.168.101.1 192.168.101.159
!
ip dhcp pool DHCP_LAN
   network 192.168.59.0 255.255.255.0
   default-router 192.168.59.1
   dns-server 192.168.59.1
!
ip dhcp pool DHCP_DMZ
   network 192.168.101.0 255.255.255.0
   default-router 192.168.101.1
   dns-server 192.168.101.1
end
wr

Interfaces et routage IPv4

conf t
interface G0/1
 description interface zone WAN
 ! ip address 10.0.0.2 255.255.255.0
 ip address dhcp
 ! ip nat outside
 no shutdown
!
interface G0/0
 description interface zone LAN
 ip address 192.168.59.1 255.255.255.0
 ! ip nat inside
 no shutdown
!
interface G0/2
 description interface zone DMZ
 ip address 192.168.101.1 255.255.255.0
 ! ip nat inside
 no shutdown
!
! ip route 0.0.0.0 0.0.0.0 10.0.0.1
end
wr

NAT Overload

conf t
ip nat inside source list LAN_NAT interface G0/1 overload
!
ip access-list standard LAN_NAT
 permit 192.168.59.0 0.0.0.255
 permit 192.168.101.0 0.0.0.255
!
interface G0/1
 description interface zone WAN
 ip nat outside
!
interface G0/0
 description interface zone LAN
 ip nat inside
!
interface G0/2
 description interface zone DMZ
 ip nat inside
end
wr

Diagnostic

  • show ip interface brief
  • show ip route
  • ping cisco.goffinet.org
  • ping 8.8.8.8
  • show ip route
  • ping (étendu sur l’interface G0/0 LAN)
  • traceroute (étendu sur l’interface G0/0 LAN)
  • show ip nat translations
  • show ip dhcp binding
  • debug ip nat …
  • debug ip dhcp …

Lab Pare-feu 0 : Le NAT ne protège en rien

Ajout d’une station pirate

Configuration d’une route du pirate vers le LAN

apt update && apt -y install nmap
nmap -p22 -oG - 192.168.122.0/24 | grep R1 | grep Up | awk '{print $2}'
R1=`nmap -p22 -oG - 192.168.122.0/24 | grep R1 | grep Up | awk '{print $2}'`
ip route add 192.168.59.0/24 via $R1
ip route add 192.168.101.0/24 via $R1

Cisco ZBF

Zone-based policy firewall

Le modèle de configuration Zone-based policy firewall (ZPF or ZBF or ZFW) a été introduit en 2006 avec l’IOS 12.4(6)T.

Avec ZBF, les interfaces sont assignées à une des zones sur lesquelles une règle d’inspection du trafic (inspection policy) est appliquée. Elle vérifie le trafic qui transite entre les zones.

Une règle par défaut bloque tout trafic tant qu’une règle explicite ne contredit pas ce comportement.

ZBF supporte toutes les fonctionnalités Stateful Packet Inspection (SPI), filtrage des URLs et contre-mesure des DoS.

Principes ZBF

Une zone doit être configurée (créée) avant qu’une interface puisse en faire partie. Une interface ne peut être assignée qu’à une seule zone.

Tout le trafic vers ou venant d’une interface donnée est bloqué quand elle est assignée à une zone sauf pour le trafic entre interfaces d’une même zone et pour le trafic du routeur lui-même (Self zone).

Une politique de sécurité (zone-pair) peut contrôler le trafic entre deux zones en faisant référence à un en ensemble de règles (policy-map).

Un policy-map prend des actions et fait référence à des critères de filtrage (class-maps).

Quand du trafic passe d’une zone à une autre (zone-pair), un policy-map est appliqué.

Pour chaque class-map (critère de filtrage) du policy-map, une action est prise : pass, inspect ou drop de manière séquentielle.

Il est conseillé de travailler dans un éditeur de texte avant d’appliquer les règles du firewall.

Trois actions sur les class-maps

Inspect

Met en place un pare-feu à état (équivalent à la commande ip inspect) SPI.

Capable de suivre les protocoles comme ICMP ou FTP (avec de multiples connexions data et session)

Pass

Équivalent à l’action permit d’un ACL.

Ne suit pas l’état des connexions ou des sessions.

Nécessite une règle correspondante pour du trafic de retour.

Drop

Équivalent à l’action deny d’un ACL.

Une option log est possible pour journaliser les paquets rejetés.

Règles de filtrage : policy-maps

Les actions Inspect, Pass et Drop ne peuvent être appliquées qu’entre des interfaces appartenant à des zones distinctes.

La Self zone, la zone du routeur/parefeu comme source ou destination est une exception à ce refus implicite de tout. Tout le trafic vers n’importe quelle interface du routeur est autorisé jusqu’au moment où il est implicitement refusé.

Les interfaces qui ne participent pas à ZBF fonctionnent comme des ports classiques et peuvent utiliser une configuration SPI/CBAC.

Cisco Policy Language (CPL)

Règles :

  1. Définir des class-maps (critères de filtrage) qui décrivent le trafic que la politique de sécurité va vérifier à travers un policy-map.
  2. Définir les policy-maps qui définissent les politiques de sécurités : le trafic filtré et l’action à prendre : drop, pass, inspect

Zones :

  1. Définir les zones (zone security)
  2. Assigner les interfaces aux zones (zone-member security)
  3. Définir les zone-pairs (zone-pair security) Application :
  4. Appliquer les policy-maps aux zone-pairs (service-policy)

Guides de l’ANSSI

L’Agence nationale de la sécurité des systèmes d’information (ANSSI) en France assure la mission d’autorité nationale en matière de sécurité des systèmes d’information. L’agence publie toute une série d’auto-formations et de guides que l’on peut trouver sur http://www.ssi.gouv.fr/fr/guides-et-bonnes-pratiques/ et sur http://www.ssi.gouv.fr/fr/guides-et-bonnes-pratiques/recommandations-et-guides/. Une lecture du document “Recommandations pour la définition d’une politique de filtrage réseau d’un pare-feu” est fortement recommandée.

Labs Pare-feu

  • Pare-feu 1 : LAN vers Internet
  • Pare-feu 2 : Mise en place d’une DMZ
  • Pare-feu 3 : Configuration de la DMZ
  • Pare-feu 4 : Sécurisation du pare-feu lui-même

Lab Pare-feu 1 : LAN vers Internet

Pare-feu 1 : LAN - Internet

Cette configuration en quatre étapes met en place le par-feu SPI qui vérifie le trafic HTTP, HTTPS, DNS et ICMP à destination de l’Internet.

  1. Class-maps
  2. Policy-map
  3. Zones et interfaces
  4. Zone-pair

Étape 1. Class-maps

Les Class-maps décrivent le trafic qui est permis entre les zones (selon la politique de sécurité) :

conf t
 class-map type inspect match-any internet-trafic-class
  match protocol http
  match protocol https
  match protocol dns
  match protocol icmp
end

  • match-any demande correspondance sur n’importe quel critère.
  • match-all demande correspondance sur tous les critères du Class-map.

Étape 2. Policy-map

Un Policy-map, politique de sécurité, reprend l’ensemble de vos critères de filtrage (Class-maps) :

conf t
 policy-map type inspect internet-trafic-policy
  class type inspect internet-trafic-class
   inspect
end

Étape 3. Zones et interfaces

Configuration des zones et assignation des interfaces :

conf t
zone security lan
zone security internet
!
interface G0/0
 zone-member security lan
interface G0/1
 zone-member security internet
end

Étape 4. Zone-pair

Configuration du lien “zone-pair” et application de la policy-map appropriée :

conf t
zone-pair security lan-internet source lan destination internet
  service-policy type inspect internet-trafic-policy
end

Étape 5. Vérification

show zone security
show zone-pair security
show policy-map type insp zone-pair

Show zone security

R1#show zone security
zone self
  Description: System defined zone
zone lan
  Member Interfaces:
    GigabitEthernet0/0
zone internet
  Member Interfaces:
    GigabitEthernet0/1

Show zone-pair security

R1#show zone-pair security
Zone-pair name lan-internet
    Source-Zone lan  Destination-Zone internet
    service-policy internet-trafic-policy

Show policy-map

R1#show policy-map type inspect zone-pair
 Zone-pair: lan-internet

  Service-policy inspect : internet-trafic-policy

    Class-map: internet-trafic-class (match-any)
      Match: protocol http
        1026 packets, 32904 bytes
        30 second rate 0 bps
      Match: protocol https
        245 packets, 7840 bytes
        30 second rate 0 bps
      Match: protocol icmp
        1 packets, 64 bytes
        30 second rate 0 bps
      Inspect
        Packet inspection statistics [process switch:fast switch]
        tcp packets: [121:673832]
        icmp packets: [0:6]

        Session creations since subsystem startup or last reset 1272
        Current session counts (estab/half-open/terminating) [80:0:3]
        Maxever session counts (estab/half-open/terminating) [112:21:13]
        Last session created 00:00:04
        Last statistic reset never
        Last session creation rate 75
        Maxever session creation rate 128
        Last half-open session total 0

    Class-map: class-default (match-any)
      Match: any
      Drop (default action)
        38 packets, 24990 bytes

Lab Pare-feu 2 : Mise en place d’une DMZ

Etape 2 : Mise en place de la DMZ

Procédure

  • Mise en place de la connectivité
  • Serveur en DMZ (service HTTP et SSH)
  • Vérification à partir du routeur
  • Vérification à partir du LAN
  • Audit externe
  • Pratiques
  • interface et connectivité
  • routage
  • scan de ports
  • tests de service HTTP, DNS et SSH

Serveur en DMZ

On connecte un serveur sur l’interface DMZ (client DHCP) :

Démarrer le service SSH (TCP22) :

systemctl start sshd || systemctl start ssh

Démarrer le service Apache (HTTP/TCP80) :

systemctl start apache2 || systemctl start httpd

Il est peut être plus simple de demander à python2 de monter un “SimpleHTTPServer”

python -m SimpleHTTPServer 80

Vérification à partir du routeur : interfaces

show ip interface brief

Les interfaces G0/1 (WAN), G0/0 (LAN) et G0/2 (DMZ) du routeur sont up/up

Vérification à partir du routeur : clients DHCP

show ip dhcp binding

On reconnaît l’adresse du serveur DMZ : 192.168.101.2

Vérification à partir du routeur : routage IPv4

show ip route

Vérification à partir du routeur : test de connectivité

ping 192.168.101.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.101.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/25/56 ms

Vérification à partir du LAN : association de la DMZ à une zone

Tant que l’interface n’est associée à aucune zone, le trafic de/vers le routeur lui-même (Self-zone) est le seul possible.

Entre-temps, afin de tester la connectivité, on peut inclure l’interface G0/2 (DMZ) dans la zone Internet :

configure terminal
interface G0/2
 zone-member security internet
end

Vérification : association de l’interface à une zone

Vérification des interfaces associées aux zones:

show zone-pair security
Zone-pair name lan-internet
    Source-Zone lan  Destination-Zone internet
    service-policy lan-internet-policy
show zone security
zone self
  Description: System defined zone
zone lan
  Member Interfaces:
    GigabitEthernet0/0
zone internet
  Member Interfaces:
    GigabitEthernet0/1
    GigabitEthernet0/2

Vérification à partir du LAN : test de connectivité vers le serveur

A partir d’une station Linux du LAN :

root@US1:/home/francois# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:94:02:20
          inet adr:192.168.59.6  Bcast:192.168.59.255  Masque:255.255.255.0
          adr inet6: fe80::a00:27ff:fe94:220/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:3096 erreurs:0 :0 overruns:0 frame:0
          TX packets:1990 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:4449836 (4.4 MB) Octets transmis:151806 (151.8 KB)

ping -c 1 192.168.101.2
root@US1:/home/francois# ping -c 1 192.168.101.2
PING 192.168.101.2 (192.168.101.2) 56(84) bytes of data.
64 bytes from 192.168.101.2: icmp_seq=1 ttl=63 time=30.8 ms

--- 192.168.101.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 30.804/30.804/30.804/0.000 ms

Vérification à partir du LAN : scan des ports

A partir d’une station Linux du LAN avec le logiciel nmap :

nmap 192.168.101.2
root@US1:/home/francois# nmap 192.168.101.2

Starting Nmap 6.40 ( http://nmap.org ) at 2014-12-02 12:49 CET
Nmap scan report for 192.168.101.2
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE  SERVICE
53/tcp  closed domain
80/tcp  open   http
443/tcp open   https

Nmap done: 1 IP address (1 host up) scanned in 6.49 seconds
HTTP (TCP80) est disponible, TCP53 (DNS) est filtré.

Vérification à partir du LAN : test du service Web

A partir d’une station Linux du LAN avec le logiciel curl qui permettent de tester HTTP en ligne de commande, ici la commande HEAD :

curl -I http://192.168.101.2
root@US1:/home/francois# curl -I http://192.168.101.2
HTTP/1.1 403 Forbidden
Date: Wed, 24 Jul 2019 21:05:59 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8

Audit externe : connectivité

root@kali:~# ip a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0c:c5:63:09:77:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.209/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 2282sec preferred_lft 2282sec
    inet6 fe80::ec5:63ff:fe09:7700/64 scope link
       valid_lft forever preferred_lft forever
root@kali:~# ip route
default via 192.168.122.1 dev eth0 proto dhcp src 192.168.122.209 metric 100
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.209
192.168.122.1 dev eth0 proto dhcp scope link src 192.168.122.209 metric 100

Audit externe : routage

root@kali:~# ip route add 192.168.101.0/24 via 192.168.122.198
root@kali:~# ip route
default via 192.168.122.1 dev eth0 proto dhcp src 192.168.122.209 metric 100
192.168.101.0/24 via 192.168.122.198 dev eth0
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.209
192.168.122.1 dev eth0 proto dhcp scope link src 192.168.122.209 metric 100

Audit externe : test de connectivité

Interface G0/2 (DMZ) du routeur :

ping -c 1 192.168.101.1

Interface du serveur en DMZ :

ping -c 1 192.168.101.2

Audit externe : scan de ports

nmap 192.168.101.2

Audit externe : services Web et SSH

root@kali:~# curl -I http://192.168.101.2/

root@kali:~# nc -v 192.168.101.2 22

Lab Pare-feu 3 : Configuration de la DMZ

Étape 3 : configuration de la DMZ

Cette configuration nécessite trois grandes étapes de configuration qui correspondent aux politiques de sécurité :

  • Mise en place d’une politique de filtrage du LAN à la DMZ.
  • Mise en place d’une politique de filtrage de l’Internet à la DMZ.
  • Mise en place d’une politique de filtrage de la DMZ à l’Internet.

Pare-feu 3a : lan-dmz

Inspection du trafic HTTP, HTTPS et SSH à destination de la DMZ venant du LAN :

Configuration lan-dmz

conf t
class-map type inspect match-any lan-dmz-class
 match protocol http
 match protocol https
 match protocol ssh
policy-map type inspect lan-dmz-policy
 class type inspect lan-dmz-class
 inspect
zone security dmz
zone-pair security lan-dmz source lan destination dmz
 service-policy type inspect lan-dmz-policy
interface g0/2
 zone-member security dmz
end

Vérification lan-dmz du service SSH

root@US1:/home/francois# ssh root@192.168.101.2
The authenticity of host '192.168.101.2 (192.168.101.2)' can't be established.
RSA key fingerprint is b2:e6:c0:2b:67:86:49:40:10:38:a2:14:1a:7f:55:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.101.2' (RSA) to the list of known hosts.
root@192.168.101.2's password:

Vérification lan-dmz du service HTTP

root@US1:/home/francois# curl -I http://192.168.101.2

Constats après l’application de la politique LAN-DMZ

Le trafic ICMP est bloqué venant du LAN.

Pare-feu 3b : internet-dmz

Le pare-feu va inspecter le trafic HTTP et HTTPS venant de l’Internet à destination de la DMZ :

Configuration internet-dmz

conf t
interface G0/2
 zone security dmz
class-map type inspect match-any internet-dmz-class
 match protocol http
 match protocol https
policy-map type inspect internet-dmz-policy
 class type inspect internet-dmz-class
 inspect
zone-pair security internet-dmz source internet destination dmz
 service-policy type inspect internet-dmz-policy
end

Vérification : show zone security

R1#show zone security
zone self
  Description: System defined zone
zone lan
  Member Interfaces:
    GigabitEthernet0/0
zone internet
  Member Interfaces:
    GigabitEthernet0/1
zone dmz
  Member Interfaces:
    GigabitEthernet0/2

Vérification : show zone-pair

show zone-pair security
Zone-pair name lan-internet
    Source-Zone lan  Destination-Zone internet
    service-policy lan-internet-policy
Zone-pair name lan-dmz
    Source-Zone lan  Destination-Zone dmz
    service-policy lan-dmz-policy
Zone-pair name internet-dmz
    Source-Zone internet  Destination-Zone dmz
    service-policy internet-dmz-policy

Vérification : show policy-map

R1#show policy-map type insp zone-pair
  Service-policy inspect : internet-dmz-policy

    Class-map: internet-dmz-class (match-any)
      Match: protocol http
        2 packets, 44 bytes
        30 second rate 0 bps
      Match: protocol https
        5 packets, 120 bytes
        30 second rate 0 bps
      Inspect
        Packet inspection statistics [process switch:fast switch]
        tcp packets: [0:18]

        Session creations since subsystem startup or last reset 6
        Current session counts (estab/half-open/terminating) [0:0:0]
        Maxever session counts (estab/half-open/terminating) [0:2:0]
        Last session created 00:00:37
        Last statistic reset never
        Last session creation rate 6
        Maxever session creation rate 6
        Last half-open session total 0

    Class-map: class-default (match-any)
      Match: any
      Drop (default action)
        1998 packets, 47932 bytes

Règle NAT de transfert de port

conf t
ip nat inside source static tcp 192.168.101.2 80 interface G0/1 80
!
ip nat inside source static tcp 192.168.101.2 443 interface G0/1 443
end

Audit externe : scan de ports

nmap 192.168.122.198
root@kali:~# nmap 192.168.122.198
Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-24 21:28 UTC
Nmap scan report for gateway (192.168.122.198)
Host is up (0.0017s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
53/tcp open  domain
80/tcp open  http
MAC Address: 0C:C5:63:FC:AC:01 (Unknown)

Audit externe : trafic web

curl -I http://192.168.122.198/
root@kali:~# curl -I http://192.168.122.198/
HTTP/1.1 403 Forbidden
Date: Wed, 24 Jul 2019 21:29:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8

Pare-feu 3c : dmz-internet

Le trafic à inspecter est le même que celui du lan vers l’Internet.

Création d’une zone-pair

Il s’agit de permettre aux ordinateurs de la DMZ d’accéder à l’Internet en HTTP, HTTPS, ICMP et DNS, soit la même politique de sécurité que celle qui règle le flux entre le LAN et l’Internet.

Le policy-map “internet-trafic-policy” inspecte ce trafic. Comme elle existe déjà, il suffit de la réutiliser dans la création du zone-pair :

conf t
zone-pair security dmz-internet source dmz destination internet
 service-policy type inspect internet-trafic-policy
end

Lab Pare-feu 4 : Sécurisation du pare-feu lui-même

Self-zone

Le routeur doit être capable de gérer des connexions SSH ou ICMP venant de l’extérieur :

Audit externe sur le pare-feu

nmap $R1

Audit externe sur le pare-feu

root@kali:~# nc -v $R1 22
root@kali:~# nc -v $R1 23

Opérations

Dans cet exercice de renforcement de la sécurité du routeur, on fera la démonstration uniquement pour le trafic qui vient de la zone Internet.

Soit un seul zone-pair est créé pour contrôler le trafic venant de l’Internet à destination du routeur lui-même.

Le trafic de gestion SSH est autorisé (pass)

Le trafic ICMP est inspecté (inspect)

Tout autre trafic est refusé et journalisé (DROP LOG)

Tout autre trafic partant ou à destination du pare-feu reste autorisé par défaut.

Mise en place du pare-feu

conf t
ip access-list extended SSH
 permit tcp any any eq 22
 deny tcp any any
class-map type inspect match-any remote-access-class
 match access-group name SSH
class-map type inspect match-any icmp-class
 match protocol icmp
policy-map type inspect to-self-policy
 class type inspect remote-access-class
  pass
 class type inspect icmp-class
  inspect
 class class-default
  drop log
zone-pair security internet-self source internet destination self
 service-policy type inspect to-self-policy
end

Audit externe

root@kali:~# nmap $R1

Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-02 16:33 CET
Nmap scan report for 192.168.1.9
Host is up (0.065s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: C4:01:11:F8:00:00 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 8.56 seconds

Seul SSH est disponible

Audit externe

nc -v 192.168.122.198 22
root@kali:~# nc -v 192.168.122.198 22
Connection to 192.168.122.198 22 port [tcp/ssh] succeeded!
SSH-2.0-Cisco-1.25
^C
ping -c 1 192.168.122.198
root@kali:~# ping -c 1 192.168.122.198
PING 192.168.1.9 (192.168.1.9) 56(84) bytes of data.
64 bytes from 192.168.1.9: icmp_req=1 ttl=255 time=53.4 ms

--- 192.168.1.9 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 53.438/53.438/53.438/0.000 ms

Notes ACLs sur les accès de gestion

  • ACLs sur les accès de gestion :
conf t
ip access-list standard SSH_ACCESS
 permit 192.168.1.2
 permit 192.168.122.209
 deny   any
line vty 0 4
 access-class SSH_ACCESS in

Autoriser DHCP

Au cas où l’interface externe dépend de DHCP :

*Jul 24 21:46:40.333: %FW-6-DROP_PKT: Dropping udp session 192.168.122.1:67 192.168.122.198:68 on zone-pair internet-self class class-default due to  DROP action found in policy-map with ip ident 9583
conf t
ip access-list extended DHCP
 permit udp any eq 67 any eq 68
 permit udp any eq 68 any eq 67
class-map type inspect match-any dhcp-class
 match access-group name DHCP
policy-map type inspect to-self-policy
 class type inspect dhcp-class
  pass
end

Autoriser DNS

Au cas où le routeur a besoin de résoudre des noms (comme serveur DNS récursif pour le LAN par exemple) :

*Jul 24 21:48:20.864: %FW-6-DROP_PKT: Dropping udp session 8.8.8.8:53 192.168.122.198:59426 on zone-pair internet-self class class-default due to  DROP action found in policy-map with ip ident 46217
conf t
ip access-list extended DNS
 permit udp any any eq 53
 permit udp any eq 53 any
 deny udp any any
class-map type inspect match-any dns-class
 match access-group name DNS
policy-map type inspect to-self-policy
 class type inspect dns-class
  pass
end

Solution complète

!
hostname R1
!
ip dhcp pool LAN
   network 192.168.59.0 255.255.255.0
   default-router 192.168.59.1
   dns-server 192.168.59.1
!
ip dhcp pool DMZ
   network 192.168.101.0 255.255.255.0
   default-router 192.168.101.1
   dns-server 192.168.101.1
!
ip domain name lan
!
ip domain-lookup
!
username root secret testtest
!
class-map type inspect match-any internet-dmz-class
 match protocol http
 match protocol https
class-map type inspect match-any icmp-class
 match protocol icmp
class-map type inspect match-any remote-access-class
 match access-group name SSH
class-map type inspect match-any dhcp-class
 match access-group name DHCP
class-map type inspect match-any dns-class
 match access-group name DNS
class-map type inspect match-any internet-trafic-class
 match protocol dns
 match protocol http
 match protocol https
 match protocol icmp
class-map type inspect match-any lan-dmz-class
 match protocol http
 match protocol https
 match protocol ssh
!
!
policy-map type inspect to-self-policy
 class type inspect remote-access-class
  pass
 class type inspect icmp-class
  inspect
 class type inspect dhcp-class
  pass
 class type inspect dns-class
  pass
 class class-default
  drop log
policy-map type inspect lan-dmz-policy
 class type inspect lan-dmz-class
  inspect
 class class-default
policy-map type inspect internet-dmz-policy
 class type inspect internet-dmz-class
  inspect
 class class-default
policy-map type inspect lan-internet-policy
 class type inspect internet-trafic-class
  inspect
 class class-default
!
zone security lan
zone security internet
zone security dmz
zone-pair security lan-internet source lan destination internet
 service-policy type inspect lan-internet-policy
zone-pair security lan-dmz source lan destination dmz
 service-policy type inspect lan-dmz-policy
zone-pair security internet-dmz source internet destination dmz
 service-policy type inspect internet-dmz-policy
zone-pair security internet-self source internet destination self
 service-policy type inspect to-self-policy
!
interface G0/1
 description Interface WAN
 ip address dhcp
 ip nat outside
 zone-member security internet
 no shutdown
!
interface G0/0
 description Interface LAN
 ip address 192.168.59.1 255.255.255.0
 ip nat inside
 zone-member security lan
 no shutdown
!
interface G0/2
 description Interface DMZ
 ip address 192.168.101.1 255.255.255.0
 zone-member security dmz
 no shutdown
!
ip dns server
ip nat inside source list LAN_NAT interface G0/1 overload
!
ip access-list extended LAN_NAT
 permit ip 192.168.59.0 0.0.0.255 any
 permit ip 192.168.101.0 0.0.0.255 any
ip access-list extended SSH
 permit tcp any any eq 22
 deny   ip any any
ip access-list extended DHCP
 permit udp any any eq 68
 deny udp any any
ip access-list extended DNS
 permit udp any any eq 53
 deny udp any any
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login local
 transport input ssh
!
end

Laisser un commentaire