Accueil


Unix - Linux


Windows


Réseau

 

 


 

- Sécurité Linux -15 -  

Chapitre III. Autres informations
III. Le super daemon xinetd

3. Configuration
a) Principes

Le fichier de configuration de xinetd est /etc/xinetd.conf, il est découpé en plusieurs sections, un section defaults avec des paramètres concernant tous les services, et une section par service avec des paramètres particuliers :

defaults
{
paramètres par défaut pour tous les services
}

service nom-du-service1
{
paramètres pour le service1
}

service nom-du-service2
{
paramètres pour le service2
}

...

On peut très bien faire comme sous la Mandrake 7.2 avoir un fichier xinetd.conf contenant :

defaults
{
paramètres par défaut pour tous les services
}

includedir /etc/xinetd.d

On créera un répertoire /etc/xinetd.d contenant autant de fichier qu’il y a de service, chaque fichier portant le nom du service et contenant :

service nom-du-service1
{
paramètres pour le service1
}

On aura donc le fichier telnet, ftp, finger...

b) Les options généralistes

Voilà les options qui peuvent s'appliquer à tous les services et qu'on peut mettre dans la section defaults du fichier xinetd.conf

log_type vous pouvez spécifier un archivage des logs en utilisant le daemon syslogd ou alors archiver dans un fichier. Exemple :

log_type = FILE /var/log/xinetd.log 20M 25M

Quand vous atteindrez un fichier de log de 20M, un message d'alerte va s'inscrire dans le fichier /var/log/messages mais le log continue, quand on va atteindre 25M, xinetd n'écrit plus dans le fichier de log.

log_on_success qui va spécifier les informations à archiver en cas de lancement réussi d'un service, vous avez le choix des paramètres suivant :

PID le PID du serveur
HOST adresse IP du client
USERID identité de l'utilisateur
EXIT le status de sortie du processus
DURATION le temps de la connexion

Exemple :
log_on_success = PID HOST USERID EXIT DURATION

Va donner les lignes suivantes pour un telnet

00/12/15@20:15:46: START: telnet pid=1889 from=192.168.13.10
00/12/15@20:18:39: EXIT: telnet status=0 pid=1889 duration=173(sec)

log_on_failure qui va spécifier les informations à archiver en cas d'erreur de lancement service (erreur d'authentification, manque de ressource), vous avez le choix des paramètres suivant :
HOST et USERID comme précédemment
RECORD pour enregistrer toutes les info disponibles sur le client

Exemple :

log_on_failure = HOST RECORD

no_access pour définir les clients non autorisés à se connecter

only_from pour définir les clients autorisés à se connecter. Exemple avec le sous réseau 192.168.13.X

only_from = 192.168.13.0/32

instances pour fixer le nombre maximum d'instances de serveur à lancer, ce qui permet d'éviter le DoS

per_source pour restreindre le nombre de connexion à un service venant d'une même machine

Les options par service

id pour identifier un service, si on utilise pas ce paramètre, dans le fichier de log on aura le nom du service, avec id vous pouvez redéfinir le nom du service qui sera archivé dans le fichier de log (ftp-public au lieu simplement de ftp par exemple)

nice pour définir la priorité d’un service (-20 plus prioritaire 19 plus prioritaire)

port numéro du port associé au service défini dans /etc/services

protocol nom du protocole défini dans /etc/protocols

server le chemin du service

server_args arguments à passer au service

socket_type type de socket (stream pour TCP et dgram pour UDP), pour savoir si c'est l'un ou l'autre voir le fichier /etc/services

wait si wait=yes une seule instance du service peut être lancé à la fois, si wait=no, on lance un serveur à chaque nouvelle connexion (dans la limite du nombre d'instance max)

access_times pour définir une plage horaire la syntaxe est la suivante heure:minute-heure:minute, exemple pour une plage horaire entre 7h-12h et 14h-19h

access_times = 7:00-12:00 14:00-19:00

env pour passer une variable d'environnement avant de lancer le service

bind (ou interface) pour attacher une interface à un service, pour limiter les requêtes à une interface réseau par exemple

redirect permet de rediriger une requête sur le port particulier d'une de vos machines de votre réseau local.

On peut réutiliser les paramètres déjà définis dans les paramètres par défaut et modifier
les options :

exemple avec log_on_success, si celui-ci est définit dans les paramètres par défaut avec les options suivantes PID HOST USERID EXIT DURATION, on veut avoir pour un service particulier uniquement PID et HOST on écrira donc

log_on_success -= USERID EXIT DURATION

De même si on a log_on_success défini à PID HOST et qu'on veut rajouter DURATION on écrira

log_on_success += DURATION

Quelques exemples

Le fichier xinetd.conf

Voilà un fichier xinetd.conf type. Pour les autorisations d’accès on autorise seules les machines du réseau local à accéder aux services, les autres machines se font jeter. Cela donne

defaults
{
instances = 20
per_source = 5
log_type = FILE /var/log/xinetd.log 20M 25M
log_on_success = HOST USERID DURATION
log_on_failure = HOST RECORD
only_from = 192.168.13.0/32
}

includedir /etc/xinetd.d

Les autres définitions de service se trouve sous le répertoire /etc/xinetd.d

c) Configurer un service

Le fichier se trouve sous /etc/xinetd.d et porte le nom du service. La syntaxe du fichier est la suivante :

service nom-du-service
{
socket_type = type de socket
wait = pour lancer un ou plusieurs instances du service
user = à qui appartiendra le service
server= chemin du serveur
server_args= argument du serveur (facultatif)
access_times=plage horaire (facultatif)
nice = priorité (facultatif)
}

Vous pouvez éventuellement rajouter d'autres options vues précédemments (access_times, ...) et redéfinir certains paramètres définis dans la section defaults

Exemple avec pop3

service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
log_on_success += USERID
log_on_failure += USERID
}

Avec le serveur NNTP leafnode

service nntp
{
socket_type = stream
wait = no
protocol = tcp
user = news
server = /usr/local/sbin/leafnode
}

Avec ftp avec une plage horaire et une limitation à 4 personnes connectées simultanément

service ftp
{
socket_type = stream
wait = no
protocol = tcp
user = root
server = /usr/sbin/in.ftpd
instances = 4
access_times = 7:00-12:00 14:00-17:00
nice=15
}

Exemple avec xtelw le serveur minitel pour windows qui permet de voir comment passer un argument au service

service xtelw
{
socket_type = stream
wait = no
protocol = tcp
user = root
server = /usr/X11R6/bin/xtelw
server_args = -H
}

Exemple avec un serveur ftp privé, seules les requêtes venant de l'interface réseau internet ont acceptées, id va redéfinir le nom du service, dans le fichier log on verra la mention ftp-private au lieu de ftp tout simplement.

service ftp
{
id = ftp-private
socket_type = stream
wait =no
user =root
server=/usr/sbin/in.ftpd
instances= 4
only_from= 192.168.13.0/24
bind= 192.168.13.11
}

Autre exemple avec la redirection, ici on rediriger vers le port 23 (telnet) de la machine 192.168.13.10

service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
redirect = 192.168.13.10 23
}

Précédent - Plan - Suivant

 

 

 

 

 

 

 

 

 

 

Accès Privé

identifiant :

mot de passe :


Administration


Calendrier

<< Juillet  2025 >>
Lun Mar Mer Jeu Ven Sam Dim
30 01 02 03 04 05 06
07 08 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 01 02 03

 

 Mise à jour :  
9/11/03     nous contacter  ©copyright JoVal