13.2. Configurazione di base

Vediamo ora come configurare xinetd.

13.2.1. Controllo d'accesso

Potete garantire o proibire l'accesso ai vostri server usando l'indirizzo IP, che è il metodo più veloce, non richiedendo la risoluzione inversa sul nome dell'host. Ma ci sono anche altri modi:

Naturalmente gli indirizzi IP sono più veloci, ma se volete usare gli altri due metodi, un DNS locale, anche solo caching, aiuta molto a velocizzare le cose.

13.2.2. Sezione defaults

Il metodo più pratico per garantire sicurezza senza rischiare di dimenticare qualcosa, è quello di proibire qualsiasi accesso, e poi aprire man mano solo i servizi di cui si ha bisogno a host fidati.

Attenzione

Ricordate di usare comunque almeno una tra le opzioni "no_access" o "only_from"! Se nessuna delle due è presente, l'accesso è consentito!

La sezione "defaults" serve a specificare valori predefiniti per tutti i servizi, validi se non specificato diversamente nella dichiarazione del servizio; vediamo uno di esempio:

defaults
{
    instances       = 15
    log_type        = FILE /var/log/servicelog
    log_on_success  = HOST PID USERID DURATION EXIT
    log_on_failure  = HOST USERID RECORD
    only_from       =
    per_source      = 5

    disabled = shell login exec comsat
    disabled = telnet ftp
    disabled = name uucp tftp
    disabled = finger systat netstat

    #INTERNAL
    disabled = time daytime chargen servers services xadmin

    #RPC
    disabled = rstatd rquotad rusersd sprayd walld

}

includedir /etc/xinetd.d
       

La nuova direttiva "disabled" permette di disabilitare i servizi anche se sono presenti nel file di configurazione, fornendo un metodo veloce che evita il doverli commentare.

13.2.3. Configurare i servizi

In genere non serve fare nulla, visto che se i valori specificati nella sezione "defaults" vanno bene, basta solo inserire la chiamata del server, lasciandola vuota. Se invece si vuole cambiare o aggiungere qualcosa, allora si deve creare una sezione completa per il server. Alcuni argomenti sono obbligatori, in base al tipo di server:

Tabella 13-2. Argomenti obbligatori

Attributo Commento
socket_type tutti i servizi
user solo per servizi non INTERNAL
server solo per servizi non INTERNAL
wait tutti i servizi
protocol tutti i servizi RPC e tutti quelli non elencati in /etc/services
rpc_version tutti i servizi RPC
rpc_number tutti i servizi RPC
port tutti i servizi NON RPC e non elencati in /etc/services

Alcuni esempi di configurazioni di servizi:

service ntalk
{
    socket_type   = dgram
    wait          = yes
    user          = nobody
    server        = /usr/sbin/in.ntalkd
    only_from     = 192.168.1.0/24
}

service ftp
{
    socket_type  = stream
    wait         = no
    user         = root
    server       = /usr/sbin/in.ftpd
    server_args  = -l
    instances    = 4
    access_times = 7:00-12:30 13:30-21:00
    nice         = 10
    only_from    = 192.168.1.0/24
}

service pop3
{
    disable        = no
    socket_type    = stream
    wait           = no
    user           = root
    server         = /usr/sbin/ipop3d
#   log_on_success += USERID
#   log_on_failure += USERID
}

service nntp
{
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = news
    server          = /usr/sbin/leafnode 
    only_from       = 127.0.0.1 192.168.0.0/16
    disable         = no
}
       

Come si vede, l'accesso è consentito solo alla rete locale, e per l'FTP, sono consentite solo 4 istanze simultanee e solo in determinati orari del giorno. Per quanto riguarda il POP3, attenzione a loggare anche lo USERID, in quando questo di solito richiede l'interrogazione di un server IDENT che deve essere presente su ogni client, altrimenti si avrebbero ritardi anche di 30 secondi per ogni richiesta al server POP3. Inoltre è molto facile ingannare un server IDENT...