Xinetd, Il Super-Demone

di Francesco Celebrini

Xinetd, un demone che gestisce altri demoni...

Xinetd, Il  Super-Demone

Presente nella directory /etc/init.d, l'eseguibile Xinetd è utilizzato per la gestione di servizi di rete; in sostanza è un demone che gestisce altri demoni.
Le sue funzioni sono molteplici:
controllo sull'accesso, funzionalità di log, possibilità di associare un servizio a specifiche interfacce di rete, limitazione di possibili attacchi Denial of Service.
Dopo aver letto il suo file di configurazione (/etc/xinetd.conf), Xinetd si mette in ascolto sulle porte indicate avviando il servizio richiesto, se vengono superati i controlli.
Il file /etc/xinetd.conf contiene solo alcuni valori di default che si applicano a tutti i servizi e un'istruzione che rimanda alla directory /etc/xinetd.d, che contiene i file di configurazione di ogni singolo servizio.
Vediamo un semplice esempio:


# Inizio /etc/xinetd.conf #

defaults
{
instances = 60 # imposta il numero massimo di richieste
# che un servizio può gestire alla volta

log_type = SYSLOG authpriv # indica a xinetd di usare il
# registro authpriv,
# specificato in /etc/syslog.conf

log_on_success = HOST PID # indica a xinetd cosa registrare se la
# connessione avviene correttamente
# (di default viene registrato l'indirizzo
# ip dell'host remoto e l'id del server
# che elabora la richiesta)

log_on_failure = HOST # indica a xinetd cosa registrare se la
# connessione fallisce o non è autorizzata

cps = 25 30 # indica a xinetd di non consentire più di
# 25 connessioni al secondo verso un dato
# servizio; quando tale limite viene raggiunto
# il servizio entra in pausa per 30 secondi
# e controlla se le connessioni diminuiscono;
# se così non è attende ancora
}
includedir /etc/xinetd.d # ogni file contenuto nella directory
# viene letto tutte la volte che si avvia il
# super-demone e corrisponde ad ognuno dei
# servizi gestiti

# Fine /etc/xinetd.conf #


Ora entriamo in /etc/xinetd.d e visualizziamo come esempio il file di telnet, da dove è possibile bloccare l'accesso di questo servizio a un sistema da parte di uno specifico gruppo di rete e restringere la fascia oraria durante la quale gli utenti autorizzati possono collegarsi:


# Inizio /etc/xinetd.d/telnet #

service telnet
{
disable = no # se impostato su yes il servizio non è attivo

socket_type = dgram # (udp)

wait = no # per ogni nuova connessione Xinetd avvia una nuova
# copia del server

user = root

server = /usr/sbin/in.telnetd

log_on_failure = USERID # registra l'identità dell'utente remoto che non è
# riuscito a connettersi

no_access = 192.168.10.0/24 # gli host di questa rete non possono
# connettersi

log_on_success = PID HOST EXIT # registra l'id del processo, l'indirizzo
# dell'host, lo stato di uscita del servizio
# delle connessioni avvenute

access_times = 08:30-17:30 # specifica la fascia oraria in cui il
# servizio può essere utilizzato
}

# Fine /etc/xinetd.d/telnet #

AUTORE DEL TESTO
Francesco Celebrini

Pubblicato il: 29/03/2005