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 ****

Répondre à