Provided by: manpages-it_3.73-2_all bug

NOME

       inetd — internet “super-server”

SINTASSI

       inetd [-d] [-R rate] [configuration_files ...]

DESCRIZIONE

       Il programma inetd deve essere eseguito all'avvio da /etc/rc (vedere rc(8)). Esso quindi resta in ascolto
       di  connessioni  su  certi  socket internet. Quando su uno dei suoi socket viene trovata una connessione,
       esso decide a quale servizio il socket corrisponde, e invoca il programma per servire  la  richiesta.  Il
       programma  server  è invocato con il socket del servizio come suo standard input, output e descrittori di
       errore. Dopo che il programma è finito inetd continua ad ascoltare il socket (tranne in alcuni  casi  che
       verranno  descritti  sotto).  Essenzialmente inetd permette l'esecuzione di un demone per invocarne molti
       altri, riducendo il carico del sistema.

       Opzioni disponibili per inetd:

       -d, ---debug
               Attiva il debugging.

       -R, ---rate rate
               Specifica il numero massimo di volte che un servizio può essere invocato in un minuto; il default
               è 1000.

       ---version
               Mostra la versione.

       ---help
               Mostra l'help.

       Una volta eseguito, inetd legge le sue informazioni di configurazione da un  percorso  di  configurazione
       sulla linea di comando, per default, /etc/inetd.conf and /etc/initd.d. Se il percorso di configuraizone è
       una  directory,  tutti  i file nella directory sono letti come un file di configurazione. Tutti i file di
       configurazione sono letti e uniti. Ci deve essere una voce per ciascun campo nel file  di  confiuraizone,
       con  voci per ciascun campo separate da un tab o uno spazio. Commenti sono segnati da un ``#'' all'inizio
       di una linea. Ci deve essere una voce per ciascun campo. I  campi  del  file  di  configurazione  sono  i
       seguenti:

             nome del servizio
             tipo di socket
             protocollo
             wait/nowait
             utente
             programma server
             argomenti del programma server

       Ci  sono  due tipi di servizi che inetd può avviare: standard e TCPMUX. Un servizio standard ha una porta
       nota assegnata ad esso; esso può essere un servizio che implementa uno standard ufficiale Internet o è un
       servizio specifico BSD. Come descritto in RFC 1078, i servizi TCPMUX sono servizi non  standard  che  non
       hanno  una porta nota assegnata ad essi. Essi sono invocati da inetd quando un programma si connette alla
       porta nota “tcpmux” e specifica il nome del servizio. Questa caratteristica è utile per aggiungere server
       sviluppati localmente.

       Il campo service-name è il nome di un servizio valido nel file /etc/services.  Per  i  servizi  “interni”
       (discussi  sotto),  il  servizio nome deve essere il nome ufficiale del servizio (che è il primo campo in
       /etc/services). Per i servizi TCPMUX, il valore del campo service-name consiste  nella  stringa  “tcpmux”
       seguita  da  uno  slash  e  il  nome  del  servizio  scelto  localmente.  I nomi del servizio elencati in
       /etc/services e il nome “help” sono riservati. Provare a scegliere nomi unici pir i propri servizi TCPMUX
       prefissandoli con il nome della propria organizzazione e aggiungendo come suffisso un numero di versione.

       Il socket-type deve essere uno tra “stream”, “dgram”, “raw”, “rdm”, o “seqpacket”, in funzione  di  quale
       socket sia uno stream, datagramma, raw, messaggio recapitato affidabilmente, o socket sequenced packet. I
       servizi TCPMUX devono usare “stream”.

       Il protocollo deve essere un protocollo valido come dato in /etc/protocols. Esempi possono essere “tcp” o
       “udp”. I servizi TCPMUX devono usare “tcp”.

       Il  campo  wait/nowait specifica se il server che è invocato da inetd si approprierà del socket associato
       con il punto di accesso del servizio, e quindi se inetd deve  aspettare  che  il  server  esca  prima  di
       ascoltare  nuove  richieste di servizio. I server datagrammi devono usare “wait”, poiché essi sono sempre
       invocati con il datagramma socket originale legato all'indirizzo del servizio specificato. Questi  server
       devono  leggere  almento un datagramma dal socket prima di uscire. Se un server datagramma si connette al
       suo peer, lliberando il socket in modo che inetd possa ricevere ulteriori messaggi sul  socket,  si  dice
       che  esso  è  un  server  “multi-threaded”;  esso deve leggere un datagramma dal socket e creare un nuovo
       socket connesso al peer. Può esserci un fork, e il genitore deve quindi uscire per permettere a inetd  di
       verificare  nuove  richieste  di  servizio  per generare nuovi server. I server datagrammi che processano
       tutti i datagrammi in arrivo su un socket ed eventuali time out sono detti “single-threaded”.  Comsat(8),
       (biff(1)) e talkd(8) sono entrambi esempi dell'ultimo tipo di server datagramma. Tftpd(8) è un esempio di
       un server datagramma multi-threaded.

       I server che usano stream socket generalmente sono multi-threaded e usano il campo “nowait”. Le richieste
       di  connessione  per  questi  servizi  sono  accettate  da inetd, e al server è dato solo il nuovo socket
       accettato connesso a un client del servizio. La maggior parte dei servizi stream-based operano in  questo
       modo. I server stream-based che usano “wait” sono avviati con il servizio di ascolto del socket, e devono
       accettare  almeno  una  richiesta  di connessione prima di uscire. Tali server normalmente accetteranno e
       processeranno le richieste di connessione in arrivo fino a un timeout.  I  servizi  TCPMUX  devono  usare
       “nowait”.

       Il  campo  user  deve contenere il nome utente dell'utente il cui server deve funzionare. Questo permette
       che ai server vengano dati permessi minori di root.

       Il campo server-program deve contenere il percorso del programma che viene eseguito da inetd quando viene
       rilevata una richiesta sul suo socket. Se inetd fornisce il  servizio  internamente,  questo  campo  deve
       essere “internal”.

       Gli  argomenti  del programma server devono essere dei normali argomenti, che iniziano con argv[0], che è
       il nome del programma. Il servizio è fornito internamente, la parola “internal” deve prendere il posto di
       questo campo.

       Il programma inetd fornisce internamente numerosi servizi  “elementari”  con  l'uso  delle  sue  routine.
       Questi  servizi  sono  “echo”,  “discard”,  “chargen”  (generatore  caratteri),  “daytime” (ora leggibile
       dell'uomo), e “time” (tempo leggibile dalla macchina, nella forma del numero di secondi a  partire  dalla
       mezzanotte  dell'1 gennaio 1900). Tutti questi servizi sono basati su tcp. Per dettagli su questi servizi
       consultare le RFC appropriate dal Network Information Center.

       Il programma inetd rilegge il suo file di configurazione quando  riceve  un  segnale  hangup,  SIGHUP.  I
       servizi possono essere aggiunti, cancellati o modificati quando il file di configurazione viene riletto.

TCPMUX

       RFC 1078 descrive il protocollo TCPMUX: ``A TCP client connects to a foreign host on TCP port 1. It sends
       the  service  name  followed  by  a  carriage-return  line-feed  <CRLF>.  The  service name is never case
       sensitive. The  server  replies  with  a  single  character  indicating  positive  (+)  or  negative  (-)
       acknowledgment,  immediately followed by an optional message of explanation, terminated with a <CRLF>. If
       the reply was positive, the selected protocol begins; otherwise the connection is closed.'' Il  programma
       è passato alla connessione TCP come file descrittori 0 e 1.

       Se  il  nome  del  servizio  TCPMUX  comincia con un ``+'', inetd restituisce la risposta positiva per il
       programma. Questo permette di invocare programmi che usano  stdin/stdout  senza  mettere  in  essi  alcun
       codice speciale del server.

       Il nome del servizio speciale “help” fa sì che inetd elenchi i servizi TCPMUX in inetd.conf.

ESEMPI

       Qui ci sono numerosi esempi di campi del servizio per vari tipi di servizio:

       ftp           stream  tcp   nowait root  /usr/libexec/ftpd       ftpd -l
       ntalk         dgram   udp   wait   root  /usr/libexec/ntalkd     ntalkd
       tcpmux/+date  stream  tcp   nowait guest /bin/date               date
       tcpmux/phonebook stream tcp nowait guest /usr/local/bin/phonebook phonebook

MESSAGGI DI ERRORE

       Il  server  inetd  fa  il log dei messaggi di errore usando syslog(3). Messaggi di errore importanti e le
       loro spiegazioni sono:

       service/protocol server failing (looping), service terminated.
       Il numero di richieste per il servizio specificato negli ultimi minuti eccede il limite. Il limite esiste
       per impedire a un programma malfunzionante o a un utente malizioso  di  impantanare  il  sistema.  Questo
       messaggio può apparire per numerose ragioni: 1) ci sono molti host che richiedono il servizio in un breve
       lasso  di  tempo, 2) un programma client malfunzionante richiede il servizio troppo frequentemente, 3) un
       utente malizioso sta eseguendo un programma per invocare il servizio in un attacco 'denial of service', o
       4) il programma di servizio invocato ha un errore che  fa  che  i  client  riprovino  rapidamente.  Usare
       l'opzione  [-R]  come  descritto  sopra  per cambiare l'ammontare limite. Quando il limite è raggiunto il
       servizio viene riabilitato automaticamente in 10 minuti.

       service/protocol: No such user 'user', service ignored
       service/protocol: getpwnam: user: No such user
       Non esiste nessun campo per user nel file passwd. Il primo messaggio avviene quando  inetd  (ri)legge  il
       file di configurazione. Il secondo messaggio avviene quando il servizio viene invocato.

       service: can't set uid number
       service: can't set gid number
       L'ID dell'utente o del gruppo per il campo user non è valido.

VEDERE ANCHE

       comsat(8), fingerd(8), ftpd(8), rexecd(8), rlogind(8), rshd(8), telnetd(8), tftpd(8)

HISTORY

       Il comando è apparso nella 4.3BSD. TCPMUX è basato su codice e documentazione di Mark Lottor.

4.4BSD                                            1 giugno 1994                                         INETD(8)