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