Gérer votre infrastructure domestique sécurisée
En lien avec mon dossier : Le choix d’une infrastructure domestique maîtrisée
Dans la mise en place d’une infrastructure domestique ou des interconnexions spécifiques sont nécessaires : il est important de comprendre que cela requière des connaissances car ce n’est plus une simple box opérateur. De ce fait, gérer une infrastructure demande du temps, de l’envie et des compétences. Retenez bien qu’en cas de panne, il est impossible de demander à votre fournisseur d’accès à Internet de vous fournir un support car l’ensemble des modifications ont été faites par vous et vous seul en êtes le responsable.
L’organisation de mon lab
- Les pré-requis
- La configuration
- La conclusion
Les pré-requis
Dans ce lab je dispose du matériel informatique suivant : un ordinateur, une freebox révolution, un routeur edgeOS, un switch Cisco ainsi qu’un serveur sous Debian 8. Sachez que l’ensemble des commandes edgeOS sont compatible avec vyOS (open-source) qui utilise la même syntaxe .
Il est indispensable de disposer des derniers firmware actuels, dans mon cas :
– Mon routeur EdgeOS : v1.8 (aide de mise à jour pour ubiquiti).
– Mon switch Cisco : v1.4.2.4 (aide de mise à jour pour cisco).
Lors du premier démarrage du routeur ou du switch, il y a deux méthodes disponibles pour s’y connecter :
- Via le port console en façade : avec un câble RJ45 pour ubiquiti et un RS232 pour Cisco.
- Via un port Ethernet : ou votre machine devra être sur le réseau 192.168.1.0/24.
La configuration
Dans le cadre de ma configuration voulu il est nécessaire de suivre l’ensemble des étapes ci-dessous. Bien sûr, elles permettront ensuite de disposer d’un réseau fonctionnel, sécurisé et rapide. Voyons désormais comment j’ai configuré mon réseau domestique dans son intégralité.
Activer le mode bridge de la freebox révolution
Je ne souhaite plus que ma freebox soit l’élément de routage principal dans mon réseau, pour cela je dois la mettre en mode bridge : rendons nous sur l’adresse IP de notre équipement 192.168.1.254 et activer le mode bridge :
- Rendez-vous sur Freebox OS.
- Dans Paramètres de la Freebox, cliquez sur Mode avancé et accédez à Mode Réseau.
- Dans le champs Mode Réseau, choisissez Bridge et validez avec OK.
- Un message vous rappelle les services désactivés en mode bridge.
Voici une illustration de l’interface web de la freebox :
Un avertissement est présent : il faudra bien entendu accepter de perdre certaines fonctionnalités :
Dans le cas où le wifi est votre première source de connexion, il vous faudra investir dans un routeur wifi car la fonctionnalité ne sera plus assurée en mode bridge. Vous êtes encore libre de refuser, sinon optez pour la 4G !
Première connexion au routeur : EdgeOS/vyOS
Par défaut le port est eth0 avec l’adresse IP : 192.168.1.1 (dans mon cas j’ai configuré l’interface eth7 en 192.168.100.1/24).
Celle-ci est accessible en SSH sur le port 22 ou via l’interface web en http.
ssh [email protected]
Lors de l’affichage dans le terminal voici la première commande à exécuter :
configure
Désormais en mode configuration, nous sommes prêts pour remplacer notre box par un routeur EdgeOS.
La configuration d’une interface bridge
Dans notre cas nous avons la freebox serveur connectée sur le port eth0 et la freebox player sur le port eth1.
Nous allons devoir les faire communiquer ensemble via une interface bridge :
set interfaces bridge br0
set interfaces bridge br0 vif 100 description "Freebox"
L’interface de la freebox server récupérera automatiquement une adresse IP (WAN) chez Free :
set interfaces ethernet eth0 adresses dhcp
Les interfaces des deux boîtiers freebox seront dans le même VLAN :
set interfaces ethernet eth0 vif 100 description "Freebox Serveur"
set interfaces ethernet eth1 vif 100 description "Freebox Player"
Ensuite, il nous faudra connecter les interfaces vlan-100 dans notre bridge :
set interfaces ethernet eth0 vif 100 bridge-group bridge br0
set interfaces ethernet eth1 vif 100 bridge-group bridge br0
Je vous invite à faire votre première sauvegarde avec la commande :
commit
Pour que notre configuration soit sauvegardée de façon permanente :
save
Les interfaces vlans
J’utilise des interfaces VLAN sur chacun de mes ports physiques : ce sont des sous interfaces taguées.
Voici la configuration de mes interfaces vlans :
set interfaces ethernet eth2 vif 200 adresse 192.168.20.1/28
set interfaces ethernet eth2 vif 200 description "home-multimedia"
set interfaces ethernet eth3 vif 300 address 192.168.30.1/28
set interfaces ethernet eth3 vif 300 description "home-domotique"
set interfaces ethernet eth4 vif 400 address 192.168.40.1/28
set interfaces ethernet eth4 vif 400 description "home-production"
set interfaces ethernet eth5 vif 500 address 192.168.50.1/28
set interfaces ethernet eth5 vif 500 description "home-sensible"
set interfaces ethernet eth6 vif 600 address 192.168.60.1/28
set interfaces ethernet eth6 vif 600 description "home-wifi"
set interfaces ethernet eth7 vif 700 address 192.168.70.1/28
set interfaces ethernet eth7 vif 700 description "home-vpn"
Le service NAT source
Pour que les différents réseaux puissent communiquer vers l’extérieur, il faut leur ajouter des règles NAT :
set service nat rule 5000 description "freebox"
set service nat rule 5000 outbound-interface br0.100
set service nat rule 5000 protocol all
set service nat rule 5000 source address 192.168.1.0/24
set service nat rule 5000 type masquerade
set service nat rule 5000 description "multimedia"
set service nat rule 5001 outbound-interface eth0
set service nat rule 5001 source address 192.168.20.0/28
set service nat rule 5001 type masquerade
set service nat rule 5000 description "domotique"
set service nat rule 5002 outbound-interface eth0
set service nat rule 5002 source address 192.168.30.0/28
set service nat rule 5002 type masquerade
set service nat rule 5000 description "production"
set service nat rule 5003 outbound-interface eth0
set service nat rule 5003 source address 192.168.40.0/28
set service nat rule 5003 type masquerade
set service nat rule 5000 description "sensible"
set service nat rule 5004 outbound-interface eth0
set service nat rule 5004 source address 192.168.50.0/28
set service nat rule 5004 type masquerade
set service nat rule 5000 description "wifi"
set service nat rule 5005 outbound-interface eth0
set service nat rule 5005 source address 192.168.60.0/28
set service nat rule 5005 type masquerade
set service nat rule 5000 description "vpn"
set service nat rule 5006 outbound-interface eth0
set service nat rule 5006 source address 192.168.70.0/28
set service nat rule 5006 type masquerade
A ce moment précis les réseaux désignés sont en mesure de sortir vers l’internet (liaison non sure).
Première connexion au switch : IOS
Votre machine devra être branchée sur un des ports du switch, l’adresse IP par défaut 192.168.1.254.
Par défaut celui-ci est uniquement accessible via l’interface web en http avec le couple d’identifiants : cisco/cisco.
Nous travaillerons uniquement en CLI via le service SSH.
La configuration de base
Nous disposons d’un swich Cisco qui viendra interconnecter l’ensemble de nos hôtes (machines) sur le réseau.
L’ensemble devra être en mesure de communiquer avec notre routeur edgeOS, lançons-nous via SSH :
ssh [email protected]
Le passage en mode configuration puis le changement du nom d’hôte est à faire comme cela :
r1#configure
r1(config)#hostname sg300
Pour quitter le mode configuration :
exit
La mise à l’heure local se fait comme ceci :
sg300#clock set 21:23:10 18 may 2016
Ensuite, il peut être interessant de faire connaître au routeur l’heure d’été ou d’hiver comme ceci :
sg300#clock summer-time GMT+2 recurring last Sun Mar 3:00 last Sun Oct 3:00
De ce fait, l’heure sera en GMT+1 à partir du dernier dimanche d’octobre jusqu’au dernier dimanche de mars (heure d’hiver) et hors de cette plage ce sera l’heure d’été (GMT+2). La sauvegarde de la configuration ce fait comme ceci :
sg300#copy running-config startup-config
Overwrite file [startup-config].... (Y/N)[N] ?Y
19-May-2016 20:09:21 %COPY-I-FILECPY: Files Copy - source URL running-config destination URL flash://startup-config
19-May-2016 20:09:26 %COPY-N-TRAP: The copy operation was completed successfully
Copy succeeded
Activer le mode routeur
Nous allons configurer le switch en mode de niveau 3 (layer 3 en anglais) pour faire du routage :
sg300#set system mode router
Changing the switch working mode will *delete* the startup configuration file
and reset the device right after that. It is highly recommended that you will
backup it before changing the mode, continue ? (Y/N)[N] Y
Le redémarrage prendra quelques secondes.
La configuration des VLAN
sg300(config)# vlan 200, 300,400,500,600,700
sg300(config)#interface vlan 200
sg300(config-if)#name home-multimedia
sg300(config-if)# exit
sg300(config)#interface vlan 300
sg300(config-if)#name home-domotique
sg300(config-if)# exit
sg300(config)#interface vlan 400
sg300(config-if)#name home-production
sg300(config-if)# exit
sg300(config)#interface vlan 500
sg300(config-if)#name home-sensible
sg300(config-if)# exit
sg300(config)#interface vlan 600
sg300(config-if)#name home-wifi
sg300(config-if)# exit
sg300(config)#interface vlan 700
sg300(config-if)#name home-vpn
sg300(config-if)# exit
Nous nous retrouvons avec le résultat suivant :
sg300#show vlans
Created by: D-Default, S-Static, G-GVRP, R-Radius Assigned VLAN, V-Voice VLAN
Vlan Name Tagged Ports UnTagged Ports Created by
---- ----------------- ------------------ ------------------ ----------------
1 1 gi1-20 D
Po1-8
200 home-multimedia S
300 home-domotique S
400 home-production S
500 home-sensible S
600 home-wifi S
700 home-vpn S
La configuration des ports access
L’ajout d’un port dans un VLAN se fait en mode access comme ceci :
sg300(config)#interface GigabiteEthernet 1
sg300(config-if)#description pc-fixe
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 200
sg300(config)#interface GigabiteEthernet 2
sg300(config-if)#description pc-fixe
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 200
sg300(config)#interface GigabiteEthernet 3
sg300(config-if)#description srv-intel-1
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 500
sg300(config)#interface GigabiteEthernet 4
sg300(config-if)#description srv-intel-2
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 500
sg300(config)#interface GigabiteEthernet 5
sg300(config-if)#description srv-raspberry
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 500
sg300(config)#interface GigabiteEthernet 6
sg300(config-if)#description dom-hue
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 300
sg300(config)#interface GigabiteEthernet 7
sg300(config-if)#description multimedia-PS3
sg300(config-if)#switchport mode access
sg300(config-if)#switchport access vlan 200
La configuration de port genéeral
Dans ce cas précis, nous souhaitons que nos ports (cisco) se connectent sur les ports du routeur (edgeOS). Nous utiliserons le mode general qui est différent du trunk. Nous taggons comme ceci nos ports en mode general en autorisant une liaison avec les VLAN correspondants :
sg300(config)#interface GigabiteEthernet 9
sg300(config-if)#description home-multimedia
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 200
sg300(config-if)#switchport general allowed vlan add 200
sg300(config)#interface GigabiteEthernet 10
sg300(config-if)#description home-domotique
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 300
sg300(config-if)#switchport general allowed vlan add 300
sg300(config)#interface GigabiteEthernet 11
sg300(config-if)#description home-production
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 400
sg300(config-if)#switchport general allowed vlan add 400
sg300(config)#interface GigabiteEthernet 12
sg300(config-if)#description home-sensible
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 500
sg300(config-if)#switchport general allowed vlan add 500
sg300(config)#interface GigabiteEthernet 13
sg300(config-if)#description home-wifi
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 600
sg300(config-if)#switchport general allowed vlan add 600
sg300(config)#interface GigabiteEthernet 14
sg300(config-if)#description home-vpn
sg300(config-if)#switchport mode general
sg300(config-if)#switchport general pvid 700
sg300(config-if)#switchport general allowed vlan add 700
Configuration des interfaces VLAN :
Le routage de niveau 3 est actuellement en place sur le switch. Nous configurerons chaqu’une des interfaces VLAN :
sg300(config)#interface vlan 200
sg300(config-if)# ip address 192.168.20.2 255.255.255.240
sg300(config)#interface vlan 300
sg300(config-if)# ip address 192.168.30.2 255.255.255.240
sg300(config)#interface vlan 400
sg300(config-if)# ip address 192.168.40.2 255.255.255.240
sg300(config)#interface vlan 500
sg300(config-if)# ip address 192.168.50.2 255.255.255.240
sg300(config)#interface vlan 600
sg300(config-if)# ip address 192.168.60.2 255.255.255.240
sg300(config)#interface vlan 700
sg300(config-if)# ip address 192.168.70.2 255.255.255.240
Une fois la configuration de nos interfaces terminées nous enregistrerons notre travail :
sg300#copy running-config startup-config
Overwrite file [startup-config].... (Y/N)[N] ?Y
25-Dec-2015 21:11:00 %LINK-W-Down: gi6, aggregated (1)
25-Dec-2015 21:11:02 %LINK-I-Up: gi6, aggregated (1)
25-Dec-2015 21:11:06 %STP-W-PORTSTATUS: gi6: STP status Forwarding, aggregated (1)
25-Dec-2015 21:12:46 %COPY-I-FILECPY: Files Copy - source URL running-config destination URL flash://startup-config
25-Dec-2015 21:12:50 %COPY-N-TRAP: The copy operation was completed successfully
Copy succeeded
sg300#25-Dec-2015 21:13:08 %LINK-W-Down: gi6, aggregated (1)
25-Dec-2015 21:13:10 %LINK-I-Up: gi6, aggregated (1)
25-Dec-2015 21:13:15 %STP-W-PORTSTATUS: gi6: STP status Forwarding, aggregated (1)
Désormais les interconnexions souhaitées sont en place.
Le serveur DHCP
Nous avons aussi la possibilité d’utiliser l’attribution automatique des adresses IP sur les hôtes présents dans nos vlans. Pour cela il suffit d’utiliser un service indispensable dans tous les réseaux le serveur DHCP alors nous avons deux cas possibles :
-
Le switch Cisco (layer3)
sg300(config)# ip dhcp pool network multimedia-dhcp
sg300(config-dhcp)#network 192.168.20.0 255.255.255.240
sg300(config-dhcp)#dns-server 8.8.8.8
sg300(config-dhcp)#default-router 192.168.20.1
sg300(config-dhcp)#address low 192.168.20.3 high 192.168.20.14 255.255.255.240
-
Le routeur Ubiquiti EdgeOS
set service dhcp-server shared-network-name multimedia-dhcp
set service dhcp-server shared-network-name multimedia-dhcp subnet 192.168.20.0/28
set service dhcp-server shared-network-name multimedia-dhcp subnet 192.168.20.0/28 default-router 192.168.20.1
set service dhcp-server shared-network-name multimedia-dhcp subnet 192.168.20.0/28 dns-server 8.8.8.8
set service dhcp-server shared-network-name multimedia-dhcp subnet 192.168.20.0/28 start 192.168.20.3 stop 192.168.20.10
Dans mon cas j’utilise le routeur EdgeOS.
La sécurité des réseaux
Nous sommes dans un environnement cloisonné par les VLAN et nous avons un masque CIDR par réseau. Cependant il serait faux de croire que nous sommes sécurisés face à des potentiels attaquants. Nous allons encore devoir œuvrer pour réussir à être à un niveau acceptable.
La table d’adresse mac : anti-spoofing
Il est peu probable que votre table d’adresse mac change très souvent. Dans un environnement domestique nos appareils sont généralement toujours les mêmes. Nous allons modifier notre table d’adresse mac pour que l’ensemble soit sécurisé et ce afin de palier à tout changement forcé (attack spoofing).
Voici notre table actuellement (type : dynamic par défaut) :
sg300#show mac address-table
Flags: I - Internal usage VLAN
Aging time is 300 sec
Vlan Mac Address Port Type
------------ --------------------- ---------- ----------
1 00:00:00:00:00:a1 0 self
300 00:00:00:00:00:a2 gi6 dynamic
300 00:00:00:00:00:a3 gi10 dynamic
400 00:00:00:00:00:a4 gi11 dynamic
400 00:00:00:00:00:a5 gi1 dynamic
On remarque que les interfaces VLAN s’affichent (gi6 et gi1) ainsi que les hôtes du VLAN allumés (gi10 et gi11).
Le port security : discard-shutdown
Nous avons la possibilité de mettre le port en type static mais il est important qu’une action sur le port se déclenche lors d’un changement d’adresse mac : activons-le en mode secure sur le switch. Voici comment l’activer :
sg300(config)#interface GE 6
sg300(config-if)#port security mode secure permanent
sg300(config-if)#port security discard-shutdown trap 60
Nous allons désormais sécuriser notre adresse mac dans notre table :
sg300(config)#mac address-table static 00:00:00:00:00:a2 vlan 300 interface GE 6 secure
Quand une autre adresse mac sera détectée sur le port, celui-ci sera désactivé automatiquement :
08-May-2016 18:44:21 %LINK-I-Up: gi6, aggregated (1)
08-May-2016 18:44:26 %STP-W-PORTSTATUS: gi6: STP status Forwarding, aggregated (1)
08-May-2016 18:44:26 %LINK-W-PORT_SUSPENDED: Port gi6 suspended by port-security
Nous avons la possibilité de visualiser l’état des ports désactivés :
sg300#show errdisable interfaces
Interface Reason
------------- ------------------
gi6 port-security
Nous n’investigerons pas dans notre exemple, voici la méthode pour remettre le port en fonction :
sg300#errdisable recovery reset interface GE 6
sg300#errdisable recovery cause08-Jan-2016 19:50:18 %LINK-I-Up: gi6
sg300#08-Jan-2016 19:50:22 %STP-W-PORTSTATUS: gi6: STP status Forwarding
Garantir une meilleur sécurité sous iOS
Mon switch ne communique pas avec le web directement, nous désactivons les requêtes DNS :
sg300(config)#no ip domain lookup
La désactivation du protocole de découverte cisco (cdp) est absolument nécessaire pour garantir sa sécurité :
sg300(config)#no cdp run
Les services non-sécurisés comme http et telnet sont aussi à proscrire dans le cas d’une gestion de sa sécurité :
sg300(config)#no ip http server
sg300(config)#no ip telnet server
La désactivation des interfaces non-utilisées est primordiale afin de ne pas laisser un attaquant disposer du switch :
sg300(config)#int GE 14
sg300(config-if)#shutdown
Modifier le port du serveur SSH en 18759 par exemple :
sg300(config)#ip ssh port 18759
Nous allons nous contenter (pour le moment) de la sécurité suivante sur le switch, retournons voir notre routeur !
Les règles de firewall : edgeOS
Nous allons commencer par une règle pare-feu simple qui consiste à bloquer les IP dites bogon avec la liste suivante.
Nous créons un groupe de réseau dans le pare-feu nommé : bogons network
set firewall group network-group bogons
set firewall group network-group bogons description "invalid wan networks"
set firewall group network-group bogons network 0.0.0.0/8
set firewall group network-group bogons network 10.0.0.0/8
set firewall group network-group bogons network 100.64.0.0/10
set firewall group network-group bogons network 127.0.0.0/8
set firewall group network-group bogons network 169.254.0.0/16
set firewall group network-group bogons network 172.16.0.0/12
set firewall group network-group bogons network 192.0.0.0/24
set firewall group network-group bogons network 192.0.2.0/24
set firewall group network-group bogons network 192.168.0.0/16
set firewall group network-group bogons network 198.18.0.0/15
set firewall group network-group bogons network 198.51.100.0/24
set firewall group network-group bogons network 203.0.113.0/24
set firewall group network-group bogons network 224.0.0.0/4
set firewall group network-group bogons network 240.0.0.0/4
Nous créons la règle de pare-feu suivante : internet (WAN)
set firewall name internet
set firewall name internet defaut-action drop
set firewall name internet rule 1 action accept
set firewall name internet rule 1 state estabished enable
set firewall name internet rule 1 related enable
set firewall name internet rule 2 action drop
set firewall name internet rule 2 log disable
set firewall name internet rule 2 state invalid enable
set firewall name internet rule 3 action drop
set firewall name internet rule 3 description "drop ipv4 bogons"
set firewall name internet rule 3 source group network-group bogons
Nous créons la règle de pare-feu suivante : Production-internet (inter-zone)
set firewall name production-internet
set firewall name production-internet defaut-action drop
set firewall name production-internet rule 1 action accept
set firewall name production-internet rule 1 state estabished enable
set firewall name production-internet rule 1 related enable
set firewall name production-internet rule 2 action drop
set firewall name production-internet rule 2 log disable
set firewall name production-internet rule 2 state invalid enable
set firewall name production-internet rule 3 action accept
set firewall name production-internet rule 3 description "allow ping"
set firewall name production-internet rule 3 log enable
set firewall name production-internet rule 3 protocop icmp
set firewall name production-internet rule 4 action accept
set firewall name production-internet rule 4 description "allow dns"
set firewall name production-internet rule 4 port 53
set firewall name production-internet rule 4 log enable
set firewall name production-internet rule 4 protocop icmp
set firewall name production-internet rule 5 action accept
set firewall name production-internet rule 5 description "allow webpage traffic"
set firewall name production-internet rule 5 destination port 80,443
set firewall name production-internet rule 5 log enable
set firewall name production-internet rule 5 protocop tcp
set firewall name production-internet rule 6 action accept
set firewall name production-internet rule 6 description "allow ftp"
set firewall name production-internet rule 6 destination port 20,21
set firewall name production-internet rule 6 log enable
set firewall name production-internet rule 6 protocop tcp
set firewall name production-internet rule 7 action accept
set firewall name production-internet rule 7 description "allow ssh"
set firewall name production-internet rule 7 destination port 22
set firewall name production-internet rule 7 log enable
set firewall name production-internet rule 7 protocop tcp
set firewall name production-internet rule 8 action accept
set firewall name production-internet rule 8 description "allow vnc"
set firewall name production-internet rule 8 destination port 5900-5910
set firewall name production-internet rule 8 protocop tcp
set firewall name production-internet rule 9 action accept
set firewall name production-internet rule 9 description "allow openvpn"
set firewall name production-internet rule 9 destination port 1194
set firewall name production-internet rule 9 protocop tcp_udp
Nous créons la règle de pare-feu suivante : multimedia-internet (inter-zone)
set firewall name multimedia-internet
set firewall name multimedia-internet defaut-action drop
set firewall name multimedia-internet rule 1 action accept
set firewall name multimedia-internet rule 1 state estabished enable
set firewall name multimedia-internet rule 1 related enable
set firewall name multimedia-internet rule 2 action drop
set firewall name multimedia-internet rule 2 log disable
set firewall name multimedia-internet rule 2 state invalid enable
set firewall name multimedia-internet rule 3 action accept
set firewall name multimedia-internet rule 3 description "allow ping"
set firewall name multimedia-internet rule 3 log enable
set firewall name multimedia-internet rule 3 protocop icmp
set firewall name multimedia-internet rule 4 action accept
set firewall name multimedia-internet rule 4 description "allow dns"
set firewall name multimedia-internet rule 4 port 53
set firewall name multimedia-internet rule 4 log enable
set firewall name multimedia-internet rule 4 protocop icmp
set firewall name multimedia-internet rule 5 action accept
set firewall name multimedia-internet rule 5 description "allow webpage traffic"
set firewall name multimedia-internet rule 5 destination port 80,443
set firewall name multimedia-internet rule 5 log enable
set firewall name multimedia-internet rule 5 protocop tcp
Nous créons la règle de pare-feu suivante : sensible-internet (inter-zone)
set firewall name sensible-internet
set firewall name sensible-internet defaut-action drop
set firewall name sensible-internet rule 1 action accept
set firewall name sensible-internet rule 1 state estabished enable
set firewall name sensible-internet rule 1 related enable
set firewall name sensible-internet rule 2 action drop
set firewall name sensible-internet rule 2 log disable
set firewall name sensible-internet rule 2 state invalid enable
set firewall name sensible-internet rule 3 action accept
set firewall name sensible-internet rule 3 description "allow ping"
set firewall name sensible-internet rule 3 log enable
set firewall name sensible-internet rule 3 protocop icmp
set firewall name sensible-internet rule 4 action accept
set firewall name sensible-internet rule 4 description "allow dns"
set firewall name sensible-internet rule 4 port 53
set firewall name sensible-internet rule 4 log enable
set firewall name sensible-internet rule 4 protocop icmp
set firewall name sensible-internet rule 5 action accept
set firewall name sensible-internet rule 5 description "allow webpage traffic"
set firewall name sensible-internet rule 5 destination port 80,443
set firewall name sensible-internet rule 5 log enable
set firewall name sensible-internet rule 5 protocop tcp
Nous créons la règle de pare-feu suivante : domotique-internet (inter-zone)
set firewall name domotique-internet
set firewall name domotique-internet defaut-action drop
set firewall name domotique-internet rule 1 action accept
set firewall name domotique-internet rule 1 state estabished enable
set firewall name domotique-internet rule 1 related enable
set firewall name domotique-internet rule 2 action drop
set firewall name domotique-internet rule 2 log disable
set firewall name domotique-internet rule 2 state invalid enable
set firewall name domotique-internet rule 3 action accept
set firewall name domotique-internet rule 3 description "allow ping"
set firewall name domotique-internet rule 3 log enable
set firewall name domotique-internet rule 3 protocop icmp
set firewall name domotique-internet rule 4 action accept
set firewall name domotique-internet rule 4 description "allow dns"
set firewall name domotique-internet rule 4 port 53
set firewall name domotique-internet rule 4 log enable
set firewall name domotique-internet rule 4 protocop icmp
set firewall name domotique-internet rule 5 action accept
set firewall name domotique-internet rule 5 description "allow webpage traffic ssl"
set firewall name domotique-internet rule 5 destination port 443
set firewall name domotique-internet rule 5 log enable
set firewall name domotique-internet rule 5 protocop tcp
Nous créons la règle de pare-feu suivante : wifi-internet (inter-zone)
set firewall name wifi-internet
set firewall name wifi-internet defaut-action drop
set firewall name wifi-internet rule 1 action accept
set firewall name wifi-internet rule 1 state estabished enable
set firewall name wifi-internet rule 1 related enable
set firewall name wifi-internet rule 2 action drop
set firewall name wifi-internet rule 2 log disable
set firewall name wifi-internet rule 2 state invalid enable
set firewall name wifi-internet rule 3 action accept
set firewall name wifi-internet rule 3 description "allow ping"
set firewall name wifi-internet rule 3 log enable
set firewall name wifi-internet rule 3 protocop icmp
set firewall name wifi-internet rule 4 action accept
set firewall name wifi-internet rule 4 description "allow dns"
set firewall name wifi-internet rule 4 port 53
set firewall name wifi-internet rule 4 log enable
set firewall name wifi-internet rule 4 protocop icmp
set firewall name wifi-internet rule 5 action accept
set firewall name wifi-internet rule 5 description "allow webpage traffic"
set firewall name wifi-internet rule 5 destination port 80,443
set firewall name wifi-internet rule 5 log enable
set firewall name wifi-internet rule 5 protocop tcp
Nous créons la règle de pare-feu suivante : vpn-internet (inter-zone)
set firewall name vpn-internet
set firewall name vpn-internet defaut-action drop
set firewall name vpn-internet rule 1 action accept
set firewall name vpn-internet rule 1 state estabished enable
set firewall name vpn-internet rule 1 related enable
set firewall name vpn-internet rule 2 action drop
set firewall name vpn-internet rule 2 log disable
set firewall name vpn-internet rule 2 state invalid enable
set firewall name vpn-internet rule 3 action accept
set firewall name vpn-internet rule 3 description "allow ping"
set firewall name vpn-internet rule 3 log enable
set firewall name vpn-internet rule 3 protocop icmp
set firewall name vpn-internet rule 4 action accept
set firewall name vpn-internet rule 4 description "allow dns"
set firewall name vpn-internet rule 4 port 53
set firewall name vpn-internet rule 4 log enable
set firewall name vpn-internet rule 4 protocop icmp
set firewall name vpn-internet rule 5 action accept
set firewall name vpn-internet rule 5 description "allow ssh"
set firewall name vpn-internet rule 5 destination port 22
set firewall name vpn-internet rule 5 log enable
set firewall name vpn-internet rule 5 protocop tcp
Nous créons la règle de pare-feu suivante : sensible-production (inter-zone)
Nous créons la règle de pare-feu suivante : production-sensible (inter-zone)
Les zones-policy
Les zones policy permettent de restreindre une ou plusieurs interfaces dans une zone unique et totalement fermée.
Elle fonctionnent par paire (exemple « internet > multimedia » et « multimedia > internet ») et les règles de pare-feu permettrons à ses zone paire de communiquer ou non entre elles.
Voici ma configuration internet > multimedia, domotique, production, sensible, wifi, vpn avec leurs règles pare-feu.
set zone-policy zone internet
set zone-policy zone internet defaut-action drop
set zone-policy zone internet from multimedia firewall name multimedia-internet
set zone-policy zone internet from domotique firewall name domotique-internet
set zone-policy zone internet from production firewall name production-internet
set zone-policy zone interent from sensible firewall name sensible-internet
set zone-policy zone internet from wifi firewall name wifi-internet
set zone-policy zone internet from vpn firewall name vpn-internet
set zone-policy zone internet interfaces eth0
set zone-policy zone internet interfaces eth1
Voici ma configuration multimedia > internet avec sa règle pare-feu
set zone-policy zone multimedia
set zone-policy zone multimedia defaut-action drop
set zone-policy zone multimedia from internet firewall name internet
set zone-policy zone multimedia interfaces eth2.200
Voici ma configuration domotique > internet avec sa règle pare-feu
set zone-policy zone domotique
set zone-policy zone domotique defaut-action drop
set zone-policy zone domotique from internet firewall name internet
set zone-policy zone domotique interfaces eth3.300
Voici ma configuration production > internet avec sa règle pare-feu
set zone-policy zone production
set zone-policy zone production defaut-action drop
set zone-policy zone production from internet firewall name internet
set zone-policy zone production interfaces eth4.400
Voici ma configuration sensible > internet avec sa règle pare-feu
set zone-policy zone sensible
set zone-policy zone sensible defaut-action drop
set zone-policy zone sensible from internet firewall name internet
set zone-policy zone sensible interfaces eth5.500
Voici ma configuration wifi > internet avec sa règle pare-feu
set zone-policy zone wifi
set zone-policy zone wifi defaut-action drop
set zone-policy zone wifi from internet firewall name internet
set zone-policy zone wifi interfaces eth6.600
Voici ma configuration vpn > internet avec sa règle pare-feu
set zone-policy zone vpn
set zone-policy zone vpn defaut-action drop
set zone-policy zone vpn from internet firewall name internet
set zone-policy zone vpn interfaces eth7.700
Nous avons ajouté nos interfaces correspondantes dans chacune des zones afin que les règles de pare-feu soient actives.
Deep Packet Inspection
Une fonctionnalité de DPI est proposée dans le routeur edgeOS, vous avez la possibilité de l’activer :
set system traffic-analysis dpi enable
Ensuite rendez-vous sur l’interface web de votre routeur dans l’onglet :
Proxy serveur
Le serveur proxy (transparent) est un élément important car il permet d’éviter certaines catégories de sites connus lors la navigation web. Par exemple, je bloque certaines catégories de sites telles que :
ads mixed_adult remote-control adult cdrogue lingerie sect tricheur aggressive drugs phishing sexual_education agressif childliste_bu porn violence arjel warez associations_religieuses proxy
astrology dangerous_material publicite special dating gambling malware ddos reaffected strict_redirector dialer hacking marketingware redirector strong_redirector
Il est important de faire des mises à jour régulières des listes de ces sites comme ceci :
set service webproxy url-filtering squidguard auto-update update-hour 2
Ou pour forcer manuellement la mise à jour :
update webproxy blacklists
Désormais nous allons configurer le proxy afin qu’il bloque une catégorie comme :
set service webproxy url-filtering squidguard block-category adult
Un management sécurisé : edgeOS
Nous allons générer une paire de clé publique / privée sous notre système d’exploitation (Linux pour ma part) :
ssh-keygen -t rsa
Nous copions ensuite la clé publique sur l’équipement distant (exemple vers le routeur edgeOS)
ssh-copy-id -i /home/jeremie/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh [email protected]"
and check to make sure that only the key(s) you wanted were added.
Si vous souhaitez désactiver l’authentification SSH par mot de passe sur edgeOS :
set service ssh disable-password-authentication
Un management sécurisé : iOS
De la même façon nous configurerons le serveur SSH du switch avec notre clé publique :
sg300#configure
sg300(config)#ip ssh server
sg300(config)#ip ssh pubkey-auth auto-login
sg300(config)#username jeremie password "mypassword" privilege 15
sg300(config)#crypto key pubkey-chain ssh
sg300(config-pubkey-chain)#user-key jeremie rsa
sg300(config-pubkey-key)#key-string
<coller le contenu de votre clé publique (/home/jeremie/.ssh/id_rsa.pub)>
Fingerprint: ee:3a:80:vc:49:00:1r:12:36:17:b4:ff:e7:60:rv:19
sg300(config-pubkey-key)#exit
sg300(config-pubkey-chain)#exit
sg300(config)#exit
sg300#show crypto key pubkey-chain ssh
Username Fingerprint
-------------- ---------------------------------------------------------------
jeremie ee:3a:80:vc:49:00:1r:12:36:17:b4:ff:e7:60:rv:19
La prochaine connexion sur le routeur et le switch sera plus sécurisé et plus rapide avec cette méthode.
La conclusion :
J’ai globalement un réseau sécurisé : ou du moins plus sécurisé que l’ancien schéma de la simple box opérateur. Nous avons vu ensemble que cela requière une adaptation et des connaissances précises. Désormais la moindre modification sur le réseau nous demandra de procéder à une mise en conformité par une action : ce qui nous garantirera une maîtrise total de notre infrastructure domestique. Pour ma part, je ne regrette absolument pas mon choix car une fois la configuration en place tout ceci est transparent (mis à part quand je souhaite ouvrir des ports spécifiques comme steam).