1 508
contributi
Nessun oggetto della modifica |
|||
Riga 2: | Riga 2: | ||
===Introduzione=== | ===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. | 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. | ||
Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni. | Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni. | ||
Riga 14: | Riga 14: | ||
<pre>$: apt-get install openbsd-inetd tcpd</pre> | <pre>$: apt-get install openbsd-inetd tcpd</pre> | ||
=== | ===Configurazione=== | ||
Per prima cosa è necessario modificare i permessi al file '''/etc/inetd.conf''' in modo che solo root abbia accesso: | 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> | <pre>$: chmod 600 /etc/inetd.conf</pre> | ||
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: | 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: | ||
<pre># These are standard services. | <pre># These are standard services. | ||
Riga 40: | Riga 40: | ||
Un esempio pratico di una riga presente in '''/etc/inetd.conf''': | Un esempio pratico di una riga presente in <code>'''/etc/inetd.conf'''</code>: | ||
<pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l | <pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l | ||
Riga 51: | Riga 51: | ||
cmdline:indica il nome dell’eseguibile e eventuali flag</pre> | cmdline:indica il nome dell’eseguibile e eventuali flag</pre> | ||
Inoltre inetd si appoggia su un altro file di configurazione dei servizi: | 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. | ||
< | |||
Se si vogliono utilizzare i tcpwrapper per limitare l'accesso al servizio la riga sopra diventa: | Se si vogliono utilizzare i tcpwrapper per limitare l'accesso al servizio la riga sopra diventa: | ||
Riga 73: | Riga 69: | ||
<pre>client -----> inetd -----> TCPD -----> servizio</pre> | <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 | 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: | 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: | Questo file permette di specificare come limitare l'accesso a specifici servizi: | ||
< | <code>/etc/hosts.deny</code> | ||
===Comandi utili=== | ===Comandi utili=== | ||
Riga 128: | Riga 124: | ||
Dove i seguenti attributi indicano: | Dove i seguenti attributi indicano: | ||
:* '''service_name''' è l’indicazione di un servizio gestito da xinetd; | :* <code>'''service_name'''</code> è l’indicazione di un servizio gestito da xinetd; | ||
:* '''attribute''' indica un attributo relativo al servizio service_name; | :* <code>'''attribute'''</code> 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). | :* <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=== | ===Esempi di configurazione di Xinetd=== | ||
Di seguito sono riportati alcuni esempi pratici e semplici di un file di configurazione '''/etc/xinetd.conf''': | Di seguito sono riportati alcuni esempi pratici e semplici di un file di configurazione <code>'''/etc/xinetd.conf'''</code>: | ||
<pre>service shell | <pre>service shell | ||
{ | { | ||
Riga 161: | Riga 157: | ||
===Opzioni di Xinetd=== | ===Opzioni di Xinetd=== | ||
Le opzioni che possono essere utilizzate per la modalità di funzionamento di xinetd sono le seguenti: | Le opzioni che possono essere utilizzate per la modalità di funzionamento di xinetd sono le seguenti: | ||
:* '''-d''' abilita la modalità di debug; | :* <code>'''-d'''</code>: abilita la modalità di debug; | ||
:* '''-syslog syslog_facility''' imposta la facility relativa al system log44 secondo quanto specificato da syslog_facility; | :* <code>'''-syslog syslog_facility'''</code>: imposta la facility relativa al system log44 secondo quanto specificato da <code>syslog_facility</code>; | ||
:* '''-filelog logfile''' | :* <code>'''-filelog logfile'''</code>: 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); | :* <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>); | ||
:* '''-pidfile pid_file''' indica di scrivere nel file pid_file il PID del processo lanciato; | :* <code>'''-pidfile pid_file'''</code>: indica di scrivere nel file <code>pid_file</code> il PID del processo lanciato; | ||
:* '''-stayalive''' indica di rimanere in esecuzione anche se nel file di configurazione non è stato specificato nessun servizio; | :* <code>'''-stayalive'''</code>: 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; | :* <code>'''-limit proc_limit'''</code>: imposta il numero massimo di processi che xinetd può lanciare secondo quanto specificato da <code>proc_limit</code>; | ||
:* '''-logprocs limit''' imposta il numero massimo di daemon che possono essere lanciati in esecuzione per ogni utente, secondo quanto specificato da limit; | :* <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>; | ||
:* '''-version''' visualizza la versione di xinetd; | :* <code>'''-version'''</code>: visualizza la versione di xinetd; | ||
:* '''-inetd_compat''' indica di considerare anche il file di configurazione '''/etc/inetd.conf''' subito dopo '''/etc/xinetd.conf'''; | :* <code>'''-inetd_compat'''</code>: indica di considerare anche il file di configurazione <code>'''/etc/inetd.conf'''</code> subito dopo <code>'''/etc/xinetd.conf'''</code>; | ||
:* '''-cc interval''' indica di controllare un controllo periodico del proprio stato ogni interval secondi; | :* <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: | 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); | :*<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); | ||
:* '''SIGQUIT''' termina la sua esecuzione; | :* <code>'''SIGQUIT'''</code>: termina la sua esecuzione; | ||
:* '''SIGTERM''' termina l’esecuzione di tutti i daemon prima di terminare anche la sua esecuzione; | :* <code>'''SIGTERM'''</code>: 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'''; | :* <code>'''SIGUSR1'''</code>: scrive il suo stato interno (dump) nel file <code>'''/var/run/xinetd.dump'''</code>; | ||
:* '''SIGIOT''' controlla la consistenza delle sue strutture dati, visualizzando quindi un messaggio relativo. | :* <code>'''SIGIOT'''</code>: controlla la consistenza delle sue strutture dati, visualizzando quindi un messaggio relativo. | ||
Autore: [[Utente:Net deity|Net deity]] | Autore: [[Utente:Net deity|Net deity]] | ||
[[Categoria:Server]][[Categoria:Networking]] | [[Categoria:Server]][[Categoria:Networking]] |
contributi