Remplacer la LiveBox : configuration, évolutivité, sécurité …

Catégories Projets

Pourquoi remplacer sa Livebox ?

On ne va pas s’étendre sur les raisons qui motivent chacun dans le remplacement de sa Livebox. Sachez juste que personnellement, ce ne sont pas des mauvais fonctionnement qui m’ont amené à remplacer ma petite LiveBox.

L’envie de gérer comme un grand mon réseau et de faire ce que j’avais envie à été le moteur de ce projet.

Journal des mises à jourMontrer


/!\ Article en cours de rédaction /!\

Objectifs

  1. Avoir un réseau PRIVE étanche
  2. Avoir un réseau PUBLIC étanche
  3. Le réseau PUBLIC aura des restrictions
  4. Maîtrise de mon réseau local
  • VLAN « VLAN_01_PRIVE » : VLAN ID : 100; adresse IP : 192.168.100.254/24
  • VLAN « VLAN_02_PUBLIC » : VLAN ID : 200; adresse IP : 192.168.200.254/24

Contexte (pré-requis)

  • Je dispose d’un bon vernis réseau.
  • Je dispose d’un modem pour établir la synchronisation ADSL ou d’une offre fibre avec un ONT.
  • J’ai réussi à installer pfSense sur mon châssis.
  • J’ai réalisé le câblage de mon châssis.
  • Je suis prêt à configurer logiciellement mon châssis.

Si un point/option/fonction n’est pas abordé, c’est que sa valeur est celle par défaut ou que c’est un oubli de ma part ;).

Liste des courses

Matériel

Chassis

Logiciel

Au niveau logiciel, j’ai choisi la distribution pfSense. Je changerai peut-être de crèmerie plus tard si cette distribution montre ses limites, mais à la lecture des fonctionnalités, elle comprend tout ce dont nous avons besoin :). A noter l’existence d’une liste des distributions de routeur et de pare-feu sur Wikipedia plutôt bien faîte et à jour.

pfSense est une distribution open source (licence BSD) gratuite pour transformer un pc en pare-feu. La base du système est FreeBSD, et pfSense est un fork de mOnOwall.

L’installation est relativement simple et entièrement en console. Après l’installation des questions sont posées pour créer une configuration rapide des interfaces réseaux à assigner. pfSense ne fait pas seulement firewall, elle offre toute une panoplie de services réseaux. Je vais vous en présenter un partie, celles que j’ai utilisés ou qui me semblent intéressantes :

  • Pare-feu : indispensable pour une distribution « firewall » ;). Le firewall est celui de FreeBSD, à savoir PacketFilter.
  • Table d’état : La table d’état (« State Table ») contient les informations sur les connexions réseaux. Cela permet d’avoir un aperçu des connexions et surtout de créer des règles par exemple sur le nombre de connexion maximum pour un hôte.
  • Traduction d’adresses réseaux (NAT) : Permet de joindre une machine situé sur le LAN à partir de l’extérieur.
  • VPN : permet la création de VPN IpSec, OpenVPN ou PPTP.
  • Serveur DHCP.
  • Serveur DNS et DNS dynamiques.
  • Portail Captif.
  • Redondance et équilibrage de charge.
  • Graphes pour la charge système et réseaux.
  • Les logiciels s’installent grâce à un système de paquet. Il sont configurés pour s’intégrer à l’interface web. Dans les paquets il y a par exemple nut (pour le monitoring des onduleurs) et FreeRADIUS. Le nombre de paquets augmente régulièrement. Il est aussi possible d’installer d’autres paquets que ceux proposés par l’interface, en ligne de commande.

J’apprécie beaucoup cette distribution pour sa mise en œuvre rapide, facile et efficace. Le développement est régulier et se base sur les avancées de FreeBSD. De plus elle permet une maintenance et des évolutions faciles.

Avantages & Inconvénients

