5.8. Configurer vos serveurs r�seau et les services.

Les serveurs de r�seau et les services sont des programmes qui permettent � un utilisateur distant de devenir utilisateur de votre machine Linux. Les programmes serveurs sont � l'�coute des ports r�seau. Les ports r�seau permettent de demander un service particulier � un h�te particulier et de faire la diff�rence entre une connexion telnet entrante et une connexion ftp entrante. L'utilisateur distant �tablit une connexion r�seau avec votre machine puis le programme serveur, ou d�mon de r�seau, � l'�coute du port, accepte la connexion et s'ex�cute. Il y a deux fa�ons d'op�rer pour les d�mons de r�seau. Les deux sont couramment utilis�s en pratique. Ce sont :

autonome

le programme d�mon �coute le port r�seau d�sign� et lorsqu'il y a une connexion, il prend lui-m�me la connexion en charge pour fournir le service.

esclave du serveur inetd

le serveur inetd est un programme d�mon sp�cial sp�cialis� dans la conduite des connexions r�seau. Il poss�de un fichier de configuration qui indique quel programme doit �tre utilis� lorsqu'une connexion entrante est re�ue. Chacun des ports service doit �tre configur� soit avec le protocole tcp, soit avec le protocole udp. Les ports sont d�crits dans un autre fichier dont nous parlerons plus tard.

Il existe deux fichiers importants qui doivent �tre configur�s : /etc/services qui assigne des noms aux num�ros de port et /etc/inetd.conf qui sert pour la configuration du d�mon de r�seau inetd .

5.8.1. /etc/services

Le fichier /etc/services est une simple base de donn�es qui associe des noms compr�hensibles par l'homme � des ports service compr�hensibles par la machine. Son format est tout � fait simple. Le fichier est un fichier texte dont chaque ligne repr�sente une entr�e de la base de donn�es. Chaque entr�e comprend trois champs s�par�s par des caract�res espace ou tabulation. Ces champs sont :

nom port/protocole alias # commentaire

nom

un simple mot qui repr�sente le service d�crit.

port/protocole

ce champ est divis� en deux.

port

un nombre qui sp�cifie le num�ro de port o� le service d�sign� sera disponible. La plupart des services ont des num�ros assign�s. Ils sont d�crits dans la RFC-1340.

protocole

c'est soit tcp soit udp.

Il est important de noter qu'une entr�e comme 18/tcp est tr�s diff�rente de 18/udp et qu'il n'y a pas de raisons techniques que le m�me service existe sur les deux. Normalement le bon sens pr�vaut et c'est vraiment pour un service particulier disponible � la fois sur tcp et udp que vous verrez une entr�e pour les deux..

aliases

Autres noms qui peuvent �tre utilis�s pour se r�f�rer � un service.

