Précédemment, nous avons vu le principe et la théorie sur le filtrage. Nous verrons ici, dans cette partie de la formation, la logique qu'il y'a derrière la construction d'une règle de filtrage. Nous verrons ainsi la création d'une règle permettant l'accès à Internet d'un réseau local, puis l'accès à d'autres machines d'un réseau différent, en affinant la règle par le numéro du port et sa destination.
Enfin, nous verrons comment rendre accessible une ressource depuis Internet, remplaçant ainsi le Reverse-NAT classique, dans une règle de filtrage (Filter-NAT).
Nous allons maintenant découvrir comment créer notre première règle de filtrage. Dans un premier temps, accédez à l'interface Web du SNS, puis rendez-vous dans la section CONFIGURATION > POLITIQUE DE SÉCURITÉ > Filtrage et NAT, puis le premier onglet "Filtrage".
Assurez-vous d'avoir sélectionné le slot 5 (voir "Introduction sur les règles de filtrage").
L’onglet Filtrage est composé d’un en-tête pour la gestion des règles de filtrage :
Dans notre cas, nous allons cliquer sur le bouton "Nouvelle règle" > "Règle simple" :
Une règle vide est ajoutée, inactive par défaut avec tous les champs Any. Ici, les champs qui nous intéresses pour la création d'une règle sont :
Les règles créées par défaut sur le firewall permettent de mieux comprendre la logique des règles de filtrage.
On dispose d'un réseau local en 10.28.0.0/24 qui souhaite avoir accès à Internet. Notre objectif est d'autoriser l'accès à des sites Internet
Dans la construction de notre règle de filtrage, nous devons spécifier comme source notre réseau local (10.28.0.0/0) à destination d'Internet sur les ports HTTP, HTTPs et DNS (résolution noms de domaines, si vous ne voulez pas taper les adresses IP des sites Web ).
De ce fait nous allons construire notre règle de la manière suivante :
À noter qu'une règle de NAT doit être ajoutée afin de permettre l'accès à Internet depuis le réseau local (voir : NAT statique (Reverse NAT) : Rendre accessible une machine depuis Internet).
Dans notre politique, on souhaite autoriser depuis notre réseau local le ping à destination d'une ressource particulier : soit Internet ou une machine, un réseau en particulier.
Afin d'autoriser le Ping depuis Internet pour depuis les serveurs DNS par exemple, il est nécessaire de créer une seconde règle de filtrage.
De la même manière, il est possible de restreindre cette règle à une machine en particulier, par exemple en ne souhaitant pinger que le serveur DNS de Cloudflare :
On testant dans le navigateur Web l'accès à internet depuis notre réseau, nous y avons bien accès :
Même chose, le Ping à destination des DNS de Cloudflare passe bien :
On dispose dans cet exemple de deux réseaux : notre réseau local et un réseau DMZ, où nos différents serveurs y sont placés. On souhaite créer deux règles qui permettent d'autoriser l'accès à nos machines. Pour cela, nous allons créer deux règles sur le firewall SNS :
Chaque réseau doit être bien évidement être accessible par le firewall. De plus, appliquer une règle de filtrage sur une machine source et une machine de destination sur le même réseau ne s'applique pas.
On commence par créer une règle de filtrage qui nous permets l'accès depuis le réseau local au serveur Web, sur les ports 80 (HTTP) et 443 (HTTPS) :
On va créer une seconde règle qui, dans notre exemple, avons pour objectif de rendre accessible depuis notre réseau local (représenté par "Network_in") vers le serveur Mail, sur le port 25 (smtp) :
En résumé, voici notre slot contenant nos deux règles de filtrage :
On n'oublie pas d'activer les deux règles de filtrage et on applique la politique.
Nous pouvons vérifier l'accès au différentes ressources que nous avons autorisé les accès, car rappelons que par défaut, un pare-feu bloque toute communication.
On réalise un test en souhaitant joindre le serveur Web :
On simule un test d'envoi de mail avec telnet :
telnet <SRV_MAIL_IP_ADDR> 25
ehlo test
mail from: sdr@mail.com
rcpt to: dst@mail.com
data .
Aperçu du résultat :
┌──(vemotech㉿debian)-[~]
└─$ telnet 1.2.3.4 25
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.
220 1.2.3.4 ESMTP Postfix
ehlo test
250-1.2.3.4
250-PIPELINING
250-SIZE
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
data .
Pour du Reverse NAT, actuellement nous devons créer une règle NAT pour le reverse NAT et une règle de filtrage afin d'accéder à une machine sur un port depuis l'extérieur. Mais nous allons voir qu'il est possible de créer une règle de NAT par politique directement depuis la partie filtrage. Nous verrons également qu'il sera possible également de faire du PAT (Port Address Translation).
Dans l'état des choses, avec une règle de reverse NAT classique créée précédemment, on doit créer une règle permettant d'autoriser depuis Internet l'accès au serveur, sur un port particulier. Plus précisément, la règle de filtrage va créer une ouverture de port sur notre firewall connecté à Internet, afin que ce serveur Web, dans notre cas, puisse être accessible depuis l'extérieur.
Voici la règle de NAT que nous avons créé précédemment (voir : NAT statique (Reverse NAT) : Rendre accessible une machine depuis Internet)
On va créer une règle qui, depuis Internet à destination de l'interface publique du firewall, autorise l'accès aux ports HTTP et HTTPS.
Afin de simplifier les choses et dans les bonnes pratiques, nous allons voir qu'il est possible de faire du Reverse NAT et du PAT en une seule fois depuis la partie filtrage. La règle va natter la machine de destination et créer également la règle d'autorisation de l'accès à la machine de destination, contrairement aux deux règles à créer précédemment. La méthode est recommandée et doit être utilisé dans l'administration du SNS.
Dans notre cas, on souhaite rendre accessible depuis Internet une machine tel qu'un serveur Web, sur le port 80, pour le moment.
Nous allons créer une règle de filtrage simple :
Aperçu :
Cette règle va autoriser en premier lieu l'accès au port source "http" depuis Internet vers l'interface publique du firewall. Ensuite, le NAT sera créé une fois le paquet arrivé et redirigé vers la destination qui est le serveur Web "SRV-WEB".
Dans un cas particulier de configuration, ou si vous souhaitez simplement rendre accessible plusieurs machines internes sur divers ports d'écoutes sur Internet, vous pouvez réaliser une translation de port. Par exemple, sur le port TCP 2808 qui est ouvert, accessible depuis Internet, on souhaite rendre accessible un second serveur Web, qui lui écoute sur le port 443 (HTTPS).
Création de la règle :
Aperçu :
Depuis Internet, sur l'interface publique du firewall SNS, le port TCP 2808 est ouvert et le serveur Web sur le port 443 (HTTPS) est accessible.
Nous avons vu dans le cadre de ce tutoriel la création de règles de filtrage, à travers l'interface Web du firewall SNS. Nous pouvons également constater que chez Stormshield, l'analyse des paquets se fait après le NAT. En effet, lors d'une règle de destination, on spécifie la machine, pas besoin de rajouter l'interface de sortie. D'abord il va modifier les en-têtes du paquet IP avec le NAT, puis l'analyse ensuite.
La logique d'une règle de filtrage se repose uniquement sur le fait de spécifier la machine source qui souhaite accéder à une ressource distante tel un serveur Web par exemple et de restreindre l'accès sur le rôle applicatif du serveur (le serveur Web : généralement les ports 80 et 443).
Également, nous avons vu comment créer une règle de filtrage permettant à un réseau entier d'accéder à Internet, pour le moment sans filtrage Web, sur les ports classiques sui sont le HTTP, HTTPS et DNS (résolution de noms de domaines).
Prochainement, nous verrons l'organisation du filtrage à savoir plusieurs points :