Inetd e i servizi di rete: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
da adottare
m (→‎Installazione: dovrebbe/dovesse)
m (da adottare)
 
(11 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
{{Guida da adottare}}
==Il superdemone inetd==
==Il superdemone inetd==


===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 wrappers 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 12: Riga 13:
===Installazione===
===Installazione===
Se per qualche motivo il demone inetd non dovesse essere installato è sufficiente installarlo tramite APT. Inoltre consiglio l'installazione dei TCP wrappers:
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 netkit-inetd tcpd</pre>
<pre># apt-get install openbsd-inetd tcpd</pre>


===Configurazine===
===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 39: Riga 40:
<pre>service type protocol wait user server cmdline</pre>
<pre>service type protocol wait user server cmdline</pre>


 
Un esempio pratico di una riga presente in <code>'''/etc/inetd.conf'''</code>:
Un esempio pratico di una riga presente in '''/etc/inetd.conf''':
<pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l
<pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l


Riga 47: Riga 47:
tcp: indica il protocollo
tcp: indica il protocollo
nowait: indica se deve attendere
nowait: indica se deve attendere
user: indica l’utente che ha il privilegio di accesso
user: indica l'utente che ha il privilegio di accesso
server: indica dove si trova il programma
server: indica dove si trova il programma
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.
 
<pre>/etc/services
File che assegna un nome di servizio alla relativa porta.
Viene usato anche da altri programmi come file di riferimento.</pre>


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 seguence guessing. La configurazione dei tcp wrappers si fa essenzialmente in due file.
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:
<pre>/etc/hosts.allow</pre>
<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:
<pre>/etc/hosts.deny</pre>
<code>/etc/hosts.deny</code>


===Comandi utili===
===Comandi utili===
Per avviare, riavviare, fermare il servizio inetd:
Per avviare, riavviare, fermare il servizio inetd:
<pre>$: /etc/rc.d/init.d/inetd start/stop/restart</pre>
<pre># service openbsd-inetd start/stop/restart</pre>


===Configurazioni utili===
===Configurazioni utili===
Riga 98: Riga 94:
sshd: 10.0.0.1 prova.it</pre>
sshd: 10.0.0.1 prova.it</pre>


Manda una mail 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.
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
<pre>File da applicare: /etc/hosts.allow
in.telnetd : ALL@ALL : spawn ( /bin/mail -s "Connessione telnet da: %a %u" admin_mail ) & </pre>
in.telnetd : ALL@ALL : spawn ( /bin/mail -s "Connessione telnet da: %a %u" admin_mail ) & </pre>
Riga 109: Riga 105:
:*Offre un sistema di logging indipendente da syslog;
:*Offre un sistema di logging indipendente da syslog;
:*Permette di limitare l'accesso ai servizi in determinate ore della giornata;
:*Permette di limitare l'accesso ai servizi in determinate ore della giornata;
:*Supporta il protocollo Ipv6;
:*Supporta il protocollo IPv6;
:*Utilizza vari meccanismi che mitigano l'impatto di un attacco DOS.
:*Utilizza vari meccanismi che mitigano l'impatto di un attacco DOS.


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 log secondo quanto specificato da <code>syslog_facility</code>;
:* '''-filelog logfile'''' indica di redirigere il log degli eventi di xinetd nel file 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 corrsipondenza 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]]
[[Categoria:Monitoraggio]]
[[Categoria:Server]][[Categoria:Networking]]
[[Categoria:Shell]]
3 581

contributi

Menu di navigazione