[EMAIL PROTECTED] wrote:

Merci pour vos promptes réponses.

Toutefois je ne comprends pas bien le lien entre le fichiers /etc/services et
xinetd.

Si je comprend bien le programme xinetd cherche dans le fichier /etc/services si
l'adresse du port de destination présente dans le paquet qui arrive sur la
machine correspond à un port associé à un serveur (tcp ou udp uniquement dans
le cas xnited).

Quand au fichier /etc/protocols, c'est un autre programme (pas xinetd donc) qui
cherche dans ce fichier le protocole demandé par le paquet ?

;)
C'est vrai que ce n'est pas très clair et je ne connais pas de livre donnant une explication clair de qui utilise ce fichier et dans quel cas. Cependant dans son excellent livre de Jean-Michel Moreno "Unix Administration" donne quelques indications en proposant de renomer le fichier /etc/services => /etc/services-std juste pour faire quelques tests (attention à ne pas faire ça sur un système utilisé par d'autres personnes :)) Pour essayer d'être un peu plus clair, pratiquement tous les services (ftp, telnet, xinetd) vont utiliser le fichier /etc/services pour ouvrir les ports (via les sockets). Donc le fichier /etc/services est utilisé en demande d'ouverture sortantes. Dans l'autre sens lorsqu'un paquet arrive, ce fichier ne sert à rien, car soit le port indiqué par le paquet entrant est déjà ouvert par un des services de la machine et dans ce cas il est passé au programme correspondant, soit le port n'est pas ouvert et il est rejeté.

Maintenant quelques petits exercices pratiques pour mieux comprendre:
Sur notre machine Kaella (c'est un exemple) xinetd gère le service telnet (donc lancera telnetd lors de la réception d'une demande de connection sur le port 23). a] On vérifie que le port est bien ouvert avec la commande "netstat -tapun" et on obtient:
"
Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 3992/xinetd
"
b] on renome /etc/services en /etc/services-std par:
"mv /etc/services /etc/services-std "
c] à partir d'une autre machine (ex Mandrake) on lance une demande de connexion tenet vers notre machine Kaella
"telnet Kaella"
d] on s'apperçoit que la demande de connection aboutie, ce qui veut bien dire que le fichier /etc/services ne sert pas
e] à partir de Kaella on fait une demande de connexion telnet vers Mandrake:
"telnet Mandrake"
et là on obtient:
"telnet: tcp/telnet: unknown service"
f] maintenant on réinitialise xinetd
" kill -SIGHUP (numéro de process de xinetd )"
g] on vérifie que le service telnet (plutôt le port 23 n'est pas ouvert) avec la même commande qu'en a]
h] on renome correctement le fichier /etc/services
"mv /etc/services-std /etc/services "
et là on peut de nouveau accéder à tout les services.

Pour résumer:
1) le fichier /etc/services est utilisé pour ouvrir des ports (en attente/listen) ou pour des demandes de connexions sortantes
2) ce fichier n'est jamais utilisé pour une connexion entrante











Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à