Dans ce chapitre, vous apprendrez à utiliser les fonctions de sécurité des équipements réseau pour sécuriser le réseau interne et appliquer de la défense en profondeur. En effet, les experts se concentrent souvent sur la sécurité périmétrique, en oubliant qu'il est indispensable de se protéger aussi d'un poste interne qui serait compromis !
Vous pourrez tester les configurations présentées avec un émulateur de type GNS3. Les commandes que je vous propose sont celles d'équipements Cisco, mais les mêmes fonctions sont présentes chez les principaux constructeurs.
Je vous propose d’améliorer la sécurité de votre réseau interne en :
cloisonnant ce périmètre avec des VLAN et PVLAN,
activant le Port Security, le DHCP Snooping et le Dynamic ARP Inspection.
Les VLAN
Les VLAN sont utilisés en réseau pour faire un regroupement logique de différents systèmes. Si cela est pratique pour faire une segmentation logique, cela devient aussi un outil de sécurité lorsque c'est associé à du filtrage. Pour cela, il suffit que les différents VLAN ne communiquent pas les uns avec les autres. Vous ne devez pas les router entre eux ! Lorsque cela est nécessaire, les flux correspondants devront repasser par un pare-feu afin d'être filtré comme nous l'avons vu dans le premier chapitre.
En matière d'architecture, nous allons donc créer des VLAN différents pour des composants n'ayant pas le même niveau de sensibilité, pour différencier par exemples :
les systèmes d'administration,
les serveurs internes,
des postes de travail lambda.
Bien sûr, au-delà de ce simple exemple, de multiples VLAN méritent d'être créés pour différencier d'autres types de systèmes : des imprimantes ou multicopieurs, certaines catégories d'utilisateurs type VIP, les directions ou branches métier, des équipements spécifiques type caméras IP, badgeuses, téléphones sur IP, etc.
Dans notre exemple, les VLAN seront créés de la manière suivante :
Switch#show vlans No Virtual LANs configured. Switch#vlan database Switch(vlan)#vlan 10 VLAN 10 added: Name: VLAN0010 Switch(vlan)#vlan 20 VLAN 20 added: Name: VLAN0020 Switch(vlan)#vlan 30 VLAN 30 added: Name: VLAN0030
Afin de rendre la gestion plus explicite, vous pouvez définir un nom au VLAN :
Switch(vlan)#vlan 10 name CLIENTS VLAN 10 modified: Name: CLIENTS Switch(vlan)#vlan 20 name ADMIN VLAN 20 modified: Name: ADMIN Switch(vlan)#vlan 30 name SERVEURS VLAN 30 modified: Name: SERVEURS Switch(vlan)#exit APPLY completed. Exiting....
Dans notre exemple, le poste de travail est connecté au port 0, le poste d'admin au port 1 et le serveur interne au port 2. Vous devrez assigner le VLAN correspondant de la manière suivante :
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface fa1/0 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config)#interface fa1/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#interface fa1/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 30 Switch(config-if)# Switch(config-if)#end Switch# witch#show vlan-switch VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa1/3, Fa1/4, Fa1/5, Fa1/6 Fa1/7, Fa1/8, Fa1/9, Fa1/10 Fa1/11, Fa1/12, Fa1/13, Fa1/14 Fa1/15 10 CLIENTS active Fa1/0 20 ADMIN active Fa1/1 30 SERVEURS active Fa1/2
Certaines interfaces seront configurées en mode trunk, ce qui permet d'y véhiculer plusieurs VLANs :
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface fa1/15 Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk allowed vlan 1-2,10,30,1002-1005 Switch(config-if)#end Switch#
PVLAN
Pour restreindre encore le cloisonnement, vous pouvez mettre en place des private VLAN ou PVLAN. Cela permet d'assurer un cloisonnement supplémentaire au sein d'un même sous-réseau logique.
Par exemple, vous pourrez ainsi séparer les postes de travail les uns des autres. En effet, ils sont rarement besoin de communiquer entre eux, car lorsqu'ils veulent échanger des données, ils le font au travers d'un serveur !
Les PVLAN introduisent les types de ports suivants :
les ports primaires sur lesquelles seront connectés les systèmes pouvant être joints depuis les ports secondaires. Il peut s'agir d'un serveur de fichier ou d'un proxy Web ;
les ports secondaires sur lesquels sont branchés des systèmes qui ne pourront communiquer qu'avec les systèmes connectés à des ports primaires. Les ports secondaires isolés se distinguent des ports secondaires communauté : pour ces derniers, si plusieurs systèmes sont connectés à un même port, ils peuvent communiquer entre eux.
Les ports promiscuous peuvent communiquer avec tous les systèmes des ports primaires ou secondaires. Il s'agit typiquement du port sur lequel sera branché le pare-feu qui filtre les flux échangés entre les différents VLANS.
La configuration se fait de la manière suivante :
Switch(config)# vlan <primary_vlan_id> Switch(config-vlan)# private-vlan primary Switch(config-vlan)# exit Switch(config)# vlan <secondary_vlan_id> Switch(config-vlan)# private-vlan isolated Switch(config-vlan)# exit Switch(config)# vlan <primary_vlan_id> Switch(config-vlan)# private-vlan association <secondary_vlan_id> Switch(config-vlan)# exit Switch(config)# interface Fa1/7 Switch(config-if)# switchport private-vlan host <primary_vlan_id> <secondary_vlan_id> Switch(config-if)# switchport mode private-vlan host Switch(config-if)# exit
Le PVLAN est très utile pour faire du cloisonnement efficacement sans rediriger l'ensemble des flux réseau vers le pare-feu !
Port-security
Lorsqu'un attaquant a accès au réseau interne, il peut faire des attaques au niveau ARP, en particulier pour usurper un adresse MAC, détourner le trafic à destination du routeur par défaut ou du serveur DNS.
Il peut aussi tout simplement falsifier un grand nombre de réponses ARP afin de saturer les switchs (leur table CAM) et les faire se comporter comme des Hub. Cela permet de capturer l'ensemble du trafic réseau et lorsqu'elles ne sont pas chiffrées, des données d'authentification.
La fonction de port-security va permettre de vous prémunir à différents niveaux.
Tout d'abord, il est possible de fixer un maximum d'associations d'adresses MAC pour un port donné. Même en ne le limitant pas à une seule, cela évite les attaques visant à saturer la table CAM des switchs :
Switch(config)#interface fa1/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport port-security maximum 7
Le mode sticky permet un apprentissage automatique des adresses MAC branchées sur chaque port :
Switch(config)#interface fa1/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport port-security Switch(config-if)#switchport port-security mac-address sticky
Pour être encore plus restrictif, au lieu de sticky, l'adresse MAC de l'équipement autorisé peut être inscrite en dur. La gestion en est tout de même contraignante ! Il faut par ailleurs noter qu'un attaquant connaissant une adresse MAC peut la configurer sur son propre PC et ainsi se brancher à la place de l'équipement légitime. Ce type de scénario peut être évité avec une authentification 802.1x.
Dans tous les cas, pensez que des situations non malveillantes nécessiteront de mettre à jour la configuration, par exemple en cas de remplacement d'une carte réseau défectueuse !
Plusieurs actions sont possibles lors d'une violation du port-security : la désactivation de l'interface, la restriction du trafic à l'adresse MAC connue ou encore l'envoi d'une alerte SNMP.
DHCP Snooping et DAI
Enfin, un attaquant peut répondre de manière malveillante aux requêtes DHCP pour attribuer des adresses erronées. Cela peut entraîner des dysfonctionnements réseau, mais surtout attribuer de mauvais attributs de réponse. En effet, cela permet à l'attaquant de forcer ses victimes à considérer l'attaquant comme sa route par défaut ou son serveur DNS.
Pour éviter cela, il suffit d'activer le DHCP Snooping en indiquant sur le switch quel est le port où les réponses DHCP sont légitimes :
Switch#conf t Switch(config)#ip dhcp snooping Switch(config)#ip dhcp snooping vlan 1 Switch(config)#interface Fa1/5 Switch(config-if)#ip dhcp snooping trust
En complément du DHCP Snooping, l'activation du DAI (Dynamic ARP Inspection) permet au switch d'inspecter l'ensemble du trafic ARP, le confronter avec une base de référence construite à partir du DHCP Snooping, pour ne laisser passer que les réponses ARP légitimes.
En résumé
Pour sécuriser vos équipements réseau, il y a 4 moyens : les VLAN, le PVLAN, le port-security et DHCP Snooping et DAI.
VLAN et PVLAN permettent de renforcer vos cloisonnement interne.
Les attaques ARP peuvent être limité en en activant le port-security.
La fonction de DHCP Snooping permet d’empêcher les réponses DHCP pirates.