Tout texte apparaissant apr�s le caract�re `#' est ignor� et trait� comme commentaire.

5.8.1.1. Exemple de fichier /etc/services.

Toutes les distributions r�centes de Linux fournissent un bon fichier /etc/services. Juste au cas o� vous construiriez tout depuis le d�part, voici une copie du fichier /etc/services fourni avec l'ancienne distribution Debian .

# /etc/services:
# $Id: Net-HOWTO.sgml,v 1.1.1.1 2003/01/03 02:38:54 traduc Exp $
#
# Network services, Internet style
#
# Notez que c'est la politique actuelle de l'IANA d'assigner un seul num�ro
# de port � la fois pour TCP et UDP; ainsi, la plupart des ports ont deux
# entr�es m�me si le protocole ne supporte pas UDP.
# Mis � jour d'apr�s la RFC 1340, ``Assigned Numbers'' (Juillet 1992).
# Il n'y a pas tous les ports, seulement les plus courants.
tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		QUOTE
msp		18/tcp				# message send protocol
msp		18/udp				# message send protocol
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
ssh		22/tcp				# SSH Remote Login Protocol
ssh		22/udp				# SSH Remote Login Protocol
telnet		23/tcp
# 24 - private
smtp		25/tcp		mail
# 26 - non assign�
time		37/tcp		timserver
time		37/udp		timserver
rlp		39/udp		resource	# resource location
nameserver	42/tcp		name		# IEN 116
whois		43/tcp		nicname
re-mail-ck	50/tcp				# Remote Mail Checking Protocol
re-mail-ck	50/udp				# Remote Mail Checking Protocol
domain		53/tcp		nameserver	# name-domain server
domain		53/udp		nameserver
mtp		57/tcp				# deprecated
bootps		67/tcp				# BOOTP server
bootps		67/udp
bootpc		68/tcp				# BOOTP client
bootpc		68/udp
tftp		69/udp
gopher		70/tcp				# Internet Gopher
gopher		70/udp
rje		77/tcp		netrjs
finger		79/tcp
www		80/tcp		http		# WorldWideWeb HTTP
www		80/udp				# HyperText Transfer Protocol
link		87/tcp		ttylink
kerberos	88/tcp		kerberos5 krb5	# Kerberos v5
kerberos	88/udp		kerberos5 krb5	# Kerberos v5
supdup		95/tcp
# 100 - reserve
hostnames	101/tcp		hostname	# usually from sri-nic
iso-tsap	102/tcp		tsap		# part of ISODE.
csnet-ns	105/tcp		cso-ns		# also used by CSO name server
csnet-ns	105/udp		cso-ns
rtelnet		107/tcp				# Remote Telnet
rtelnet		107/udp
pop-2		109/tcp		postoffice	# POP version 2
pop-2		109/udp
pop-3		110/tcp				# POP version 3
pop-3		110/udp
sunrpc		111/tcp		portmapper	# RPC 4.0 portmapper TCP
sunrpc		111/udp		portmapper	# RPC 4.0 portmapper UDP
auth		113/tcp		authentication tap ident
sftp		115/tcp
uucp-path	117/tcp
nntp		119/tcp		readnews untp	# USENET News Transfer Protocol
ntp		123/tcp
ntp		123/udp				# Network Time Protocol
netbios-ns	137/tcp				# NETBIOS Name Service
netbios-ns	137/udp
netbios-dgm	138/tcp				# NETBIOS Datagram Service
netbios-dgm	138/udp
netbios-ssn	139/tcp				# NETBIOS session service
netbios-ssn	139/udp
imap2		143/tcp				# Interim Mail Access Proto v2
imap2		143/udp
snmp		161/udp				# Simple Net Mgmt Proto
snmp-trap	162/udp		snmptrap	# Traps for SNMP
cmip-man	163/tcp				# ISO mgmt over IP (CMOT)
cmip-man	163/udp
cmip-agent	164/tcp
cmip-agent	164/udp
xdmcp		177/tcp				# X Display Mgr. Control Proto
xdmcp		177/udp
nextstep	178/tcp		NeXTStep NextStep	# NeXTStep window
nextstep	178/udp		NeXTStep NextStep	# server
bgp		179/tcp				# Border Gateway Proto.
bgp		179/udp
prospero	191/tcp				# Cliff Neuman's Prospero
prospero	191/udp
irc		194/tcp				# Internet Relay Chat
irc		194/udp
smux		199/tcp				# SNMP Unix Multiplexer
smux		199/udp
at-rtmp		201/tcp				# AppleTalk routing
at-rtmp		201/udp
at-nbp		202/tcp				# AppleTalk name binding
at-nbp		202/udp
at-echo		204/tcp				# AppleTalk echo
at-echo		204/udp
at-zis		206/tcp				# AppleTalk zone information
at-zis		206/udp
z3950		210/tcp		wais		# NISO Z39.50 database
z3950		210/udp		wais
ipx		213/tcp				# IPX
ipx		213/udp
imap3		220/tcp				# Interactive Mail Access
imap3		220/udp				# Protocol v3
ulistserv	372/tcp				# UNIX Listserv
ulistserv	372/udp
#
# services sp�cifiques � UNIX
#
exec		512/tcp
biff		512/udp		comsat
login		513/tcp
who		513/udp		whod
shell		514/tcp		cmd		# no passwords used
syslog		514/udp
printer		515/tcp		spooler		# line printer spooler
talk		517/udp
ntalk		518/udp
route		520/udp		router routed	# RIP
timed		525/udp		timeserver
tempo		526/tcp		newdate
courier		530/tcp		rpc
conference	531/tcp		chat
netnews		532/tcp		readnews
netwall		533/udp				# -for emergency broadcasts
uucp		540/tcp		uucpd		# uucp daemon
remotefs	556/tcp		rfs_server rfs	# Brunhoff remote filesystem
klogin		543/tcp				# Kerberized `rlogin' (v5)
kshell		544/tcp		krcmd		# Kerberized `rsh' (v5)
kerberos-adm	749/tcp				# Kerberos `kadmin' (v5)
#
webster		765/tcp				# Network dictionary
webster		765/udp
#
# D'apr�s ``Assigned Numbers'' :
#
#> Les Ports Enregistr�s ne sont pas contr�l�s par l'IANA et peuvent �tre
#> utilis�s sur la plupart des syst�mes par des processus ordinaires
#> ou des programmes ex�cut�s par des utilisateurs ordinaires.
#
#>Les ports sont utilis�s dans le TCP [45,106] pour nommer les extr�mit�s
#> des connexions logiques qui transportent les conversations de longue
#> dur�e. Pour offrir des services � des utilisateurs non connus, un port
#> de service pour contact a �t� d�fini. Cette liste sp�cifie le port utilis�
#> par le processus serveur ainsi que son port de contact. Comme l'IANA ne peut
#> contr�ler l'usage de ces ports, on donne ici une liste d'utilisation
#> de ces ports pour �tre agr�able � la communaut�.
#
ingreslock	1524/tcp
ingreslock	1524/udp
prospero-np	1525/tcp		# Prospero non-privileged
prospero-np	1525/udp
rfe		5002/tcp		# Radio Free Ethernet
rfe		5002/udp		# Actually uses UDP only
bbs		7000/tcp		# BBS service
#
#
# services Kerberos (Project Athena/MIT)
# Notez que ceux-ci sont pour Kerberos v4, et ne sont pas officiels. Les sites
# tournant sous v4 doivent utiliser ceux-ci et annuler les entr�es v5 ci-dessus.
#
kerberos4	750/udp		kdc	# Kerberos (server) udp
kerberos4	750/tcp		kdc	# Kerberos (server) tcp
kerberos_master	751/udp			# Kerberos authentication
kerberos_master	751/tcp			# Kerberos authentication
passwd_server	752/udp			# Kerberos passwd server
krb_prop	754/tcp			# Kerberos slave propagation
krbupdate	760/tcp		kreg	# Kerberos registration
kpasswd		761/tcp		kpwd	# Kerberos "passwd"
kpop		1109/tcp		# Pop with Kerberos
knetd		2053/tcp		# Kerberos de-multiplexor
zephyr-srv	2102/udp		# Zephyr server
zephyr-clt	2103/udp		# Zephyr serv-hm connection
zephyr-hm	2104/udp		# Zephyr hostmanager
eklogin		2105/tcp		# Kerberos encrypted rlogin
#
# Services non officiels mais n�cessaires (pour NetBSD)
#
supfilesrv	871/tcp			# SUP server
supfiledbg	1127/tcp		# SUP debugging
#
# Services protocole de d�livrance de datagrammes
#
rtmp		1/ddp			# Routing Table Maintenance Protocol
nbp		2/ddp			# Name Binding Protocol
echo		4/ddp			# AppleTalk Echo Protocol
zip		6/ddp			# Zone Information Protocol
#
# Services Debian GNU/Linux
rmtcfg		1236/tcp		# Gracilis Packeten remote config server
xtel		1313/tcp		# french minitel
cfinger		2003/tcp		# GNU Finger
postgres	4321/tcp		# POSTGRES
mandelspawn	9359/udp	mandelbrot	# network mandelbrot
# Services locaux

