Présentation
OPNsense est un système d'exploitation servant de routeur et pare-feu. Tournant sur FreeBSD, il est basé sur pfSense dont il cherche à améliorer la sécurité, la fiabilité et l'optimisation du code. Il offre, en plus du filtrage et du routage, la possibilité de mettre en place de nombreux autres services : DHCP, DNS, IPS, serveur de temps, portail captif, serveur mandataire, VPN,...
Cette documentation est une découverte des fonctionnalités de base d'OPNsense avec notamment :
- L'installation d'OPNsense dans Oracle VirtualBox pour une utilisation dans le cadre de travaux pratiques en milieu scolaire ;
- La configuration de l'adressage IP et du routage ;
- La configuration des règles de filtrage et de la translation d'adresse ;
- Les outils de diagnostic ;
- La gestion du pare-feu ;
- OPNsense derrière un serveur mandataire.
L'image renvoie vers la documentation officielle d'OPNsense concernant le sujet
Installation dans VirtualBox
Prérequis
Télécharger le fichier ISO d'OPNsense : https://opnsense.org/download/
- Architecture : amd64
- Type d'image : dvd
Le fichier téléchargé est un fichier compressé (bz2) que vous devez décompresser.
Création de la machine dans VirtualBox
Les caractéristiques techniques (mémoire vive, disque dur) indiquées ici sont valables pour la mise en place d'OPNsense en laboratoire de test ou de travaux pratiques dans le cadre scolaire. Pour de la mise en production, ces caractéristiques doivent être calquées sur les recommandations précisées dans la documentation d'OPNsense.
- Image ISO : fichier ISO d'OPNsense
- Type de système d'exploitation : BSD
- Version : FreeBSD 64 bits
- Mémoire vive : 1 Go
- Disque dur : 40 Go
- Cartes réseaux :
- Carte 1 : NAT (ou réseau NAT avec DHCP activé) ;
- Carte 2 : réseau dans lequel se trouve un poste client avec interface graphique (afin de disposer d'un navigateur web pour accéder à l'interface de configuration d'OPNsense) ;
- Autres cartes : en fonction du contexte.
Installation d'OPNsense
Attention : le clavier est par défaut en QWERTY (le caractère m
s'utilise avec la touche ,
par exemple).
- Lancer la machine virtuelle et laisser le choix par défaut au menu de démarrage (Boot Multi User).
- Si vous n'avez pas de configuration à importer, ne pas appuyer sur une touche lorsque cela est demandé.
- Appuyer sur une touche pour lancer la configuration des interfaces (attention, temps limité !) puis configurer les interfaces ainsi :
- Configuration LAGG : non ;
- Configuration des VLAN : non ;
- Interface WAN : première interface (em0) ;
- Interface LAN : deuxième interface (em1) ;
- Interfaces optionnelles : en fonction du contexte ;
- Valider l'assignation des interfaces.
Une fois la configuration des interfaces effectuée, vous vous retrouvez sur une invite de commandes précisant que vous pouvez vous connecter avec deux utilisateurs différents : utilisateur root
afin d'utiliser OPNsense en mode live ou utilisateur installer
pour installer OPNsense sur le disque de la machine virtuelle. C'est cette deuxième solution qui va être choisie pour la suite, afin de pouvoir utiliser OPNsense sur la durée.
- Se connecter avec l'utilisateur
installer
(son mot de passe est disponible sur la documentation d'OPNsense). - Choisir un clavier en français (avec accents).
- Installer le système avec ZFS (UFS réclame plus de ressources lors de l'installation).
- Sélectionner aucune réplication (mode stripe).
- Cocher la case pour sélectionner le seul disque disponible (ada0 normalement).
- Valider l'installation.
Une fois l'installation finie :
- Choisir un nouveau mot de passe pour le compte d'administration (
root
) (mot de passe à ne pas oublier). - Terminer l'installation.
La machine OPNsense redémarre.
- Retirer le fichier ISO du lecteur optique avant que le système se relance sinon il redémarrera à partir de ce dernier et recommencera la procédure d'installation.
Après avoir redémarré, vous devez vous retrouver sur un écran affichant la configuration IP des interfaces d'OPNsense et une invite pour vous connecter.
Finalisation de l'installation
L'installation se finalise avec l'interface web d'adminitration d'OPNsense. Par défaut, l'interface LAN est configuré avec l'adresse 192.168.1.1/24 et le service DHCP est activé sur cette interface. Vous n'avez donc qu'à lancer un poste client (comprenant un navigateur web) dans le même réseau que cette interface pour accéder à l'interface d'administration d'OPNsense. Ce poste recevra automatiquement une configuration IP.
- A partir du poste client, accéder à l'interface de configuration d'OPNsense en entrant son adresse IP dans un navigateur web.
- Un message alertant que le certificat d'OPNsense est auto-signé apparait, choisir d'accepter le risque et de poursuivre.
- Se connecter avec le compte d'administration et le mot de passe défini au moment de l'installation.
Vous devez normalement arriver sur l'assistant de configuration (System Wizard General Setup). Si ce n'est pas le cas, vous pouvez le lancer en accédant au menu System -> Wizard.
Informations générales :
- Choisir le nom système et le domaine de votre routeur pare-feu.
- Passer l'interface d'OPNsense en français si vous n'êtes pas familier avec l'anglais.
Serveurs de temps :
- Choisir la zone Europe/Paris si vous êtes en France.
Configuration de l'interface WAN :
- Ne rien toucher à cette page de configuration si votre interface reste configurée en DHCP.
- Si des réseaux à adresses privées sont accessibles via l'interface WAN, vous pouvez décocher la case bloquant ce type de réseau.
Configuration de l'interface LAN :
- Choisir la configuration IP de l'interface LAN en fonction de votre contexte.
Mot de passe du compte root
:
- Garder ou modifier le mot de passe du compte d'administration.
Une fois la configuration finie, elle est rechargée dans OPNsense. Votre routeur pare-feu OPNsense est maintenant opérationnel.
Remarque : si vous avez modifié la configuration IP de l'interface LAN, l'interface web d'OPNsense n'est logiquement plus accessible via son ancienne adresse IP. Pour y accéder, vous devez :
- Demander un nouveau bail DHCP pour sur votre poste client, afin que ce dernier ait une configuration dans le nouveau réseau de l'interface LAN.
- Changer l'adresse IP de l'interface web de l'interface d'administration dans le navigateur web du poste client (en indiquant sa nouvelle adresses).
Adressage IP et routage
Configuration des interfaces
Les interfaces se configurent à partir du menu Interfaces, où vous pouvez choisir les interfaces à configurer (items de menu entourés de crochets). Pour chacune des interfaces, vous pouvez notamment configurer :
- La description de l'interface (pour changer le nom d'origine de l'interface) ;
- Le blocage ou non des requêtes provenant de réseaux privés ;
- Le type de configuration IP : DHCP ou statique (à compléter à la suite) ;
- L'activation ou non du mode promiscuité (lecture des trames Ethernet qui ne sont pas à destination de l'interface).
Assignation des interfaces
Vous pouvez modifier l'assignation des interfaces (lien avec les cartes réseaux de la machine sur laquelle est installée OPNsense) dans le menu Interfaces -> Assignations.
Routage
Définition des passerelles
Le routage se gére avec des passerelles, qui sont déclarées dans Système -> Passerelles -> Single. La passerelle par défaut d'un système OPNsense est normalement celle attribuée à la carte WAN (qui est attribuée automatiquement si cette dernière est configurée en DHCP). Il est néanmoins possible de créer d'autres passerelle (bouton +
) afin de mettre en place des routes indirectes, en précisant notamment son nom, l'interface permettant de la joindre et son adresse IP.
Gestion des routes indirectes
Une fois les passerelles définies, vous pouvez gérer les routes indirectes en passant par le menu Système -> Routes -> Configuration.
L'option Reply-to
L'option Reply-to d'OPNsense permet de diriger les flux sortant du pare-feu vers la même interface qu'ils sont entrés, notamment dans le cas des pare-feux connectés à plusieurs réseaux publics (multi-WAN). Cette option est activée par défaut et pose parfois problème lors de la mise en place d'un mécanisme d'un translation d'adresse permettant l'accès à une machine interne (un serveur web par exemple). Lorsque le client se trouve dans le même réseau externe que le pare-feu OPNsense, les réponses ne lui parviennent pas : les flux sont redirigées vers l'adresse MAC de la passerelle attribuée à la carte WAN (même si l'adresse IP de destination est bien celle du client).
Il est donc nécessaire de désactiver cette option avec que le mécanisme de translation d'adresse fonctionne correctement dans ce cas particulier. Cette option se désactive dans le menu Pare-feu -> Paramètres -> Avancé puis en cochant la case Désactiver reply-to.
Filtrage et translation d'adresse
Règles de filtrage
Les règles de filtrage sont classés par interface d'entrée. Elles sont accessibiles via le menu Pare-feu -> Règles puis vous devez choisir l'interface d'entrée des flux que vous souhaitez filtrer. Vous retrouvez les interfaces définies dans le menu Interfaces ainsi que la boucle locale (loopback) pour les flux circulant sur le pare-feu et les règles flottantes, qui s'appliquent quelque soit l'interface.
Les éléments principaux pour configurer une règle sont les suivants :
- Action : autoriser, bloquer (suppression silencieuse des paquets) ou rejeter (envoi d'un message indiquant le rejet du paquet à l'expéditeur) les flux définis dans la règle ;
- Interface : interface d'entrée des flux filtrés ;
- Direction : sens de circulation (Source -> IN -> Pare-feu -> OUT -> Destination) ;
- Version TCP/IP : IPv4 et/ou IPv6 ;
- Protocole : protocole IP des flux filtrés ;
- Source : adresse IP et port source des flux filtrés ;
- Destination : adresse IP et port de destination des flux filtrés ;
- Journaliser : ajouter dans les journaux du pare-feu les flux filtrés par la règle.
Rappel : les règles sont appliquées dans l'ordre dans lequel elles apparaissent dans OPNSense.
Translation d'adresse
Redirection de port
La redirection de port (Pare-feu -> NAT -> Redirection de port) permet de rediriger des flux arrivant sur une interface d'OPNsense vers une autre machine (et éventuellement un autre port).
1 à 1
Les règles 1 à 1 (Pare-feu -> NAT -> 1 à 1) permettent de mettre en place un mécanisme de translation d'adresse, où une adresse IP est associée à une autre adresse IP.
Sortant
Les règles de translation d'adresse sortante permettent aux réseaux locaux connectés à OPNsense d'accéder aux réseaux publics (Internet) en modifiant l'adresse IP source des requêtes.
OPNSense propose plusieurs possibiltiés pour gérer les règles de NAT sortant :
- Gestion automatique (par défaut) : aucune règle manuelle ne peut être créée, les réseaux locaux ont accès à Internet via l'interface WAN du pare-feu ;
- Gestion manuelle : aucune règle automatique n'est créée, l'administrateur doit gérer la translation d'adresse pour les réseaux locaux souhaitant accéder aux réseaux publics ;
- Gestion hybride : des règles automatiques sont générées et appliquées après des règles manuelles ;
- Désactivation de la translation d'adresse sortante.
Alias
Des adresses IP peuvent être utilisées directement dans les règles de filtrage et de translation d'adresse. Mais pour faciliter la lecture des règles de filtrage et la maintenance du pare-feu (notamment lorsque les éléments filtrés changent d'adresse IP), il est possible de mettre en place des alias à utiliser dans les règles à la place des adresses IP. Ainsi, si une machine (ou un réseau) change d'adresse, vous n'avez qu'à changer son alias pour que cela impacte toutes les règles qui y font référence.
Les alias se gèrent par le menu Pare-feu -> Alias. Les principaux types d'alias sont :
- Hôte(s) : adresse IP ou FQDN ;
- Réseau(x) : réseau(x) IP ;
- Port(s) : port ou plage de port.
Journaux
En cochant la case "Journaliser" des règles de filtrage et de translation d'adresse, cela permet d'avoir une trace des flux répondant aux critères de ces règles dans la rubrique Pare-feu -> Fichiers journaux -> Vues en direct.
De nombreux autres journaux sont disponibles dans OPNsense afin de vérifier le bon fonctionnement du pare-feu.
Outils de diagnostic
Présentation
OPNsense possède de nombreux outils permettant de vérifier le bon fonctionnement de votre routeur pare-feu, que ce soit pour le routage, le filtrage ou les autres services. Cett partie liste les principaux outils des différents éléments de configuration d'OPNsense.
Diagnostics système
Accès par le menu Système -> Diagnostics
- Activité : activités des utilisateurs sur OPNsense ;
- Services : état des services.
Diagnostics réseau
Accès par le menu Interfaces -> Diagnodtics
- Table ARP : associations MAC / IP des machines communiquant avec le routeur pare-feu ;
- Résolution DNS : requêtes DNS ;
- Capture de paquets : capture des paquets en fonction de différents critères (interface, adresses, port,...) ;
- Ping : test de connectivité avec un hôte ;
- Trace route : détermination du chemin pour joindre un hôte.
Diagnostics du pare-feu
Accès par le menu Pare-feu -> Diagnostics
- Alias : statistiques concernant les alias ;
- Sessions : sessions établies par les flux traversant le pare-feu ;
- États : état des différentes connexions
Gestion du pare-feu
Extinction et redémarrage
- Extinction d'OPNsense : menu Alimentation -> Éteindre
- Redémarrage d'OPNsense : menu Alimentation -> Redémarrer
Gestion à partir du menu console d'OPNsense
Il est possible de configurer certains éléments d'OPNsense à partir du menu console (directement sur la machine OPNsense). Quand OPNsense est lancé, la configuration IP des interfaces est affichée ainsi qu'une invite permettant de se connecter. En se connectant avec le compte d'administration (le même que sur l'interface web), un menu apparait avec différentes options :
- 0 : déconnexion ;
- 1 : assignation des interfaces ;
- 2 : configuration IP des interfaces ;
- 3 : remise à zéro du mot de passe d'administration ;
- 4 : remise à zéro de la configuration d'OPNsense ;
- 5 : extinction d'OPNsense ;
- 6 : redémarrage d'OPNsense ;
- 7 : test de connectivité avec un hôte (ping) ;
- 8 : invite de commande (shell) ;
- 9 : statistiques concernant les différentes règles de filtrage (pfTop) ;
- 10 : journaux ;
- 11 : rechargement de tous les services ;
- 12 : mise à jour à partir de la console ;
- 13 : restauration d'une sauvegarde.
L'utilisation de ce menu permet notamment d'administrer le pare-feu en cas de perte de connexion avec l'interface web, notamment suite à une mauvaise manipulation.
OPNsense derrière un serveur mandataire (proxy)
Dans certains contextes, OPNsense fonctionne derrière un serveur mandataire. Il est donc nécessaire d'indiquer à OPNsense les informations de connexion à ce serveur : adresse, port et éventuellement nom d'utilisateur et mot de passe.
Ces informations peuvent se saisir dans le fichier /usr/local/opnsense/service/conf/configd.conf
en ajoutant à la suite (après la ligne HOME=/
) :
HTTP_PROXY=http://X.X.X.X:PPPP
HTTPS_PROXY=http://X.X.X.X:PPPP
http_proxy=http://X.X.X.X:PPPP
https_proxy=http://X.X.X.X:PPPP
Ou si vous devez vous identifier pour se connecter au serveur mandataire :
HTTP_PROXY=http://util:mdp@X.X.X.X:PPPP
HTTPS_PROXY=http://util:mdp@X.X.X.X:PPPP
http_proxy=http://util:mdp@X.X.X.X:PPPP
https_proxy=http://util:mdp@X.X.X.X:PPPP
Avec :
X.X.X.X
: adresse IP du serveur mandatairePPPP
: port du serveur mandataireutil
: nom de l'utilisateurmdp
: mot de passe de l'utilisateur
Remarques :
- Vous devez utiliser l'éditeur vi pour éditer le fichier de configuration.
- Le fichier est réinitialisé à chaque mise à jour, vous devez donc réinsérer ces informations après chaque mise à jour.