Xinetd, Il Super-Demone
di Francesco CelebriniXinetd, un demone che gestisce altri demoni...
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 #