Bonsoir, > >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
Ok, compris ;) C'est super d'avoir ce type de logiciel ouvert à tous pour comprendre un système informatique et en conséquent d'avoir la possibilité d'agir dessus en mettant les "mains" dedans. A bientôt ;) Linux-Azur : http://www.linux-azur.org Désinscriptions: http://www.linux-azur.org/liste.php3 **** Pas de message au format HTML, SVP ****