Comme toute solution de routeur/pare-feu, pfSense possède son lot d’avantages et d’inconvénients. Mais sa polyvalence et le nombre conséquent de fonctionnalités font de cet outil une solution fiable. pfSense est très peu gourmand en termes de ressources. En effet, la configuration minimale requiert un processeur équivalent ou supérieur à 500Mhz quand la mémoire exigée est de 256Mo. Vous n’aurez donc aucune difficulté à mettre en place cette solution !

En revanche, et malgré les nombreux avantages de cette solution, il faudra s’assurer d’avoir les connaissances nécessaires pour déployer cette solution. Elle se destine donc déjà à un public avertis.

Source : www.generation-linux.fr

[amazon_link asins=’1786463431,1489149066,B00CAYNFOW,B00LY1FWNY,0979034280′ template=’ProductGrid’ store=’romaind-21′ marketplace=’FR’ link_id=’ebd078df-bf26-11e7-83c1-8dc8cce42485′]

Firewall

Configuration générale

System > General setup

Certains de ces paramètres auront été configurés pendant le processus d’installation, mais peuvent être modifié à tout moment.

Lors d’une nouvelle installation, les informations d’identification par défaut sont:

Nom d'utilisateur: admin
Mot de passe: pfsense
  • Hostname : Entrez un nom d’hôte. Ce nom sera utilisé pour accéder à la machine par son nom à la place de l’adresse IP. Par exemple, nous pouvons naviguer vers http://pfsense au lieu de http://192.168.1.1.
  • Domain : monreseau.lan (par exemple)
  • DNS Servers : pour trouver les meilleurs serveurs DNS selon votre FAI, réaliser un benchmark avec cet outil
  • Timezone : votre fuseau horaire

VLAN

Un réseau local virtuel, communément appelé VLAN (pour Virtual LAN), est un réseau informatique logique indépendant. De nombreux VLAN peuvent coexister sur un même commutateur réseau.

Les VLAN présentent les intérêts suivants :

  • Améliorer la gestion du réseau.
  • Optimiser la bande passante.
  • Séparer les flux.
  • Segmentation : réduire la taille d’un domaine de broadcast,
  • Sécurité : permet de créer un ensemble logique isolé pour améliorer la sécurité. Le seul moyen pour communiquer entre des machines appartenant à des VLAN différents est alors de passer par un routeur.

Lorsque nous créons un VLAN, nous définissons deux éléments :

  • le subnet associé (ex : 192.168.100.0/24)
  • l’ID du VLAN (allant de 1 à 4094)

Le VLAN 1 est créé par défaut et tous les ports du switch appartiennent à ce VLAN

Les terminaux se trouvant sur un VLAN ne pourront communiquer qu’avec les autres terminaux se trouvant sur le même VLAN. S’ils souhaitent communiquer avec les terminaux d’un autre VLAN, les paquets passeront par pfSense. Cela nous permet de configurer au niveau de pfSense des règles fines de filtrage d’un VLAN à un autre.

Les VLANs doivent être déclarés et configurés côté pfSense d’une part, et sur les switches d’autre part (qui doivent bien-sûr être des switches de niveau 3 – c’est-à-dire sachant travailler avec les paquets IP).

La configuration des switches est le point le plus délicat. La terminologie employée n’étant pas toujours la même chez les constructeurs.

Terminologie

Lorsque nous souhaitons configurer les VLAN sur notre switch, nous avons deux possibilités de configuration :

  • tagged port (= trunk port chez Cisco)
  • untagged port (= access port chez Cisco)

Tagged port

Un port de switch configuré en « tagged » signifie que l’équipement branché derrière est capable de traiter les tags 802.1q et qu’il est configuré pour les traiter. C’est-à-dire qu’il faudra indiquer dans la configuration de l’équipement qu’il doit marquer ses paquets réseau avec son VLAN d’appartenance.

Untagged port

