Question FAQ : Comment se lier à un numéro de port < 1024 ?

La restriction d’accès aux numéros de ports < 1024 est une partie (assez faible) du schéma de sécurité particulier à UNIX. L’intention derrière ceci est que les serveurs (rlogin ou rsh par exemple) puissent vérifier le numéro de port du client et que si ce numéro de port est inférieur à 1024, il ait la garantie que la requête provient bien d’un client autorisé.
La conséquence pratique de ceci est que se lier avec un numéro de port inférieur à 1024 est réservé aux processus ayant l’identifiant effectif (effective UID) de l’utilisateur « root ».
Cela peut parfois présenter un problème de sécurité quand par exemple un serveur nécessite de se lier avec un port inférieur à 1024 spécifique mais que ce serveur ne nécessite pas les privilèges de l’utilisateur « root » (c’est le cas pour un serveur de news par exemple). Ceci est souvent résolu en créant un petit programme qui se lie au numéro de port et qui ensuite reprend son identité effective avant de lancer le vrai serveur. Ce programme doit alors avoir le privilège « setuid root ».