Lorsque les gens pensent à IPsec, ils pensent au cryptage des données, mais il peut aussi être utilisé pour déposer des paquets ou les autoriser sans aucun cryptage. Il peut le faire en fonction de l'adresse IP source et destination et des numéros de port. C'est exactement ce que fait un pare-feu ; vous pouvez donc utiliser la fonction IPsec de VOS comme pare-feu.
Par exemple, disons que vous avez une application de service de documents interne qui écoute sur *.12345, c'est-à-dire qu'elle écoute sur le port 12345 et accepte une connexion à partir de n'importe quelle interface du module. Une nouvelle interface vient d'être ajoutée au module qui se connecte au réseau d'un fournisseur. Personne de ce réseau ne doit se connecter au service des documents. Idéalement, il y a un pare-feu sur le réseau entre le module et le réseau du fournisseur qui bloque le port 12345 mais le principe de "défense en profondeur" dit qu'un pare-feu basé sur le réseau ET sur l'hôte est meilleur qu'un simple pare-feu de réseau.
Il existe plusieurs façons de configurer IPsec pour qu'il abandonne les connexions provenant du réseau du fournisseur. La façon la plus simple est de supprimer toute connexion au port 12345 avec une adresse IP de destination qui correspond à la nouvelle interface. En supposant que la nouvelle interface ait une adresse IP de 172.16.1.1, la politique IPsec serait la suivante
{addr 172.16.1.1 ulp tcp dport 12345 dir in} drop {}
Les politiques IPsec sont ajoutées avec la commande ipsec_policy_admin. Le fichier de configuration par défaut est >system>stcp>ipsec.conf, mais n'importe quel fichier peut être spécifié. Pour que cela fonctionne, le module ne doit pas transmettre de paquets, sinon une demande de connexion à une autre interface du module qui est reçue sur l'interface 172.16.1.1 sera transmise. Comme la destination n'est pas 172.16.1.1, IPsec permettra la connexion. Il est conseillé de désactiver le transfert, sauf si vous savez que vous devez l'utiliser. Vous désactivez la redirection avec la commande IP_forwarding ; oui, l'IP est en majuscules.
Si une nouvelle interface n'a pas été ajoutée et que vos utilisateurs internes et votre fournisseur utilisent la même interface, vous devez baser la politique sur l'adresse source et non sur l'adresse de destination. Si nous supposons que le réseau du fournisseur est 192.168.1.0/24, la politique sera la suivante
{addr 192.168.1.0/24 ulp tcp dport 12345 dir in} drop {}
Bien entendu, cela permet toujours aux hôtes du réseau du fournisseur de se connecter aux autres services du module. Vous pouvez restreindre les fournisseurs à un seul service, disons celui qui écoute sur le port 24680 avec les politiques suivantes
{saddr 192.168.1.0/24 ulp tcp dport 24680 dir in} bypass {}
{saddr 192.168.1.0/24 ulp tcp dir in} drop {}
Si le service de documents n'héberge que les documents d'un seul département, vous pouvez définir une stratégie qui autorise les connexions au port 12345 à partir du seul sous-réseau de ce département, disons 10.1.1.0/28, avec les stratégies suivantes
{saddr 10.1.1.0/28 ulp tcp dport 12345 dir in} bypass {}
{saddr 0.0.0.0/0 ulp tcp dport 12345 dir in} drop {}
L'ordre des politiques est important, si vous inversez l'ordre, personne ne pourra se connecter au port 12345.
Si votre DSI exige qu'il ait également accès aux documents, vous pouvez ajouter une politique pour l'adresse du poste de travail du DSI
{saddr 10.1.1.0/28 ulp tcp dport 12345 dir in} bypass {}
{saddr 10.7.7.7 ulp tcp dport 12345 dir in} bypass {}
{saddr 0.0.0.0/0 ulp tcp dport 12345 dir in} drop {}
Lorsque vous expérimentez IPsec, assurez-vous toujours d'avoir une politique en place qui vous permettra de vous connecter. Les politiques IPsec sont prises en compte dès qu'elles sont ajoutées, vous n'avez pas besoin de redémarrer quoi que ce soit, donc une politique mal saisie peut vous déconnecter du module. Par exemple, en supposant que l'adresse IP de votre poste de travail est 10.1.100.50, je placerai toujours la politique suivante en premier dans mon fichier de politique
{addr 10.1.100.50 ulp tcp dir in} bypass {}