Un port de switch configuré en « untagged » signifie que la notion de VLAN est totalement transparente pour l’équipement branché derrière. C’est-à-dire qu’il ignore son VLAN de rattachement. C’est le switch qui utilise l’id VLAN associé pour son traitement interne pour la distribution des paquets sur ses ports. Les paquets ne sont pas taggués 802.1q en entrée et sortie des ports du switch configurés en « untagged ».

Configuration d’un VLAN privé et public

 

Sur pfSense, nous configurerons donc deux VLANs :

  1. VLAN « VLAN_01_PRIVE » : VLAN ID : 100; adresse IP : 192.168.100.254/24
  2. VLAN « VLAN_02_PUBLIC » : VLAN ID : 200; adresse IP : 192.168.200.254/24

Pour commencer, nous allons dans le menu « Interface » > « (assign) ».

Puis, nous nous rendons dans l’onglet « VLANs » et cliquons sur l’icône en forme de « + » se trouvant en bas à droite.

Les éléments de configurations sont les suivants :

Parent interface : l’interface physique à laquelle sera rattachée le VLAN (dépendante de votre châssis)

  1. VLAN tag : l’ID du VLAN (la valeur doit être comprise entre 1 et 4094), nous choisirons 100
  2. Description : champ optionnel de description du VLAN : VLAN_01_PRIVE

Et une fois nos deux VLANs créés, nous disposons de deux interfaces virtuelles :

Afin de configurer nos VLANs, nous devons maintenant associer ces interfaces virtuelles à des interfaces logiques. Pour cela, nous retournons dans l’onglet « Interface assignments », puis nous cliquons sur l’icône en forme de « + » se trouvant un bas à droite afin d’ajouter une nouvelle interface logique.

Par défaut, l’interface logique créée porte le nom « OPT1 » (ou OPT2, OPT3, etc.). Nous associons cette interface logique à l’interface virtuelle du VLAN que nous avons créée précédemment/

Pour modifier l’interface logique créée (et la renommer), nous cliquons sur son nom. Les éléments de configuration sont les suivants :

  • Enable Interface : cocher cette case pour activer l’interface
  • Description : nom de l’interface
  • IPv4 Configuration Type : la configuration IPv4 de cette interface. Dans notre cas, nous choisissons « Static IPv4 »
  • IPv6 Configuration Type : la configuration IPv6 de cette interface. Dans notre cas, nous choisissons « None »
  • MAC controls : par défaut, c’est l’adresse MAC de l’interface physique qui est utilisée. Elle peut être personnalisée ici

Enfin, nous appliquons les paramètre de configuration IP (adresse IP de l’interface et masque réseau associé).

  • « VLAN_01_PRIVE » : adresse IP : 192.168.100.254/24
  • « VLAN_02_PUBLIC » : adresse IP : 192.168.200.254/24

Exemple de résultat obtenu :

Enfin, nous créons une règle de firewall sur notre nouvelle interface logique (« VLAN_01_PRIVE ») afin d’autoriser le trafic.

La configuration côté pfSense est terminée. Il reste à procéder à la configuration côté Switch.

Source : www.provya.net

Configuration du Switch

Un switch ne peut avoir sur un port donné qu’un seul VLAN configuré en « untagged » (access). Il peut y avoir, sur ce même port, plusieurs VLANs configurés en « tagged » (trunk).

Le VLAN 1 est créé par défaut et tous les ports du switch appartiennent à ce VLAN

La configuration des VLAN sur le switch dépend du constructeur. Cependant, les étapes à suivre seront toujours les mêmes :

  1. Déclaration des VLAN sur le switch – sur la plupart des switches, il faut déclarer les VLANs avant de pouvoir les configurer sur n’importe quel port (dans notre cas, nous déclarons 2 VLAN : VLAN_01_PRIVE avec l’ID 100 et VLAN_02_PUBLIC avec l’ID 200)
  2. Configuration du port du switch sur lequel est branché le pfSense en mode trunk (ou tagged) sur les VLAN 100 et 200
  3. Configurer les ports du switch sur lesquels seront branchés les périphériques PRIVE en mode access (ou untagged) – dans notre cas sur le VLAN 100
  4. Configurer les ports du switch sur lesquels seront branchés les périphériques PUBLIC en mode trunk (ou tagged) – dans notre cas sur le VLAN 200

