Linux Kernel in a Nutshell: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (→‎Personalizzazioni principali: - aggiornamento % cap. 8 a 36%)
m (spaziatura)
(19 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.
{{Warningbox|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. &Egrave; 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]]

Versione delle 12:34, 14 mag 2016

Info.png Copyright Notice
This is a free translation of the book Linux Kernel in a Nutshell by Greg Kroah-Hartman. The original book and this translation are available under the terms of Creative Commons Attribution-ShareAlike 2.5. To support the original author you can purchase the book here or elsewhere.

The translation work is an indipendent project not affiliated with Greg Kroah-Hartman or his editor.


Questa è una traduzione del libro Linux Kernel in a Nutshell di Greg Kroah-Hartman, pubblicato da O'Reilly. Il libro è disponibile nei termini della licenza 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.


Warning.png ATTENZIONE
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.


Prefazione


Parte I.

Compilare il kernel

Questa parte del libro mostra come scaricare, compilare e installare il kernel. È in gran parte una guida passo passo.


Parte II.

Personalizzazioni principali

Questa parte spiega le personalizzazioni più comuni effettuate dagli utenti di Linux, ed utili combinazioni di opzioni da personalizzare.


Parte III.

Guide di riferimento per il kernel

Questa sezione fornisce informazioni di riferimento su parametri per il Kernel di tutti i tipi.

  • Capitolo 9, Guida di Riferimento dei Parametri di Boot del Kernel: parte1 e parte2
  • Capitolo 11, Guida di Riferimento delle Opzioni di Configurazione del Kernel: parte1 e parte2


Parte IV.

Informazioni aggiuntive

Questa sezione include un'Appendice su programmi utili, e riferimenti per ulteriori approfondimenti.




Guida scritta da: Tindal Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized