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 #
Francesco Celebrini
f.celebrini@freeonline.it