Exemple sur un switch Netgear GSS108E-100EUS :

[amazon_link asins=’B00RDZOLHI’ template=’ProductAd’ store=’romaind-21′ marketplace=’FR’ link_id=’6c2784d8-b9ce-11e7-aeff-3b74f92c89e8′]

Exemple de configuration :

VLANPort 01Port 02Port 03Port 04Port 05Port 06Port 07Port 08
1TTTTTTUU
100UUUUUTTT
200TTTTTUTT

 

Port 01Port 02Port 03Port 04Port 05Port 06Port 07Port 08
pfSenseSalonChambreBureauWi-FipfSense – Guest

Firewall : fonctions

DHCP dynamique et DHCP statique + DHCP Forwarder

Dynamic Host Configuration Protocol (DHCP, protocole de configuration dynamique des hôtes) est un protocole réseau dont le rôle est d’assurer la configuration automatique des paramètres IP d’une station ou d’une machine, notamment en lui affectant automatiquement une adresse IP et un masque de sous-réseau. DHCP peut aussi configurer l’adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft).

Nous allons configurer ici pfSense en tant que serveur DHCP pour des adresses IPv4.

Services > DHCP Server

On commence par choisir l’interface sur laquelle on souhaite activer le serveur DHCP. Dans notre cas, ce sera « VLAN_01_PRIVE ».

Pour commencer, nous cochons évidemment la case « Enable DHCP server on VLAN_01_PRIVE interface ».

  • Deny unknown clients : cette option permet de filtrer les requêtes DHCP.

Par défaut (option non-cochée), pfSense attribue une adresse IP à n’importe quel terminal connecté sur le réseau qui fait une demande d’adresse IP. C’est, à priori, le mode souhaité dans la plupart des cas. Cependant, il est possible, dans des environnements plus restrictifs, de n’autoriser la distribution d’adresses IP qu’aux terminaux connus (c’est-à-dire dont l’adresse MAC a été renseignée dans pfSense) ; dans ce cas, cette case doit être cochée. Il est à noter que cette option se définit par plage d’adresses.

  • Subnet : cette ligne rappelle l’adresse du réseau.
  • Subnet mask : cette ligne rappelle le masque de sous-réseau.
  • Available range : cette ligne donne la plage maximale sur laquelle des adresses IP peuvent être attribuées. Cette information est bien pratique pour les réseaux n’étant pas en /24.
  • Range : permet de définir la plage d’adresses IP qui sera utilisée.

Par défaut, pfSense propose la plage d’adresse allant de 100 à 199 (soit, par exemple, 192.168.100.100 à 192.168.100.199). Nous sommes libres de la modifier dans la limite de la taille maximale rappelée à la ligne précédente (available range).

Si nous souhaitons définir plusieurs plages d’adresses IP différentes (soit pour filtrer les terminaux connus des terminaux inconnus, soit pour d’autres raisons liées à notre architecture réseau), il est possible de définir plusieurs plages d’adresses IP (ligne Additional Pools).

Pour ajouter une seconde plage d’adresses IP, cliquer sur le « + » correspondant. Cela aura pour effet d’ouvrir une nouvelle fenêtre permettant de définir l’ensemble des paramètres propres à cette plage d’adresses IP.

Évidemment, cette option n’est utile que si nous disposons d’un serveur WINS sur notre réseau. Les serveurs WINS n’ont pas forcément besoin d’être sur le même subnet (dans ce cas, il faut veiller à bien configurer les règles de routage et de filtrage au niveau du firewall). Dans le cas où nous n’utilisons pas de serveur WINS (ce qui doit être le cas de la quasi-totalité des réseaux modernes), nous laissons ces champs vides.

  • DNS servers : ce champ peut être renseigné ou resté vide. Si l’on souhaite passer au client la même configuration DNS que celle configurée dans pfSense, alors il faut laisser ces champs vides. En revanche, si l’on souhaite passer au client d’autres serveurs DNS que ceux configurés dans pfSense, il faut les renseigner ici.
    • Nous saisirons pour :
      • VLAN_01_PRIVE : 192.168.100.254
      • VLAN_02_PUBLIC : 192.168.200.254