Dans la r�alit�, le fichier augmente toujours en taille au fur et � mesure que de nouveaux services apparaissent. Si vous craignez que votre copie soit incompl�te, je vous sugg�re de copier un nouveau fichier /etc/services provenant d'une distribution r�cente.

5.8.2. /etc/inetd.conf

Le fichier /etc/inetd.conf est le fichier de configuration du serveur d�mon inetd . Il sert � dire � inetd ce qu'il doit faire lorsqu'il re�oit une demande de connexion pour un service particulier. Pour les services o� vous acceptez une connexion vous devez dire � inetd quel d�mon serveur de r�seau doit tourner, et comment.

Son format est aussi tr�s simple. C'est un fichier texte dont chaque ligne d�crit un service que vous voulez fournir. Tout texte suivant un `#' est ignor� et consid�r� comme commentaire. Chaque ligne contient sept champs s�par�s par un nombre quelconque d'espaces (espace ou tabulation). Le format g�n�ral est comme suit :

service  type_de_socket  protocole  drapeaux  utilisateur  chemin  arguments

service

est le nom de service applicable � cette configuration, pris dans le fichier /etc/services.

type_de_socket

ce champ d�crit le type de socket que cette entr�e consid�re comme pertinent. Voici les valeurs qui sont autoris�es : stream, dgram, raw, rdm, ou seqpacket. C'est un peu technique par nature, mais par exp�rience, presque tous les services bas�s sur tcp utilisent stream et presque tous les services bas�s sur udp utilisent dgram. Il n'y a que quelques types de serveurs d�mons sp�ciaux utilisant d'autres valeurs.

