Inetd e i servizi di rete: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (da adottare)
 
(10 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
__NOTOC__
{{Guida da adottare}}
<!-- ---------- BEGINNING OF HEADER SECTION -------------------------- -->
==Il superdemone inetd==
{|style="-moz-border-radius: 0.5em; width:100%; margin-top:+.7em; background-color:#fcfcfc; border: 1px solid #ccc"
|style="width:50%;color:#000"|
{| style="width:280px;border:solid 0px;background:none"
|-
| style="width:280px;text-align:center; white-space: nowrap; color:#000" |
<h1 style="font-size: 162%; border: none; margin: 0; padding:.1em; color:#000">
Bevenuti su [[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]],
</h1>
<div style="top: +0.2em; font-size: 100%">
La risorsa libera dedicata a Debian e al Software Libero [[Aiuto:Contents|a cui tutti possono contribuire]].
</div>
<div id="articlecount" style="width:100%;text-align:center;font-size:85%;">
Pi� di [[Special:Statistics|{{NUMBEROFARTICLES}}]] Articoli e Guide in Italiano</div>
|-
|}
<!-- ----------Portals Follow----------------------------- -->
|style="width:30%;font-size:95%;color:#000"|
* '''[[Cos'�_Debianizzati.Org|Cos'� Debianizzati.Org]]'''
* [http://www.debianizzati.org/ Portale Debianizzati.Org]
* [http://www.debianizzati.org/component/option,com_joomlaboard/Itemid,29/ Forum]
* [[contratto sociale|Contratto Sociale]]
|}
<!-- -------End Portals----- -->


===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 <code>'''/etc/hosts.allow'''</code> e <code>'''/etc/hosts.deny'''</code> per verificare che la connessione sia consentita.


<!-- ---------- END OF HEADER SECTION / BEGINNING OF LEFT-COLUMN ------------------ -->
Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni.
{| style="border-spacing:8px;margin:0px -8px"
|class="MainPageBG" style="-moz-border-radius: 0.5em;width: 55%; border:1px solid #cef2e0; background-color:#f5fffa; vertical-align:top;color:#000"|
{| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#f5fffa"
! <h2 style="margin: 0; background-color:#cef2e0; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Cos'� Guide@Debianizzati.Org</h2>
|-
|style="color:#000"|


[[Image: swirl-75-alpha.png |left]]'''Guide @ Debianizzati.org''' � un progetto che ha lo scopo di raccogliere documentazione italiana su Debian GNU/Linux e su GNU/Linux in generale (nel caso di guide generiche indipendenti dalla distribuzione). Questo progetto � nato in seno alla comunit� [http://www.debianizzati.org Debianizzati] e ne condivide lo spirito ed il [[contratto sociale]].
Il vantaggio di usarlo è di ottimizzare le risorse del sistema, avviando il demone che gestisce un determinato servizio solo quando ci sono effettive richieste.


Questo � un [http://it.wikipedia.org/wiki/Pagina_principale wiki], sentiti quindi libero di contribuire anche solo correggendo piccoli errori, estendendo le guide presenti o scrivendone di nuove. Se vuoi contribuire, per favore, leggi le [[Help:Contents|linee guida]] dove troverai le informazioni generali su come editare le pagine.
Sebbene possa essere usato per gestire quasi tutti i servizi è consigliabile farlo solo per quelli a basso e occasionale traffico.


Ti preghiamo di non inserire nel wiki contenuti coperti da licenze non libere. In particolare tutte le guide inserite sono da considerarsi rilasciate secondo la licenza Creative Commons "[[Some Right Reserved]]". Per ulteriori informazioni vedere anche la pagina [[Guide%40Debianizzati.Org:General_disclaimer|Disclaimer]].
===Installazione===
Se per qualche motivo il demone inetd non dovesse essere installato è sufficiente installarlo tramite APT. Inoltre consiglio l'installazione dei TCP wrappers:
<pre># apt-get install openbsd-inetd tcpd</pre>


La nostra comunit� altro non � che una libera associazione di [[Speciale:Listusers|persone]] accomunate dai medesimi ideali. La nascita del sito [http://www.debianizzati.org Debianizzati.Org] e di questo wiki � stata la naturale conseguenza del desiderio di conoscersi e di condividere le rispettive conoscenze, in piena sintonia con l'[[etica hacker]].
===Configurazione===
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>


Per avere ulteriore informazione sulla community Debianizzati ed i suoi scopi ti invitiamo a leggere [[Cos'� Debianizzati.Org]].
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:


Buona Navigazione!
<pre># 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</pre>


|}
Il formato tipico di ogni riga è il seguente:
<!-- -------------------- START OF RIGHT-COLUMN ---------------------------------- -->
|class="MainPageBG" style="-moz-border-radius: 0.5em;width: 45%; border:1px solid #cedff2; background-color:#f5faff; vertical-align:top"|


{| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#f5faff"
<pre>service type protocol wait user server cmdline</pre>


! <h2 style="margin: 0; background-color:#cedff2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Risorse sul Wiki</h2>
Un esempio pratico di una riga presente in <code>'''/etc/inetd.conf'''</code>:
|-
<pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l
|style="color:#000"|
[[Image: bookcase.png |right|75px]]
* '''[[Indice Guide]]''': troverete qui la raccolta delle guide e degli articolo tecnici dedicati a Debian e a GNU/Linux.
* '''[[Faq|FAQ]]''': una raccolta di domande frequentemente poste sul nostro [http://www.debianizzati.org/component/option,com_joomlaboard/Itemid,29/func,latest/do,show/sel,24/ forum].
* '''[[:Categoria:Glossario|Glossario]]''': un glossario dei termini informatici di uso pi� comune.
* '''[[Tabella Software]]''': una tabella comparativa tra software libero e software proprietario disponibile per le varie applicazioni.
* '''[[Software_Libero|Software Libero]]''' raccolta di materiale e libri on-line dedicati al Software Libero e alla sua storia.


|-
ftp: nome del servizio
! <h2 style="margin: 0; background:#cedff2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Contribuire ...</h2>
stream: indica il tipo
|-
tcp: indica il protocollo
|style="color:#000"|
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>


* '''[[Wishlist]]''': segnala in questa pagina le guide che vorresti venissero scritte sul wiki.
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.
* '''[[Aiuto:Contents|Come scrivere una guida]]''': delle ''linee guida'' da seguire nella stesura di una articolo o di una guida per aiutarci a mantenere un elevato standard qualitativo.
* '''[[Aiuto:Editing|Aiuto sulla formattazione]]''': le principali regole di formattazione del testo nel wiki.
* '''[http://www.debianizzati.org/content/view/344/2/ Contribuire allo sviluppo di Debianizzati.Org]'''


* '''[[Contribuire a Debian]]''': alcuni suggerimenti sui vari modi per contribuire direttamente a Debian.
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>


|-
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.


<!-- -------------------- START OF FOOTER BOX ------------------------------ -->
In pratica da una configurazione:
{| style="border-spacing:8px;margin:-8px -8px"
|class="MainPageBG" style="-moz-border-radius: 0.5em;width: 100%; border:1px solid #ddcef2; background-color:#faf5ff; vertical-align:top; color:#000"|
{| cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#faf5ff; color:#000"
! <h2 style="margin: 0; background-color:#ddcef2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #afa3bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Altre Risorse di Debianizzati.Org</h2>
|-
|style="color:#000"|
[[Image: users.png |right|75px]]
* '''[[Chat]]''': gli utenti della community Debianizzati si incontrano regolarmente su un [[Chat|canale IRC]] dove possono conoscersi meglio e parlare di [http://www.debian.org Debian] e di [[Cos'�_il_Software_libero|Software Libero]].


|-
<pre>client -----> inetd -----> servizio</pre>
|}
 
|}
Si passa ad una configurazione:
__NOEDITSECTION__
 
<pre>client -----> inetd -----> TCPD -----> servizio</pre>
 
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:
<code>/etc/hosts.allow</code>
 
Questo file permette di specificare come limitare l'accesso a specifici servizi:
<code>/etc/hosts.deny</code>
 
===Comandi utili===
Per avviare, riavviare, fermare il servizio inetd:
<pre># service openbsd-inetd start/stop/restart</pre>
 
===Configurazioni utili===
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>
 
Consente l'accesso a tutti i client e controlla che ip - nome.host corrispondano:
<pre>File da applicare: /etc/hosts.allow
ALL: LOCAL 192.168.1.0/255.255.255.0</pre>
 
Permette l'accesso SSH all'host prova.it corrispondente all'IP 10.0.0.1
<pre>File da applicare: /etc/hosts.allow
sshd: 10.0.0.1 prova.it</pre>
 
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>File da applicare: /etc/hosts.allow
in.telnetd : ALL@ALL : spawn ( /bin/mail -s "Connessione telnet da: %a %u" admin_mail ) & </pre>
 
==Da inetd a Xinetd==
===Differenze===
A differenza del precedessore, xinetd (e'''x'''tended 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:
<pre>/etc/xinetd.conf
File di configurazione del demone
 
/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.