Pour les réseaux locaux avec des terminaux Windows et un serveur Active Directory, il est conseillé d’indiquer l’adresse du serveur Active Directory.

  • Gateway : si pfSense est la passerelle pour ce réseau, ce champ peut être laissé vide. Dans le cas contraire, nous indiquons ici l’adresse IP de la passerelle.
  • Domain name : permet d’indiquer aux clients le nom de domaine correspondant au réseau et donc qu’ils devront utiliser pour former leur FQDN. Si rien n’est indiqué, c’est le nom de domaine de pfSense qui sera passé aux clients. (voir plus haut)
  • Domain search list : cette information est utile dans le cas où l’on dispose de plusieurs domaines.

Lors d’une recherche sur un nom d’hôte sur le réseau, le client concaténera le nom d’hôte au nom de domaine. Chaque domaine doit être séparé par une virgule. Cette information est passée au client via l’option DHCP 19. Donc, dans le cas où il n’y a qu’un seul domaine local, ce champ doit être laissé vide (lorsque qu’un client fera une recherche sur un nom d’hôte, la concaténation se fera avec le nom de domaine défini à la ligne précédente).

  • Default lease time et Maximum lease time : ces deux options permettent de contrôler la durée des baux DHCP.

Default lease time est utilisée quand un client ne demande pas de durée spécifique d’enregistrement pour son bail. Si le client demande une durée de bail qui est supérieure à Maximum lease time, la durée de bail donnée sera celle définie dans Maximum lease time. Ces valeurs sont définies en secondes. Si les champs sont laissés vides, les valeurs par défaut sont de 7.200 secondes (2h) pour la durée de bail par défaut et 86.400 secondes (1 jour) pour la durée de bail max.

  • Failover peer IP : si vous possédez deux serveurs pfSense configurés en failover, renseignez ici l’adresse IP physique (pas l’adresse virtuelle) du second serveur pfSense. Autrement, laissez ce champ vide.
  • Static ARP : cette option est l’exact opposé de « Deny unknow clients » : elle permet de lister les machines capables de communiquer avec pfSense sur le réseau. Ainsi, tous les terminaux n’étant pas référencés (c’est-à-dire dont l’adresse MAC est connue et référencée dans pfSense) ne pourront pas communiquer avec pfSense. Il faut faire très attention lorsque l’on manipule cette option ! De plus, lorsqu’elle est cochée, cette option reste active même si le service DHCP est arrêté.
  • Time format change : par défaut, les durées de baux DHCP sont affichées au format UTC. En cochant cette option, elles sont formatées au fuseau horaire local. C’est une option d’affichage purement esthétique. On coche car on aime l’esthétique 🙂.
  • Dynamic DNS : cette option permet de définir un serveur DNS dynamique (à saisir dans le champ correspondant). Dans le cas où pfSense est configuré en mode « DNS forwarder », cette option ne devrait pas être cochée, et le DNS forwarder devrait être configuré en conséquence. Il est à noter que cette option ne fonctionne qu’à partir de la version 2.1 de pfSense.
  • MAC Address Control : cette option permet de filtrer les accès au serveur DHCP par adresses MAC.

Le premier champ permet de définir les adresses MAC autorisées. Le second champ, les adresses MAC interdites. Ces adresses MAC peuvent être saisies partiellement (par exemple, saisir 01:E5:FF autorisera ou interdira, suivant le champ dans lequel elle aura été saisie, toutes les adresses MAC commençant par cette séquence).