protocole

le protocole consid�r� comme valide pour cette entr�e. Il doit correspondre � l'entr�e appropri�e dans le fichier /etc/services et sera donc soit tcp soit udp. Les serveurs bas�s sur Sun RPC (Remote Procedure Call) utilisent rpc/tcp ou rpc/udp.

drapeaux

il n'y a en fait que deux valeurs pour ce champ. Celles-ci disent � inetd si le programme serveur r�seau lib�re le socket apr�s d�marrage, et donc si inetd peut prendre en compte une des prochaines demandes de connexion, ou bien si inetd doit attendre qu'un autre d�mon serveur tournant d�j� prenne en charge la nouvelle demande de connexion. C'est encore compliqu�, mais en pratique tous les serveurs tcp doivent avoir cette entr�e positionn�e sur nowait et la plupart des serveurs udp ont cette entr�e positionn�e sur wait. Attention il y a quelques exceptions notables, laissez vous guider par l'exemple suivant si vous n'�tes pas s�rs.

utilisateur

ce champ d�crit quel compte utilisateur extrait de /etc/passwd sera consid�r� comme propri�taire du d�mon r�seau lorsqu'il est lanc�. C'est tr�s utile lorsque vous voulez vous prot�ger contre les trous de s�curit�. Vous pouvez mettre nobody comme utilisateur pour une entr�e si bien que dans le cas o� le r�seau comporte une br�che, les dommages �ventuels seront minimis�s. Cependant habituellement ce champ est r�gl� sur root, car de nombreux serveurs ont besoin des privil�ges de root pour tourner correctement.

chemin_de_serveur

ce champ est le v�ritable chemin d'acc�s au programme.

arguments

ce champ correspond au reste de la ligne et est optionnel. Il sert � indiquer les arguments de commande que vous voulez passer au programme serveur au lancement.

5.8.2.1. Exemple de fichier /etc/inetd.conf

Comme pour le fichier /etc/services, toutes les distributions modernes incluent un bon fichier /etc/inetd.conf pour pouvoir travailler. Ici, pour �tre complet , vous trouverez le fichier /etc/inetd.conf de la distribution Debian.

