|
|
(20 versioni intermedie di 7 utenti non mostrate) |
Riga 1: |
Riga 1: |
| ==Il superdemone inetd==
| | {{Box|Copyright Notice|This is a free translation of the book [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] by [http://www.kroah.com/log/ Greg Kroah-Hartman]. The original book and this translation are available under the terms of [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5]. To support the original author you can purchase the book [http://www.oreilly.com/catalog/9780596100797/ here] or [http://www.amazon.com/Linux-Kernel-Nutshell-OReilly/dp/0596100795 elsewhere]. |
|
| |
|
| ===Introduzione===
| | The translation work is an indipendent project not affiliated with Greg Kroah-Hartman or his editor. |
| 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.
| | ---- |
| | Questa è una traduzione del libro [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] di [http://www.kroah.com/log/ Greg Kroah-Hartman], pubblicato da [http://www.oreilly.com/ O'Reilly]. Il libro è disponibile nei termini della licenza [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5], che permette il libero download e la redistribuzione dell'opera, e viene pubblicato qui, tradotto, nei termini della stessa licenza. |
| | }} |
|
| |
|
| Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni.
| | {{Cautionbox|La traduzione è terminata. Chiunque abbia buona volontà e una conoscenza sufficiente della lingua è invitato a contribuire attivamente e a fare una revisione del testo tradotto. Grazie a tutti e buona lettura.}} |
|
| |
|
| Il vantaggio di usarlo � di ottimizzare le risorse del sistema, avviando il demone che gestisce un determinato servizio solo quando ci sono effettive richieste.
| | __TOC__ |
|
| |
|
| Sebbene possa essere usato per gestire quasi tutti i servizi � consigliabile farlo solo per quelli a basso e occasionale traffico.
| | <big><big>Prefazione</big></big> |
|
| |
|
| ===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>
| |
|
| |
|
| ===Configurazine=== | | <big><big><big>Parte I.</big></big></big> |
| Per prima cosa � necessario modificare i permessi al file '''/etc/inetd.conf''' in modo che solo root abbia accesso:
| | ==Compilare il kernel== |
| <pre>$: chmod 600 /etc/inetd.conf</pre>
| | Questa parte del libro mostra come scaricare, compilare e installare il kernel. È in gran parte una guida passo passo. |
|
| |
|
| 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:
| | * <span style="color: green;">'''Capitolo 1''', [[LKN:_Introduzione|Introduzione]] </span> |
|
| |
|
| <pre># These are standard services. | | * <span style="color: green;">'''Capitolo 2''', [[LKN:_Requisiti_per_Compilare_ed_Utilizzare_il_Kernel|Requisiti per Compilare ed Utilizzare il Kernel]] </span> |
| #
| |
| #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:
| | * <span style="color: green;">'''Capitolo 3''', [[LKN:_Procurarsi_i_Sorgenti_del_Kernel|Procurarsi i Sorgenti del Kernel]] </span> |
|
| |
|
| <pre>service type protocol wait user server cmdline</pre> | | * <span style="color: green;">'''Capitolo 4''', [[LKN:_Configurare_e_Compilare|Configurare e Compilare]] </span> |
|
| |
|
| | * <span style="color: green;">'''Capitolo 5''', [[LKN:_Installare_ed_Avviare_con_un_Kernel|Installare ed Avviare con un Kernel]] </span> |
|
| |
|
| Un esempio pratico di una riga presente in '''/etc/inetd.conf''':
| | * <span style="color: green;">'''Capitolo 6''', [[LKN:_Aggiornare_il_Kernel|Aggiornare il Kernel]] </span> |
| <pre>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 lutente che ha il privilegio di accesso
| |
| server: indica dove si trova il programma
| |
| cmdline:indica il nome delleseguibile e eventuali flag</pre>
| |
|
| |
|
| Inoltre inetd si appoggia su un altro file di configurazione dei servizi:
| | <big><big><big>Parte II.</big></big></big> |
| | ==Personalizzazioni principali== |
| | Questa parte spiega le personalizzazioni più comuni effettuate dagli utenti di Linux, ed utili combinazioni di opzioni da personalizzare. |
|
| |
|
| <pre>/etc/services | | * <span style="color: green;">'''Capitolo 7''', [[LKN:_Personalizzare_un_Kernel|Personalizzare un Kernel]] </span> |
| 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:
| | * <span style="color: green;">'''Capitolo 8''', [[LKN:_Ricette_per_Configurare_il_Kernel|Ricette per Configurare il Kernel]] </span> |
| <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=== | | <big><big><big>Parte III.</big></big></big> |
| 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.
| | ==Guide di riferimento per il kernel== |
| | Questa sezione fornisce informazioni di riferimento su parametri per il Kernel di tutti i tipi. |
|
| |
|
| In pratica da una configurazione:
| | * <span style="color: green;">'''Capitolo 9''', Guida di Riferimento dei Parametri di Boot del Kernel: [[LKN:_Guida_di_Riferimento_dei_Parametri_di_Boot_del_Kernel_-_parte1|parte1]] e [[LKN:_Guida_di_Riferimento_dei_Parametri_di_Boot_del_Kernel_-_parte2|parte2]] </span> |
|
| |
|
| <pre>client -----> inetd -----> servizio</pre> | | * <span style="color: green;">'''Capitolo 10''', [[LKN:_Guida_di_Riferimento_dei_Parametri_di_Compilazione_del_Kernel|Guida di Riferimento dei Parametri di Compilazione del Kernel]] </span> |
|
| |
|
| Si passa ad una configurazione:
| | * <span style="color: green;">'''Capitolo 11''', Guida di Riferimento delle Opzioni di Configurazione del Kernel: [[LKN:_Guida_di_Riferimento_delle_Opzioni_di_Configurazione_del_Kernel_-_parte1|parte1]] e [[LKN:_Guida_di_Riferimento_delle_Opzioni_di_Configurazione_del_Kernel_-_parte2|parte2]] </span> |
|
| |
|
| <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.
| | <big><big><big>Parte IV.</big></big></big> |
| | ==Informazioni aggiuntive== |
| | Questa sezione include un'Appendice su programmi utili, e riferimenti per ulteriori approfondimenti. |
|
| |
|
| Questo file permette di specificare quali servizi abilitare e da quali indirizzi IP:
| | * <span style="color: green;">'''Appendice A''', [[LKN:_Programmi_Utili|Programmi Utili]] </span> |
| <pre>/etc/hosts.allow</pre>
| |
|
| |
|
| Questo file permette di specificare come limitare l'accesso a specifici servizi:
| | * <span style="color: green;">'''Appendice B''', [[LKN:_Bibliografia|Bibliografia]] </span> |
| <pre>/etc/hosts.deny</pre>
| |
|
| |
|
| ===Comandi utili=== | | {{Autori |
| Per avviare, riavviare, fermare il servizio inetd:
| | |Autore = [[Utente:Tindal|Tindal]] |
| <pre>$: /etc/rc.d/init.d/inetd start/stop/restart</pre>
| | }} |
|
| |
|
| ===Configurazioni utili===
| | [[Categoria:Documentazione tecnica]] |
| Nega l'accesso a tutti i client e controlla che ip - nome.host corrispondano:
| | [[Categoria:Linux Kernel in a Nutshell]] |
| <pre>File da applicare: /etc/hosts.deny
| | [[Categoria:Libri]] |
| 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 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.
| |
| <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:
| |
| :* '''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''':
| |
| <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:
| |
| :* '''-d''' abilita la modalit� di debug;
| |
| :* '''-syslog syslog_facility''' imposta la facility relativa al system log44 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.
| |
| | |
| Autore: [[Utente:Net deity|Net deity]]
| |
| [[Categoria:Server]][[Categoria:Networking]] | |