Sécurisation de l'accès au matériel Stephane.frati@unice.fr
Niveau 2 pour certains Cisco Briques de sécurité: BPDU Guard Port Security DHCP Snooping Dynamic ARP Inspection IP Source Guard Access Lists
BPDU Guard Bridge Protocol Data Unit Utilisés par switches pour dialoguer entre eux pour établir l’arbre via STP Eviter d’écrouler un réseau en rajoutant un switch mal configuré dans une instance de spanning tree Eviter du détournement de trafic (root bridge) Eviter qu’un port d’accès en « portfast » soit utilisé par un switch
Port Security To apply MAC address security, you must turn it on, then configure appropriate options: !Set explicit access mode (dynamic or trunk ports can't have security) Switch(config-if)# switchport mode access !Enable port-security Switch(config-if)# switchport port-security !Specify how many MAC addresses can be used: Switch(config-if)# switchport port-security maximum 1 !Action to take when a violation happens: Switch(config-if)# switchport port-security violation {restrict | shutdown http://www.enterprisenetworkingplanet.com/netsecur/article.php/3462211
DHCP snooping But: Stopper les serveurs DHCP félons Filtre les messages DHCP untrusted et en créant une table d’association les messages DHCP untrusted proviennent de l’extérieur du réseau et peuvent causer des dénis de service La DHCP snooping binding table contient: MAC address, IP address, lease time, binding type, VLAN number, interface information des interfaces locales untrusted du switch Il peut aussi limiter le débit des requètes untrusted interface configured to receive messages from outside the network trusted interface configured to receive only messages from within the network http://www.itsyourip.com/cisco/enableconfigure-dhcp-snooping-in-cisco-catalyst-switches-ios/
Activation du DHCP Snooping Activation du DHCP Snooping par VLAN ciscoswitch(config)# ip dhcp snooping DHCP Snooping par VLAN ciscoswitch(config)# ip dhcp snooping vlan number 100 DHCP Option 82 This allows DHCP option 82 message insertions into the packets. Option 82 is the Relay Agent Information Option as described in RFC 3046 ciscoswitch(config)# ip dhcp snooping information option
Autres options Configure Trust Interface Interface not explcicitly configured as a trust interface is treated as untrusted ciscoswitch(config)# interface fa0/0 ciscoswitch(config-if)# ip dhcp snooping trust DHCP Snooping Rate limiting (optional) Rate limiting allows restricting the number of DHCP packets per second (pps) that an interface can receive ciscoswitch(config-if)# ip dhcp snooping limit rate 202 Display DHCP Snooping ciscoswitch# show ip dhcp snooping Display DHCP Snooping Binding Table ciscoswitch# show ip dhcp snooping binding MacAddress IP Address Lease (seconds) Type VLAN Interface ———– ———– —————- —– —– ———— 0000.0100.0201 10.0.0.1 1600 dynamic 100 FastEthernet2/ 1
Dynamic ARP Inspection Validates Address Resolution Protocol (ARP) packets in a network Allows to intercept, log, and discard ARP packets with invalid MAC address to IP address bindings To prevent ARP poisoning attacks Also against DHCP pool leases starvations Protects the network from certain "man-in-the-middle" attacks E.g. Cain & Abel http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.1/19ew/configuration/guide/dynarp.html
Comment ça marche bien ? by intercepting all ARP requests and responses Each of these intercepted packets is verified for valid MAC address to IP address bindings before the local ARP cache is updated or the packet is forwarded to the appropriate destination. Invalid ARP packets are dropped. Gratuituous ARP ?
Comment ça marche bien ? DAI determines the validity of an ARP packet based on valid MAC address to IP address bindings stored in a trusted database. This database is built at runtime by DHCP snooping, provided that it is enabled on the VLANs DAI performs validation checks in the CPU, so the number of incoming ARP packets is rate-limited to prevent a denial of service attackd on the switch in question
IP Source guard But: Empêcher d’utiliser des adresses IP qui n’ont pas été assignées Peut également empêcher les clients de forger des MAC@ et donc empêcher le flooding de switch. Flooding : explications avec simple script bash http://www.enterprisenetworkingplanet.com/netsecur/article.php/3462211
Flood.sh
IP Source guard Switch(config-if)# ip verify source vlan dhcp-snooping Attention: Si la table DHCP n’a pas d’association pour ce port, vous avez juste stoppé tout le trafic IP en sa provenance. Il faut donc activer le DHCP snooping un jour avant IP Source Guard afin de récolter suffisament d’information.
Access-Lists
Filtrage sur routeur Cisco Les routeurs Cisco offrent une facilité très importante avec les access-lists (ACL) imiter les firewalls Listes utilisées dès qu’une notion de filtrage de flux apparaît ces listes peuvent filtrer les paquets entrants ou sortants des interfaces d’un routeur selon quelques critères : access-lists standards l’adresse source access-lists étendues l’adresse source, l’adresse de destination, le protocole ou le numéro de port
access-lists de façon générale en mode configuration globale conf on déclare l’access-list avec les conditions que l’on souhaite access-list numéro_access_list permit/deny conditions en mode conf-if on affecte l’access-list à une interface access-group numéro_access_list Note: pour retirer les access-lists, on réécrit les mêmes commandes précédées d’un no
Choix du numéro d’une access-list En IP de 1 à 99 : access-list standard de 100 à 199 : access-list étendue En IPX de 800 à 899 : access-list standard de 1000 à 1099 : access-list étendue Appletalk de 600 à 699
permit ou deny Actions s’appliquant sur les conditions mentionnées permit pour permettre deny pour rejeter Comportement par défaut une access-list interdit tout « tout ce qui n’a pas été explicitement autorisé (ou interdit) est interdit »
conditions des adresses sources des adresses de destination Un masque permet d’indiquer sur quels bits de l’adresse on souhaite un contrôle 0 signifie que le bit correspondant est vérifié 1 signifie qu’il est ignoré même type et même rôle que les masques d’adresse IP, mais la signification des 0 et 1 se trouve inversée 0.0.0.0 en adresse any 0.0.0.0 en masque host
Les access-lists standards Création de l’access-list Numéro d’access-list : de 1 à 99 Mode de configuration : conf Syntaxe : access-list numéro_access_list permit/deny adresse_source masque Affectation de cette access-list à l’une des interfaces du routeur Mode de configuration : conf-if Syntaxe : access-group numéro_access_list in/out Sur l’interface choisie, l’access-list est appliquée en entréein en sortie out (par défaut)
Exemple 1 H2 H1 R12 e1 e2 r12(conf)# access-list 1 deny 192.168.0.1 host r12(conf)#interface e1 r12(conf-if)#ip access-group 1 out Les paquets venant de 192.168.0.1 ne peuvent pas sortir de l’interface e1 On peut pinguer e1 mais pas la machine H1
Exemple 2 H2 H1 R12 e1 e2 r12(conf)# access-list 2 permit 192.168.0.0 0.0.255.255 r12(conf)#interface e0 r12(conf-if)#ip access-group 2 Seuls les paquets ayant comme adresse-source 192.168.x.x sont autorisés à sortir de e0 Avec la commande access-list 2 permit 192.168.0.0 0.0.255.255, il y a un deny any implicite r12(conf)# no access-list 2 permit 192.168.0.0 0.0.255.255 Retire l’access-list 2
Les access-lists étendues Création de l’access-list Numéro d’access-list : de 100 à 199 Mode de configuration : conf Syntaxe : access-list numéro_access_list permit/deny protocole adresse_source masque adresse_destination masque opérateur opérande Affectation de cette access-list à l’une des interfaces du routeur Mode de configuration : conf-if Syntaxe : access-group numéro_access_list in/out
Exemple 3 H2 H1 R12 e1 e2 r12(conf)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 21 r12(conf)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 20 r12(conf)#access-list 101 permit ip 192.168.1.0 0.0.0.255 any r12(conf)#interface e0 r12(conf-if)#ip access-group 101 on interdit tous les paquets venant des machines 192.168.1.x de faire du FTP (port tcp 20 et 21) vers les machines 192.168.2.x mais on autorise tous les autres protocoles IP pour les machines 192.168.1.x vers toutes les autres destinations sinon par défaut c’est interdit
Exemple 4 H2 H1 R12 e1 e2 r12(conf)# access-list 102 permit tcp 192.168.1.0 0.0.0.255 any eq 25 r12(conf)#interface e1 r12(conf-if)#ip access-group 102 on ne permet qu’aux machines 192.168.1.x de faire du SMTP vers l’interface e1 r12(conf)# no access-list 102 permit tcp 192.168.1.0 0.0.0.255 any eq 25 on retire l’access-list 102
Annexes
Messages ICMP ICMP Destination Unreachable no ip unreachables ICMP Mask Request (par défaut désactivé) ip mask-reply ICMP Redirect no ip redirects
Configurations spéciales Routage par la source no ip source-routing Utilisation d’un cache désactive la commutation debug ip packet no ip route-cache
https://learningnetwork.cisco.com/thread/33608 no ip redirects--this disables icmp redirect messages. Redirects happen when a router recognizes a packet arriving on an interface and the best route is out that same interface. In that case the router sends an icmp redirect back to the source telling them about a better router on the same subnet. Subsequent packets take the optimal path. If you disable this, the packets would have continued using the sub optimal path (in this scenario). no ip unreachable--disable icmp type 3 generation. Can wreak havoc if an egress port has a lower mtu. This is because icmp "packet to big fragment needed" is type 3 code 4. no ip proxy-arp--proxy arp allows the router to respond to any arp request that is out another interface according to the route table. Disabling this makes the router only respond to arps to the interface ip address. no ip route-cache--process switches ip packets. Mostly useful only with debug ip packet.