Provided by: manpages-it_2.80-3_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 inetd è apparso nella 4.3BSD.  TCPMUX è basato su codice e
     documentazione di Mark Lottor.