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
}

LinuxDebian/Xinetd (last edited 2012-03-07 17:33:43 by Kurgan)