Inetd e i servizi di rete: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (da adottare)
 
(14 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Guida da adottare}}
===ACPI (Advanced Configuration and Power Interface)===
==Il superdemone inetd==
Il problema del supporto delle ACPI in linux risiede nella parziale compatibilit� della tabella DSDT inclusa nel kernel. La DSTD ('''Differentiated System Description Table''') � una tabella che contiene e fornisce un blocco di informazioni sul sistema a basso livello (batteria, luminosit� LCD, pulsanti Fn, �). Purtroppo, molti fornitori di hardware non sono capaci di fornire le tabelle completamente funzionali secondo gli standart ACPI.


==Aggiornamento del BIOS==
===Introduzione===
Per cominciare � indispensabile aggiornare il BIOS con l�ultima versione disponibile, sperando che la nuova versione contenga una tabella DSDT compatible con il kernel di linux.
Inetd ('''Internet Super-Server''') è un [[demone]] che ascolta sulle porte specificate nel suo file di configurazione e fa avviare il relativo servizio nel momento in cui viene fatta una richiesta. Esso controlla tramite dei [[wrapper]] i file <code>'''/etc/hosts.allow'''</code> e <code>'''/etc/hosts.deny'''</code> per verificare che la connessione sia consentita.


==Installazione nel kernel del supposto ACPI==
Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni.
Per prima cosa � necessario compilare il kernel con il supporto ACPI. Le sezioni del kernel necessarie per la compilazione sono le seguenti:


<pre>ACPI (Advanced Configuration and Power Interface) Support --->
Il vantaggio di usarlo è di ottimizzare le risorse del sistema, avviando il demone che gestisce un determinato servizio solo quando ci sono effettive richieste.
    ACPI Support --->
        <*> AC Adapter
        <*> Battery
        <*> Button
        <*> Processor</pre>


==Strumenti per lavorare con le DSDT==
Sebbene possa essere usato per gestire quasi tutti i servizi è consigliabile farlo solo per quelli a basso e occasionale traffico.
Per potere leggere e compilare una DSDT � necessario scaricare il compilatore ASL della Intel da:
<pre>http://developer.intel.com/technology/iapc/acpi/downloads.htm</pre>


A dipendenza del metodo di integrazione delle nuove tabelle DSDT � possibile scegliere di inserirle:
===Installazione===
<pre>DSDT da compilare staticamente con il kernel da:
Se per qualche motivo il demone inetd non dovesse essere installato è sufficiente installarlo tramite APT. Inoltre consiglio l'installazione dei TCP wrappers:
ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/
<pre># apt-get install openbsd-inetd tcpd</pre>


DSDT da inserire nell�initrd:
===Configurazione===
http://gaugusch.at/kernel.shtml</pre>
Per prima cosa è necessario modificare i permessi al file <code>'''/etc/inetd.conf'''</code> in modo che solo root abbia accesso:
<pre># chmod 600 /etc/inetd.conf</pre>


===Installare il compilatore ASL===
Ogni riga di <code>'''/etc/inetd.conf'''</code> corrisponde ad un servizio che viene gestito da inetd. Se è commentata con un <code>#</code> il servizio non viene avviato e inetd non mette la relativa porta in listening. Esempio:
Per installare il compilatore ASL eseguire i seguenti passi:
<pre>$: tar -zxvf acpica-unix-20050624.tar.gz
$: cd acpica-unix-20050624/compiler
$: make</pre>


===Ottenere una DSDT===
<pre># These are standard services. 
� possibile modificare la DSDT attualmente installata e correggere gli errori e i problemi rilevati, estraendola da:
#
<pre>$: cat /proc/acpi/dsdt > dsdt.dat</pre>
#ftp    stream  tcp  nowait  root  /usr/sbin/tcpd  in.ftpd -l -a 
#telnet stream  tcp  nowait  root  /usr/sbin/tcpd  in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols. 
#shell  stream  tcp    nowait  root    /usr/sbin/tcpd  in.rshd 
#login  stream  tcp    nowait  root    /usr/sbin/tcpd  in.rlogind 
#exec  stream  tcp    nowait  root    /usr/sbin/tcpd  in.rexecd 
#comsat dgram  udp    wait    root    /usr/sbin/tcpd  in.comsat 
#talk  dgram  udp    wait    root    /usr/sbin/tcpd  in.talkd 
#ntalk  dgram  udp    wait    root    /usr/sbin/tcpd  in.ntalkd 
#dtalk  stream  tcp    waut    nobody  /usr/sbin/tcpd  in.dtalkd</pre>


