Transmettre tout à votre serveur VPN peut décrire deux règles très différentes. L'une change l'adresse de destination et conserve le port entrant ; l'autre réécrit aussi le port vers un seul écouteur. L'exposition n'est pas la même, et la décision dépend de trois conditions plutôt que de l'étiquette utilisée par l'interface du routeur.

Première condition : quels champs la règle modifie-t-elle ?

La traduction de l'adresse de destination et celle du port de destination sont des opérations distinctes. Une règle peut n'effectuer que la première, ou les deux ensemble, et la différence décide quels services de l'hôte cible sont joignables. La plupart des interfaces de constructeurs cachent ce choix derrière une seule étiquette. Lire la règle sous-jacente est le seul moyen de savoir laquelle vous avez obtenue.

Lisez la règle réelle plutôt que l'étiquette du menu. Un écran qui affiche DMZ ou tous les ports décrit une intention, pas un chemin de paquets. La documentation Netfilter NAT sépare les deux traductions, et c'est le bon modèle mental même lorsque le routeur devant vous est un appareil grand public.

Deux champs, deux questions différentes.

Deuxième condition : qu'écoute sur les ports conservés ?

Si la règle conserve le port entrant, chaque port qui arrive est remis au même numéro sur l'hôte VPN, sous réserve de la politique d'entrée de cet hôte. Cela inclut des services dont vous avez peut-être oublié qu'ils écoutaient. La règle n'a pas créé ces services, et elle est désormais le chemin vers eux.

Si la règle réécrit le port, l'inverse se produit : de nombreux ports externes s'effondrent sur un seul écouteur, et rien d'autre sur l'hôte n'est joignable par cette règle. Une réécriture vers un port fixe ne devient pas un accès à tous les services locaux simplement parce qu'une large plage de ports externes y correspondait. Les deux conceptions échouent dans des directions différentes, et c'est le mode de défaillance que vous choisissez. Choisissez celle dont la défaillance vous est supportable.

Inventoriez l'écouteur avant de choisir.

Troisième condition : quelle est la largeur de l'entrée externe ?

Publier un seul port choisi est plus étroit que publier une plage, et les deux sont plus étroits que tout accepter. La largeur externe et la traduction interne sont des choix indépendants, et la plupart des confusions viennent du fait de changer l'une en décrivant l'autre.

Pour une entrée VPN ordinaire, publiez le transport et l'écouteur dont la conception a réellement besoin. Passez ensuite en revue trois autres points : le mappage effectif du routeur, les règles d'entrée propres à l'hôte cible, et si un écouteur IPv6 publie le même service. Une règle qui paraît étroite dans une famille d'adresses peut être large dans l'autre.

Écrivez le point de terminaison traduit en entier : protocole, port externe, adresse interne, port interne.

Ce qu'aucune des deux règles ne vous donne

Aucune des deux conceptions ne prouve que le service est exempt de vulnérabilités, et aucune ne protège la disponibilité. L'authentification, les mises à jour et la restauration restent dans le périmètre quelle que soit l'étroitesse du mappage de ports. Un mappage étroit réduit la surface joignable ; il ne rend pas l'écouteur sûr.

Une règle large qui prend déjà en charge un autre service légitime est une dépendance, pas seulement une erreur. Inventoriez-la et remplacez-la via son propriétaire avant de la retirer, sinon le changement ressemblera à une panne causée par un correctif de sécurité. La même prudence s'applique à une réécriture vers un port fixe sur laquelle autre chose compte discrètement.

L'analyse d'exposition porte sur ce qui peut atteindre quoi, pas sur l'étiquette à l'écran.

Décidez avec le point de terminaison traduit en main

Écrivez le résultat de la règle sous forme de phrase : le port UDP public X atteint l'adresse Y port Z. Demandez ensuite quels services sur Y peuvent répondre sur Z et à qui ils appartiennent.

nft list ruleset

Si la réponse est l'unique écouteur que vous vouliez, la règle fait son travail.

Si la réponse en compte plusieurs, vous avez choisi la transmission à tout l'hôte, que l'interface l'ait appelée ainsi ou non.

Articles similaires