# /etc/inetd.conf:  voir inetd(8) pour d'autres informations.
#
# Base de donn�es pour la configuration d'un serveur Internet
#
#
# Modifi� pour Debian par Peter Tobias <tobias@et-inf.fho-emden.de>
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
# Services internes
#
#echo		stream	tcp	nowait	root	internal
#echo		dgram	udp	wait	root	internal
discard		stream	tcp	nowait	root	internal
discard		dgram	udp	wait	root	internal
daytime		stream	tcp	nowait	root	internal
daytime		dgram	udp	wait	root	internal
#chargen	stream	tcp	nowait	root	internal
#chargen	dgram	udp	wait	root	internal
time		stream	tcp	nowait	root	internal
time		dgram	udp	wait	root	internal
#
# Services standards.
#
telnet	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.telnetd
ftp	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.ftpd
#fsp	dgram	udp	wait	root	/usr/sbin/tcpd	/usr/sbin/in.fspd
#
# Shell, login, exec et talk sont des protocoles BSD.
#
shell	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rshd
login	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rlogind
#exec	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rexecd
talk	dgram	udp	wait	root	/usr/sbin/tcpd	/usr/sbin/in.talkd
ntalk	dgram	udp	wait	root	/usr/sbin/tcpd	/usr/sbin/in.ntalkd
#
# Services Mail, news et uucp.
#
smtp	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.smtpd
#nntp	stream	tcp	nowait	news	/usr/sbin/tcpd	/usr/sbin/in.nntpd
#uucp	stream	tcp	nowait	uucp	/usr/sbin/tcpd	/usr/lib/uucp/uucico
#comsat	dgram	udp	wait	root	/usr/sbin/tcpd	/usr/sbin/in.comsat
#
# Pop et autres
#
#pop-2	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.pop2d
#pop-3	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.pop3d
#
# `cfinger' est le serveur finger GNU de Debian.  (NOTE : L'impl�mentation
# habituelle du d�mon `finger' permet de le faire tourner avec `root'.)
#
#cfinger stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.cfingerd
#finger	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.fingerd
#netstat	stream	tcp	nowait	nobody	/usr/sbin/tcpd	/bin/netstat
#systat	stream	tcp	nowait	nobody	/usr/sbin/tcpd	/bin/ps -auwwx
#
# Le service tftp est fourni principalement pour d�marrer. La plupart des sites
# l'utilisent seulement sur les machines servant de `serveurs de boot'.
#
#tftp	dgram	udp	wait	nobody	/usr/sbin/tcpd	/usr/sbin/in.tftpd
#tftp	dgram	udp	wait	nobody	/usr/sbin/tcpd	/usr/sbin/in.tftpd /boot
#bootps	dgram	udp	wait	root	/usr/sbin/bootpd	bootpd -i -t 120
#
# Services Kerberos (ils doivent probablement �tre corrig�s)
#
#klogin		stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rlogind -k
#eklogin	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rlogind -k -x
#kshell		stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.rshd -k
#
# Services tournant UNIQUEMENT sur Kerberos (doivent �tre probablement corrig�s)
#
#krbupdate	stream tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/registerd
#kpasswd	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/kpasswdd
#
# Services RPC
#
#mountd/1	dgram	rpc/udp	wait	root	/usr/sbin/tcpd	/usr/sbin/rpc.mountd
#rstatd/1-3	dgram	rpc/udp	wait	root	/usr/sbin/tcpd	/usr/sbin/rpc.rstatd
#rusersd/2-3	dgram	rpc/udp	wait	root	/usr/sbin/tcpd	/usr/sbin/rpc.rusersd
#walld/1	dgram	rpc/udp	wait	root	/usr/sbin/tcpd	/usr/sbin/rpc.rwalld
#
# Fin de inetd.conf.
ident		stream	tcp	nowait	nobody	/usr/sbin/identd       identd -i

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:32