Ci� creer� un file '''dsdt.dat''' che conterr� la DSDT compilata. Ora � necessario decompilarla con il compilatore ASL appena installato:
Il formato tipico di ogni riga è il seguente:
<pre>$: iasl -d dsdt.dat</pre>


Verr� generato un file denominato '''dsdt.dsl''', che conterr� la DSDT. Questo file pu� essere tranquillamente editato con un editor di testi e modificato a seconda delle esigenze e dei problemi riscontrati. Una volta corretti gli errori ricompilare il file '''dsdt.dsl'''.
<pre>service type protocol wait user server cmdline</pre>
       
<pre>$: iasl -tc dsdt.dsl</pre>


Verranno generati due file dalla compilazione:
Un esempio pratico di una riga presente in <code>'''/etc/inetd.conf'''</code>:
*:dsdt.hex
<pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l
*:DSDT.aml


{{ Warningbox | � possibile scaricare una custom DSDT gi� pronta e corretta da internet per molti portatili in commercio: http://acpi.sourceforge.net/dsdt/tables }}
ftp: nome del servizio
stream: indica il tipo
tcp: indica il protocollo
nowait: indica se deve attendere
user: indica l'utente che ha il privilegio di accesso
server: indica dove si trova il programma
cmdline:indica il nome dell’eseguibile e eventuali flag</pre>


==Aggiornare il Kernel==
Inoltre inetd si appoggia su un altro file di configurazione dei servizi: <code>/etc/services</code>, file che assegna un nome di servizio alla relativa porta e che viene usato anche da altri programmi come file di riferimento.
Ci sono due modi per incorporare la nuova DSDT nel kernel. � possibile implementare i file '''dsdt.hex''' e '''DSDT.aml''' generati in modo statico o tramite initrd.


*:Il primo modo � includere la DSDT staticamente nel kernel. Questo comporter� una ricompilazione del kernel al termine della procedura. Se usate questo metodo avete bisogno del file '''dsdt.hex'''.
Se si vogliono utilizzare i tcpwrapper per limitare l'accesso al servizio la riga sopra diventa:
<pre>ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd –l</pre>


*:Il secondo modo � di passare la DSDT al kernel durante il caricamento nella fase di boot tramite initrd. Se usate questo metodo avete bisogno del file '''DSDT.aml'''.
Nelle distribuzioni Linux, solitamente inetd è già configurato per supportare i tcp wrappers.


===TCP wrappers===
I tcp wrapper '''TCPD''', sviluppati dall'olandese Wietse Venema, sono un layer software che permette il controllo e il filtro degli accessi a servizi del sistema, tipicamente gestiti con inetd.


Il metodo initrd � probabilmente preferibile, particolarmente se dovete fare diversi cambiamenti alla vostra DSDT, perch� non richiede la ricompilazione del Kernel per ogni nuova DSDT generata.
In pratica da una configurazione:


===Installazione Metodo statico===
<pre>client -----> inetd -----> servizio</pre>
� necessario installare una patch al kernel per far si che legga la nuova DSDT senza problemi. Una volta eseguita questa operazione copiate la nuova DSDT (.hex file) nella directory dei sorgenti del kernel.


Scaricare la patch a questo indirizzo:
Si passa ad una configurazione:
<pre>ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release</pre>


Patchate il kernel, spostandovi nella directory dove sono presenti i sorgenti:
<pre>client -----> inetd -----> TCPD -----> servizio</pre>
<pre>$: cd /usr/src/linux-2.6.8
$: patch -p1 < /percorso_dove_avete_salvato_la_patch</pre>


Se non appaiono errori, significa che il kernel � stato patchato correttamente.
Nella nuova configurazione i tcpwrappers possono limitare l'accesso al servizio secondo criteri configurabili ed hanno funzionalità anti-spoofing e anti tcp sequence guessing. La configurazione dei tcp wrappers si fa essenzialmente in due file.


Copiare il file dsdt.hex rinominandolo in dsdt_table.h nella directory dei sorgenti del kernel:
Questo file permette di specificare quali servizi abilitare e da quali indirizzi IP:
<pre>$: cp dsdt.hex /usr/src/linux-2.8.6/include/acpi/dsdt_table.h</pre>
<code>/etc/hosts.allow</code>


Infine ricompilare il kernel. Se non ci sono errori al prossimo avvio del PC il supporto ACPI � caricato correttamente senza alcun problema.
Questo file permette di specificare come limitare l'accesso a specifici servizi:
<code>/etc/hosts.deny</code>


===Installazione Metodo initrd===
===Comandi utili===
Questo metodo permette di modificare la DSDT senza dover ricompilare il kernel. Questo metodo risulta efficace nel caso dovessimo modificare diverse volte la DSDT.
Per avviare, riavviare, fermare il servizio inetd:
<pre># service openbsd-inetd start/stop/restart</pre>


Scaricare la patch a questo indirizzo:
===Configurazioni utili===
<pre>http://gaugusch.at/kernel.shtml</pre>
Nega l'accesso a tutti i client e controlla che ip - nome.host corrispondano:
<pre>File da applicare: /etc/hosts.deny
ALL:ALL@ALL,PARANOID</pre>


Patchate il kernel, spostandovi nella directory dove sono presenti i sorgenti:
Consente l'accesso a tutti i client e controlla che ip - nome.host corrispondano:
<pre>$: cd /usr/src/linux-2.6.8
<pre>File da applicare: /etc/hosts.allow
$: patch -p1 < / percorso_dove_avete_salvato_la_patch</pre>
ALL: LOCAL 192.168.1.0/255.255.255.0</pre>


� necessario assicurarsi che i seguenti moduli (ramdisk and initrd ) siano compilati staticamente nel kernel:
Permette l'accesso SSH all'host prova.it corrispondente all'IP 10.0.0.1
<pre>Device Drivers --->
<pre>File da applicare: /etc/hosts.allow
    Block Devices --->
sshd: 10.0.0.1 prova.it</pre>
        <*> RAM disk support
        [*] Initial RAM disk (initrd) support</pre>


Inoltre � necessario controllare che l�opzione '''Read DSDT from initrd''' � selezionata nel menu delle opzioni ACPI:
Manda una email all'indirizzo specificato admin_mail ogni qualvolta qualcuno si connette attraverso il servizio telnet, indicando l'indirizzo del client (%a) e l'utente (%u), la lista di questi parametri è contenuta nella man page hosts_access.
<pre>Power management options (ACPI, APM) --->
<pre>File da applicare: /etc/hosts.allow
    ACPI (Advanced Configuration and Power Interface) Support --->
in.telnetd : ALL@ALL : spawn ( /bin/mail -s "Connessione telnet da: %a %u" admin_mail ) & </pre>
        [*] Read DSDT from initrd</pre>


Se queste opzioni non sono abilitate, abilitarle e ricompilare il kernel. Se sono gi� abilitate non � necessario ricompilare il kernel. Ora il kernel � pronto ad accettare la DSDT con initrd. � necessario preparare initrd:
==Da inetd a Xinetd==
<pre>$: echo "INITRDDSDT123DSDT123" >> /boot/initrd-kernel-2.8.6.img
===Differenze===
$: cat DSDT.aml >> /boot/initrd-kernel-2.6.8.img</pre>
A differenza del precedessore, xinetd (e'''x'''tended inetd):


Riavviare e controllare se il supporto ACPI funziona. Ricordarsi di aggiornare i bootloader!
:*Limita o regola l'accesso a determinati servizi senza ricorrere al Tcp Wrapper;
:*Offre un sistema di logging indipendente da syslog;
:*Permette di limitare l'accesso ai servizi in determinate ore della giornata;
:*Supporta il protocollo IPv6;
:*Utilizza vari meccanismi che mitigano l'impatto di un attacco DOS.


==Siti ufficiali dei progetti==
===File di configurazione===
http://acpi.sourceforge.net
La configurazione del demone e dei servizi può essere suddivisa in più file non compatibili con i vecchi file di configurazione del demone inetd. Le directory contenenti i file di configurazione sono leggermente cambiate:
http://www.acpi.info/
<pre>/etc/xinetd.conf
File di configurazione del demone


Autore: [[Utente:Net deity|Net deity]]
/etc/xinetd.d/*
Directory che contiene i singoli file dei servizi offerti da xinetd</pre>
 
Il file di configurazione di xinetd è un file di testo che indica i servizi gestiti da xinetd. Contiene delle sezioni, ognuna delle quali identifica un servizio, con la seguente sintassi:
<pre>service service_name
{
    attribute assign_op [value] [value] [...]
    [...]
}</pre>
 
Dove i seguenti attributi indicano:
:* <code>'''service_name'''</code>  è l'indicazione di un servizio gestito da xinetd;
:* <code>'''attribute'''</code>  indica un attributo relativo al servizio service_name;
:* <code>'''assign_op'''</code>  è un operatore di assegnamento, e può essere <code>=</code> (specifica l’unico valore dell’attributo), <code>+=</code> (aggiunge un valore all'attributo) o <code>-=</code> (rimuove un valore dall’attributo).
 
===Esempi di configurazione di Xinetd===
Di seguito sono riportati alcuni esempi pratici e semplici di un file di configurazione <code>'''/etc/xinetd.conf'''</code>:
<pre>service shell
          {
                socket_type        = stream
                wait                = no
                user                = root
                instances          = UNLIMITED
                server              = /usr/etc/in.rshd
                log_on_success      += HOST RECORD
          }
 
service ftp                                                             
          {
                socket_type        = stream
                wait                = no
                nice                = 10
                user                = root
                server              = /usr/etc/in.ftpd
                server_args        = -l
                instances          = 4
                log_on_success      += DURATION HOST USERID
                access_times        = 2:00-9:00 12:00-24:00
          }</pre>
 
Per una guida dettagliata di ogni singolo parametro è possibile consultare il '''man''' una volta installato xinetd. Xinetd è un demone molto flessibile e tramite il suo file di configurazione è possibile specificare decine e decine di opzioni.
 
===Opzioni di Xinetd===
Le opzioni che possono essere utilizzate per la modalità di funzionamento di xinetd sono le seguenti:
:* <code>'''-d'''</code>: abilita la modalità di debug;
:* <code>'''-syslog syslog_facility'''</code>: imposta la facility relativa al system log secondo quanto specificato da <code>syslog_facility</code>;
:* <code>'''-filelog logfile'''</code>: indica di redirigere il log degli eventi di xinetd nel file logfile;
:* <code>'''-f config_file'''</code>: indica il file di configurazione da considerare secondo quanto specificato da <code>config_file</code> (default <code>/etc/xinetd.conf</code>);
:* <code>'''-pidfile pid_file'''</code>: indica di scrivere nel file <code>pid_file</code> il PID del processo lanciato;
:* <code>'''-stayalive'''</code>: indica di rimanere in esecuzione anche se nel file di configurazione non è stato specificato nessun servizio;
:* <code>'''-limit proc_limit'''</code>: imposta il numero massimo di processi che xinetd può lanciare secondo quanto specificato da <code>proc_limit</code>;
:* <code>'''-logprocs limit'''</code>: imposta il numero massimo di daemon che possono essere lanciati in esecuzione per ogni utente, secondo quanto specificato da <code>limit</code>;
:* <code>'''-version'''</code>: visualizza la versione di xinetd;
:* <code>'''-inetd_compat'''</code>: indica di considerare anche il file di configurazione <code>'''/etc/inetd.conf'''</code> subito dopo <code>'''/etc/xinetd.conf'''</code>;
:* <code>'''-cc interval'''</code>: indica di controllare un controllo periodico del proprio stato ogni <code>interval</code> secondi;
 
Il processo xinetd effettua le operazioni elencate in corrispondenza dei seguenti segnali:
 
:*<code>'''SIGHUP'''</code>: rilegge il file di configurazione e termina l’esecuzione dei daemon relativi a servizi non più attivi (secondo quanto specificato nel file di configurazione);
:* <code>'''SIGQUIT'''</code>: termina la sua esecuzione;
:* <code>'''SIGTERM'''</code>: termina l’esecuzione di tutti i daemon prima di terminare anche la sua esecuzione;
:* <code>'''SIGUSR1'''</code>: scrive il suo stato interno (dump) nel file <code>'''/var/run/xinetd.dump'''</code>;
:* <code>'''SIGIOT'''</code>: controlla la consistenza delle sue strutture dati, visualizzando quindi un messaggio relativo.
 
[[Categoria:Monitoraggio]]
[[Categoria:Shell]]

Versione attuale delle 19:19, 3 nov 2019

Guida da adottare! Bannermv.png


Il superdemone inetd

Introduzione

Inetd (Internet Super-Server) è un demone che ascolta sulle porte specificate nel suo file di configurazione e fa avviare il relativo servizio nel momento in cui viene fatta una richiesta. Esso controlla tramite dei wrapper i file /etc/hosts.allow e /etc/hosts.deny per verificare che la connessione sia consentita.

Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni.

Il vantaggio di usarlo è di ottimizzare le risorse del sistema, avviando il demone che gestisce un determinato servizio solo quando ci sono effettive richieste.

Sebbene possa essere usato per gestire quasi tutti i servizi è consigliabile farlo solo per quelli a basso e occasionale traffico.

Installazione

Se per qualche motivo il demone inetd non dovesse essere installato è sufficiente installarlo tramite APT. Inoltre consiglio l'installazione dei TCP wrappers:

# apt-get install openbsd-inetd tcpd

Configurazione

Per prima cosa è necessario modificare i permessi al file /etc/inetd.conf in modo che solo root abbia accesso:

# chmod 600 /etc/inetd.conf

Ogni riga di /etc/inetd.conf corrisponde ad un servizio che viene gestito da inetd. Se è commentata con un # il servizio non viene avviato e inetd non mette la relativa porta in listening. Esempio:

# These are standard services.  
# 
#ftp    stream  tcp   nowait  root  /usr/sbin/tcpd  in.ftpd -l -a  
#telnet stream  tcp   nowait  root  /usr/sbin/tcpd  in.telnetd 
# 
# Shell, login, exec, comsat and talk are BSD protocols.  
#  
#shell  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd  
#login  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind  
#exec  stream   tcp     nowait  root    /usr/sbin/tcpd  in.rexecd  
#comsat dgram   udp     wait    root    /usr/sbin/tcpd  in.comsat  
#talk   dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd  
#ntalk   dgram  udp     wait    root    /usr/sbin/tcpd  in.ntalkd  
#dtalk  stream  tcp     waut    nobody  /usr/sbin/tcpd  in.dtalkd

Il formato tipico di ogni riga è il seguente:

service type protocol wait user server cmdline

Un esempio pratico di una riga presente in /etc/inetd.conf:

ftp stream tcp nowait root /usr/sbin/in.ftpd –l

ftp:	nome del servizio
stream:	indica il tipo
tcp:	indica il protocollo
nowait:	indica se deve attendere
user:	indica l'utente che ha il privilegio di accesso
server:	indica dove si trova il programma
cmdline:indica il nome dell’eseguibile e eventuali flag

Inoltre inetd si appoggia su un altro file di configurazione dei servizi: /etc/services, file che assegna un nome di servizio alla relativa porta e che viene usato anche da altri programmi come file di riferimento.

Se si vogliono utilizzare i tcpwrapper per limitare l'accesso al servizio la riga sopra diventa:

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd –l

Nelle distribuzioni Linux, solitamente inetd è già configurato per supportare i tcp wrappers.

TCP wrappers

I tcp wrapper TCPD, sviluppati dall'olandese Wietse Venema, sono un layer software che permette il controllo e il filtro degli accessi a servizi del sistema, tipicamente gestiti con inetd.

In pratica da una configurazione:

client -----> inetd -----> servizio

Si passa ad una configurazione:

client -----> inetd -----> TCPD -----> servizio

Nella nuova configurazione i tcpwrappers possono limitare l'accesso al servizio secondo criteri configurabili ed hanno funzionalità anti-spoofing e anti tcp sequence guessing. La configurazione dei tcp wrappers si fa essenzialmente in due file.

Questo file permette di specificare quali servizi abilitare e da quali indirizzi IP: /etc/hosts.allow

Questo file permette di specificare come limitare l'accesso a specifici servizi: /etc/hosts.deny

Comandi utili

Per avviare, riavviare, fermare il servizio inetd:

# service openbsd-inetd start/stop/restart

Configurazioni utili

Nega l'accesso a tutti i client e controlla che ip - nome.host corrispondano:

File da applicare: /etc/hosts.deny
ALL:ALL@ALL,PARANOID

Consente l'accesso a tutti i client e controlla che ip - nome.host corrispondano:

File da applicare: /etc/hosts.allow
ALL: LOCAL 192.168.1.0/255.255.255.0

Permette l'accesso SSH all'host prova.it corrispondente all'IP 10.0.0.1

File da applicare: /etc/hosts.allow
sshd: 10.0.0.1 prova.it

Manda una email all'indirizzo specificato admin_mail ogni qualvolta qualcuno si connette attraverso il servizio telnet, indicando l'indirizzo del client (%a) e l'utente (%u), la lista di questi parametri è contenuta nella man page hosts_access.

File da applicare: /etc/hosts.allow
in.telnetd : ALL@ALL : spawn ( /bin/mail -s "Connessione telnet da: %a %u" admin_mail ) & 

Da inetd a Xinetd

Differenze

A differenza del precedessore, xinetd (extended inetd):

  • Limita o regola l'accesso a determinati servizi senza ricorrere al Tcp Wrapper;
  • Offre un sistema di logging indipendente da syslog;
  • Permette di limitare l'accesso ai servizi in determinate ore della giornata;
  • Supporta il protocollo IPv6;
  • Utilizza vari meccanismi che mitigano l'impatto di un attacco DOS.

File di configurazione

La configurazione del demone e dei servizi può essere suddivisa in più file non compatibili con i vecchi file di configurazione del demone inetd. Le directory contenenti i file di configurazione sono leggermente cambiate:

/etc/xinetd.conf
File di configurazione del demone

/etc/xinetd.d/*
Directory che contiene i singoli file dei servizi offerti da xinetd

Il file di configurazione di xinetd è un file di testo che indica i servizi gestiti da xinetd. Contiene delle sezioni, ognuna delle quali identifica un servizio, con la seguente sintassi:

service service_name
{
    attribute assign_op [value] [value] [...]
    [...]
}

Dove i seguenti attributi indicano:

  • service_name è l'indicazione di un servizio gestito da xinetd;
  • attribute indica un attributo relativo al servizio service_name;
  • assign_op è un operatore di assegnamento, e può essere = (specifica l’unico valore dell’attributo), += (aggiunge un valore all'attributo) o -= (rimuove un valore dall’attributo).

Esempi di configurazione di Xinetd

Di seguito sono riportati alcuni esempi pratici e semplici di un file di configurazione /etc/xinetd.conf:

service shell
          {
                socket_type         = stream
                wait                = no
                user                = root
                instances           = UNLIMITED
                server              = /usr/etc/in.rshd
                log_on_success      += HOST RECORD
          }

service ftp                                                              
          {
                socket_type         = stream
                wait                = no
                nice                = 10
                user                = root
                server              = /usr/etc/in.ftpd
                server_args         = -l
                instances           = 4
                log_on_success      += DURATION HOST USERID
                access_times        = 2:00-9:00 12:00-24:00
          }

Per una guida dettagliata di ogni singolo parametro è possibile consultare il man una volta installato xinetd. Xinetd è un demone molto flessibile e tramite il suo file di configurazione è possibile specificare decine e decine di opzioni.

Opzioni di Xinetd

Le opzioni che possono essere utilizzate per la modalità di funzionamento di xinetd sono le seguenti:

  • -d: abilita la modalità di debug;
  • -syslog syslog_facility: imposta la facility relativa al system log secondo quanto specificato da syslog_facility;
  • -filelog logfile: indica di redirigere il log degli eventi di xinetd nel file logfile;
  • -f config_file: indica il file di configurazione da considerare secondo quanto specificato da config_file (default /etc/xinetd.conf);
  • -pidfile pid_file: indica di scrivere nel file pid_file il PID del processo lanciato;
  • -stayalive: indica di rimanere in esecuzione anche se nel file di configurazione non è stato specificato nessun servizio;
  • -limit proc_limit: imposta il numero massimo di processi che xinetd può lanciare secondo quanto specificato da proc_limit;
  • -logprocs limit: imposta il numero massimo di daemon che possono essere lanciati in esecuzione per ogni utente, secondo quanto specificato da limit;
  • -version: visualizza la versione di xinetd;
  • -inetd_compat: indica di considerare anche il file di configurazione /etc/inetd.conf subito dopo /etc/xinetd.conf;
  • -cc interval: indica di controllare un controllo periodico del proprio stato ogni interval secondi;

Il processo xinetd effettua le operazioni elencate in corrispondenza dei seguenti segnali:

  • SIGHUP: rilegge il file di configurazione e termina l’esecuzione dei daemon relativi a servizi non più attivi (secondo quanto specificato nel file di configurazione);
  • SIGQUIT: termina la sua esecuzione;
  • SIGTERM: termina l’esecuzione di tutti i daemon prima di terminare anche la sua esecuzione;
  • SIGUSR1: scrive il suo stato interno (dump) nel file /var/run/xinetd.dump;
  • SIGIOT: controlla la consistenza delle sue strutture dati, visualizzando quindi un messaggio relativo.