==== Xinetd ====
Xinetd e` un sostituto di inetd. Visto che di default in Debian inetd non viene nemmeno piu` installato, ho pensato di provare (dato che ne avevo bisogno) xinetd, e l'ho trovato molto interessante e versatile. Il suo difetto principale e` che e` assai scarso di documentazione. Il man di xinetd.conf descrive tutti i parametri, ma non modo molto conciso e senza esempi. Per fortuna quando non funziona qualcosa nel syslog ci sono sufficienti informazioni (di solito) per capire cosa c'e` che non va.
Qui raccogliero` un po` di esempi di configurazioni fatte da me per le cose che mi sono servite.
Le configurazioni possono essere fatte indistintamente in ''/etc/xinetd.conf'' oppure dentro a dei files (con qualsiasi nome) in ''/etc/xinetd.d''. Alcune configurazioni possono essere impostate come default, ed eventualmente modificate poi nella configurazione specifica di un servizio, mentre altre hanno senso solo dentro ad un servizio.
I servizi (le porte) possono essere descritti dentro ''/etc/services'' o anche no, nel secondo caso dovremo ovviamente indicare una porta per il servizio, mentre nel primo non ha senso in quanto e` definita appunto in services.
Esempio di un servizio definito in ''/etc/services'' che lancia uno script:
service igswork
{
socket_type = stream
protocol = tcp
wait = no
instances = 100
log_type = SYSLOG daemon
user = ig2script
server = /opt[[/IG2]]/igs/server.pl
}
Esempio di un servizio non definito in ''/etc/services'' che rimanda la connessione a una macchina remota (in pratica in locale non fa nulla, rimbalza solo il traffico a una macchina remota). Notare che occorre comunque mettere un utente valido, anche se non ho capito perche`, visto che tanto fa una connessione remota senza lanciare alcun processo locale. Senza pero` non funziona.
service checkmd5
{
type = UNLISTED
protocol = tcp
wait = no
user = ig2script
port = 9998
redirect = 10.20.0.200 9998
}
Configurazione generale (in /etc/xinetd.conf) per il logging:
defaults
{
log_type = SYSLOG daemon info
log_on_success = PID HOST EXIT DURATION
log_on_failure = HOST
}