Les adresses MAC (ou adresses MAC partielles) doivent être séparées par une virgule, sans espace. Ces champs peuvent être laissés vides si l’on ne souhaite pas appliquer de contrôle sur les adresses MAC des terminaux.

Il est important de comprendre qu’à partir du moment où une adresse MAC (ou adresse MAC partielle) est saisie dans le champ des adresses autorisées, toutes les autres adresses MAC seront interdites d’accès ; et inversement, si l’on saisi une ou des adresses MAC dans le champ des adresses interdites, toutes les autres adresses MAC seront autorisées.

  • NTP servers : permet de définir un à deux serveurs NTP.
  • TFTP server : permet de saisir l’adresse IP ou le nom d’hôte d’un serveur TFTP. Cette option est principalement utilisée pour l’auto-provisioning pour la téléphonie sur IP. Elle correspond à l’option DHCP 66.
  • LDAP URI : permet d’envoyer l’URI d’un serveur LDAP aux clients en faisant la demande. Cela correspond à l’option DHCP 95. Le format saisi doit être celui d’une URI LDAP tel que ldap://ldap.example.com/dc=example,dc=com.
  • Enable network booting : pour activer cette fonctionnalité, il faut cocher la case correspondante (Enables network booting), saisir l’adresse IP du serveur ainsi que le nom du fichier d’image disque bootable. L’ensemble de ces champs doit être complété pour que cette option fonctionne correctement.
  • Additional BOOTP/DHCP Options : permet de pousser n’importe quelle option DHCP (dont nous détaillons le paramétrage au paragraphe suivant).

Une fois l’ensemble des configurations effectué, il ne reste plus qu’à cliquer sur Save !

Source : www.provya.net

UPnP

 

Règles de sécurité

 

Wi-Fi

Configuration SSID

 

Configuration des VLANs

 

Réseau Invité : portail captif

 

Montage de la session PPPoE

Le WAN est directement connecté à l’ONT
On assigne le LAN et le WAN sur les cartes correspondantes : Interfaces -> Assign
Pour le WAN laissez IPV4 et IPV6 en « none »
Pour le LAN sélectionnez « Static IPV4 » puis définissez l’IP et le masque de l’interface dans « IPV4 address »
Dans mon cas : em1 = WAN, em2 = LAN, em0 = DMZ

On crée le VLAN 835 sur l’interface WAN : Interfaces -> Assign -> VLANs

Pour le PPPOE : Interfaces -> Assign -> PPPs
Link Type : PPPOE
Link Interface : Le VLAN 835 que l’on vient de créer
Username : Votre identifiant de connexion Orange
Password : Votre mdp de connexion Orange

Maintenant on va assigner le PPPOE :
Dans Interfaces -> Assign:
On ajoute une interface et on sélection le port PPPOE que l’on vient de créer

Une fois l’interface sauvegardée on l’édite :
On coche Enable Interface puis on selection PPPoE dans IPV4 configuration type
Vous pouvez aussi changer le nom de l’interface (PPPOE dans mon cas)
Vérifiez vos paramètre dans Username et Password puis sauvegardez

Normalement si tous les paramètre sont bon vous devriez récupérer une IP au bout de quelques secondes. (Vérifiable via le widget Interfaces sur l’écran d’accueil)

Internet est maintenant opérationnel, le NAT est activé par defaut.
Après avoir activer le DNS Forward dans Services -> DNS Forwarder vous devriez avoir internet sur le LAN.

Merci à kouakattak pour son tuto : lafibre.info


Cet article vous a été utile ? Soutenez-moi !

Je fais tout mon possible pour vous proposer régulièrement du contenu. Ceci implique un important travail de recherche, d'analyse et de rédaction. Des frais me sont facturés chaque mois pour maintenir en ligne ce site. J'ai donc besoin de vous pour me soutenir financièrement !

Objectif 2018 : 0,00€ / 50,00€ de dons reçus 🙁 !



Romain D.

Perdu dans une trame Ethernet.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Optionally add an image (JPEG only)