|
|
Riga 1: |
Riga 1: |
| ==Il superdemone inetd== | | __NOTOC__ |
| | <!-- ---------- BEGINNING OF HEADER SECTION -------------------------- --> |
| | {|style="-moz-border-radius: 0.5em; width:100%; margin-top:+.7em; background-color:#fcfcfc; border: 1px solid #ccc" |
| | |style="width:50%;color:#000"| |
| | {| style="width:280px;border:solid 0px;background:none" |
| | |- |
| | | style="width:280px;text-align:center; white-space: nowrap; color:#000" | |
| | <h1 style="font-size: 162%; border: none; margin: 0; padding:.1em; color:#000"> |
| | Bevenuti su [[Guide@Debianizzati.Org:About|Guide@Debianizzati.Org]], |
| | </h1> |
| | <div style="top: +0.2em; font-size: 100%"> |
| | La risorsa libera dedicata a Debian e al Software Libero [[Aiuto:Contents|a cui tutti possono contribuire]]. |
| | </div> |
| | <div id="articlecount" style="width:100%;text-align:center;font-size:85%;"> |
| | Pi� di [[Special:Statistics|{{NUMBEROFARTICLES}}]] Articoli e Guide in Italiano</div> |
| | |- |
| | |} |
| | <!-- ----------Portals Follow----------------------------- --> |
| | |style="width:30%;font-size:95%;color:#000"| |
| | * '''[[Cos'�_Debianizzati.Org|Cos'� Debianizzati.Org]]''' |
| | * [http://www.debianizzati.org/ Portale Debianizzati.Org] |
| | * [http://www.debianizzati.org/component/option,com_joomlaboard/Itemid,29/ Forum] |
| | * [[contratto sociale|Contratto Sociale]] |
| | |} |
| | <!-- -------End Portals----- --> |
|
| |
|
| ===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.
| |
|
| |
|
| Viene chiamato superdemone proprio per questa sua funzione di controllo di altri demoni.
| | <!-- ---------- END OF HEADER SECTION / BEGINNING OF LEFT-COLUMN ------------------ --> |
| | {| style="border-spacing:8px;margin:0px -8px" |
| | |class="MainPageBG" style="-moz-border-radius: 0.5em;width: 55%; border:1px solid #cef2e0; background-color:#f5fffa; vertical-align:top;color:#000"| |
| | {| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#f5fffa" |
| | ! <h2 style="margin: 0; background-color:#cef2e0; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Cos'� Guide@Debianizzati.Org</h2> |
| | |- |
| | |style="color:#000"| |
|
| |
|
| Il vantaggio di usarlo è di ottimizzare le risorse del sistema, avviando il demone che gestisce un determinato servizio solo quando ci sono effettive richieste.
| | [[Image: swirl-75-alpha.png |left]]'''Guide @ Debianizzati.org''' � un progetto che ha lo scopo di raccogliere documentazione italiana su Debian GNU/Linux e su GNU/Linux in generale (nel caso di guide generiche indipendenti dalla distribuzione). Questo progetto � nato in seno alla comunit� [http://www.debianizzati.org Debianizzati] e ne condivide lo spirito ed il [[contratto sociale]]. |
|
| |
|
| Sebbene possa essere usato per gestire quasi tutti i servizi è consigliabile farlo solo per quelli a basso e occasionale traffico.
| | Questo � un [http://it.wikipedia.org/wiki/Pagina_principale wiki], sentiti quindi libero di contribuire anche solo correggendo piccoli errori, estendendo le guide presenti o scrivendone di nuove. Se vuoi contribuire, per favore, leggi le [[Help:Contents|linee guida]] dove troverai le informazioni generali su come editare le pagine. |
|
| |
|
| ===Installazione===
| | Ti preghiamo di non inserire nel wiki contenuti coperti da licenze non libere. In particolare tutte le guide inserite sono da considerarsi rilasciate secondo la licenza Creative Commons "[[Some Right Reserved]]". Per ulteriori informazioni vedere anche la pagina [[Guide%40Debianizzati.Org:General_disclaimer|Disclaimer]]. |
| 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>
| |
|
| |
|
| ===Configurazine===
| | La nostra comunit� altro non � che una libera associazione di [[Speciale:Listusers|persone]] accomunate dai medesimi ideali. La nascita del sito [http://www.debianizzati.org Debianizzati.Org] e di questo wiki � stata la naturale conseguenza del desiderio di conoscersi e di condividere le rispettive conoscenze, in piena sintonia con l'[[etica hacker]]. |
| Per prima cosa è necessario modificare i permessi al file '''/etc/inetd.conf''' in modo che solo root abbia accesso:
| |
| <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:
| | Per avere ulteriore informazione sulla community Debianizzati ed i suoi scopi ti invitiamo a leggere [[Cos'� Debianizzati.Org]]. |
|
| |
|
| <pre># These are standard services.
| | Buona Navigazione! |
| #
| |
| #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:
| | |} |
| | <!-- -------------------- START OF RIGHT-COLUMN ---------------------------------- --> |
| | |class="MainPageBG" style="-moz-border-radius: 0.5em;width: 45%; border:1px solid #cedff2; background-color:#f5faff; vertical-align:top"| |
|
| |
|
| <pre>service type protocol wait user server cmdline</pre>
| | {| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#f5faff" |
|
| |
|
| | ! <h2 style="margin: 0; background-color:#cedff2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Risorse sul Wiki</h2> |
| | |- |
| | |style="color:#000"| |
| | [[Image: bookcase.png |right|75px]] |
| | * '''[[Indice Guide]]''': troverete qui la raccolta delle guide e degli articolo tecnici dedicati a Debian e a GNU/Linux. |
| | * '''[[Faq|FAQ]]''': una raccolta di domande frequentemente poste sul nostro [http://www.debianizzati.org/component/option,com_joomlaboard/Itemid,29/func,latest/do,show/sel,24/ forum]. |
| | * '''[[:Categoria:Glossario|Glossario]]''': un glossario dei termini informatici di uso pi comune. |
| | * '''[[Tabella Software]]''': una tabella comparativa tra software libero e software proprietario disponibile per le varie applicazioni. |
| | * '''[[Software_Libero|Software Libero]]''' raccolta di materiale e libri on-line dedicati al Software Libero e alla sua storia. |
|
| |
|
| Un esempio pratico di una riga presente in '''/etc/inetd.conf''':
| | |- |
| <pre>ftp stream tcp nowait root /usr/sbin/in.ftpd –l | | ! <h2 style="margin: 0; background:#cedff2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Contribuire ...</h2> |
| | |- |
| | |style="color:#000"| |
|
| |
|
| ftp: nome del servizio
| | * '''[[Wishlist]]''': segnala in questa pagina le guide che vorresti venissero scritte sul wiki. |
| stream: indica il tipo
| | * '''[[Aiuto:Contents|Come scrivere una guida]]''': delle ''linee guida'' da seguire nella stesura di una articolo o di una guida per aiutarci a mantenere un elevato standard qualitativo. |
| tcp: indica il protocollo
| | * '''[[Aiuto:Editing|Aiuto sulla formattazione]]''': le principali regole di formattazione del testo nel wiki. |
| nowait: indica se deve attendere
| | * '''[http://www.debianizzati.org/content/view/344/2/ Contribuire allo sviluppo di Debianizzati.Org]''' |
| user: indica l’utente che ha il privilegio di accesso
| |
| server: indica dove si trova il programma
| |
| cmdline:indica il nome dell’eseguibile e eventuali flag</pre>
| |
|
| |
|
| Inoltre inetd si appoggia su un altro file di configurazione dei servizi:
| | * '''[[Contribuire a Debian]]''': alcuni suggerimenti sui vari modi per contribuire direttamente a Debian. |
|
| |
|
| <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:
| |
| <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.
| | <!-- -------------------- START OF FOOTER BOX ------------------------------ --> |
| | {| style="border-spacing:8px;margin:-8px -8px" |
| | |class="MainPageBG" style="-moz-border-radius: 0.5em;width: 100%; border:1px solid #ddcef2; background-color:#faf5ff; vertical-align:top; color:#000"| |
| | {| cellpadding="2" cellspacing="5" style="vertical-align:top; background-color:#faf5ff; color:#000" |
| | ! <h2 style="margin: 0; background-color:#ddcef2; font-family: sans-serif; font-size:120%; font-weight:bold; border:1px solid #afa3bf; text-align:left; color:#000; padding-left:0.4em; padding-top: 0.2em; padding-bottom: 0.2em;">Altre Risorse di Debianizzati.Org</h2> |
| | |- |
| | |style="color:#000"| |
| | [[Image: users.png |right|75px]] |
| | * '''[[Chat]]''': gli utenti della community Debianizzati si incontrano regolarmente su un [[Chat|canale IRC]] dove possono conoscersi meglio e parlare di [http://www.debian.org Debian] e di [[Cos'�_il_Software_libero|Software Libero]]. |
|
| |
|
| ===TCP wrappers===
| | |- |
| 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.
| | |} |
| | | |} |
| In pratica da una configurazione:
| | __NOEDITSECTION__ |
| | |
| <pre>client -----> inetd -----> servizio</pre>
| |
| | |
| Si passa ad una configurazione:
| |
| | |
| <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.
| |
| | |
| Questo file permette di specificare quali servizi abilitare e da quali indirizzi IP:
| |
| <pre>/etc/hosts.allow</pre>
| |
| | |
| Questo file permette di specificare come limitare l'accesso a specifici servizi:
| |
| <pre>/etc/hosts.deny</pre>
| |
| | |
| ===Comandi utili===
| |
| Per avviare, riavviare, fermare il servizio inetd:
| |
| <pre>$: /etc/rc.d/init.d/inetd start/stop/restart</pre>
| |
| | |
| ===Configurazioni utili===
| |
| Nega l'accesso a tutti i client e controlla che ip - nome.host corrispondano:
| |
| <pre>File da applicare: /etc/hosts.deny
| |
| 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 corrsipondenza 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]]
| |