Lorsque l'on utilise le mode bridge d'OpenVPN et donc les interfaces de type tap, les paquets ne passent pas par le firewall Linux, mais sont traités directement par le serveur qui fait office de switch. Une fonction méconnue et peu documentée permet quand même de filtrer un minimum les communications de client à client, et ce dynamiquement.
Dans l'article précédent, nous avons vu que l'un des événements côté serveur pouvant être attrapé par une extension s'appelle OPENVPN_PLUGIN_ENABLE_PF. Lorsqu'un plugin capture cet événement et ne sort pas en erreur, une variable d'environnement nommée pf_file est créée et contient un nom de fichier dans lequel OpenVPN s'attend à trouver des règles de filtrage. Cette variable est dès lors disponible avec les autres lors des appels de « hook » comme client-connect.
Ce plugin ne fait rien d’autre que de demander à OpenVPN de se préparer à recevoir des règles de filtrage et à positionner une variable d’environnement.
Bien entendu, les informations à mettre dans le fichier dont le nom est dans pf_file doivent respecter une syntaxe bien précise.
1. La syntaxe des fichiers pf
La grammaire à utiliser reprend celle bien connue des fichiers .ini datant de Windows 3, à savoir des sections commençant par une ligne comprenant un nom entre crochets...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première