MIT krb5-1.4

Introduzione a MIT krb5

Il MIT krb5 è un'implementazione libera di Kerberos 5. Kerberos è un protocollo di autenticazione di rete. Esso centralizza il database di autenticazione e usa applicazioni kerberizzate per funzionare con server o servizi che suportano Kerberos, permettendo login singoli e comunicazione criptata all'interno delle reti o di Internet.

Informazioni sul pacchetto

Dipendenze di MIT krb5

Opzionali

xinetd-2.3.13 (solo server di servizio), Linux-PAM-0.78 (per login basati su xdm) e OpenLDAP-2.2.20 (alternativa per il database delle password krb5kdc)

[Nota]

Nota

Alcuni tipi di servizi di sincronizzazione dell'ora sul proprio sistema (come NTP-4.2.0) sono necessari, poiché Kerberos non autentica se il differenziale orario tra un client kerberizzato e il server KDC è maggiore di 5 minuti.

Installazione di MIT krb5

MIT krb5 è distribuito in un file TAR contenente un pacchetto TAR compresso e un file PGP ASC separato.

Se si è installato GnuPG-1.4.0, si può autenticare il paccetto con il seguente comando:

gpg --verify krb5-1.4.tar.gz.asc

Costruire il MIT krb5 eseguendo i seguenti comandi:

cd src &&
./configure --prefix=/usr --sysconfdir=/etc \
    --localstatedir=/var/lib --enable-dns \
    --enable-static --mandir=/usr/share/man &&
make

Installare il MIT krb5 eseguendo i seguenti comandi come root:

make install &&
mv /bin/login /bin/login.shadow &&
cp /usr/sbin/login.krb5 /bin/login &&
mv /usr/bin/ksu /bin &&
mv /usr/lib/libkrb5.so.3* /lib &&
mv /usr/lib/libkrb4.so.2* /lib &&
mv /usr/lib/libdes425.so.3* /lib &&
mv /usr/lib/libk5crypto.so.3* /lib &&
mv /usr/lib/libcom_err.so.3* /lib &&
ln -sf ../../lib/libkrb5.so.3 /usr/lib/libkrb5.so &&
ln -sf ../../lib/libkrb4.so.2 /usr/lib/libkrb4.so &&
ln -sf ../../lib/libdes425.so.3 /usr/lib/libdes425.so &&
ln -sf ../../lib/libk5crypto.so.3 /usr/lib/libk5crypto.so &&
ln -sf ../../lib/libcom_err.so.3 /usr/lib/libcom_err.so &&
ldconfig

Spiegazioni dei comandi

--enable-dns: questa opzione permette ai domini di essere risolti usando il server DNS.

--enable-static: questa opzione costruisce librerie statiche in aggiunta alle librerie condivise.

mv /bin/login /bin/login.shadow
cp /usr/sbin/login.krb5 /bin/login
mv /usr/bin/ksu /bin

Preserva il comando di login di Shadow, sposta ksu e login nella directory /bin.

mv /usr/lib/libkrb5.so.3* /lib
mv /usr/lib/libkrb4.so.2* /lib
mv /usr/lib/libdes425.so.3* /lib
mv /usr/lib/libk5crypto.so.3* /lib
mv /usr/lib/libcom_err.so.3* /lib
ln -sf ../../lib/libkrb5.so.3 /usr/lib/libkrb5.so
ln -sf ../../lib/libkrb4.so.2 /usr/lib/libkrb4.so
ln -sf ../../lib/libdes425.so.3 /usr/lib/libdes425.so
ln -sf ../../lib/libk5crypto.so.3 /usr/lib/libk5crypto.so
ln -sf ../../lib/libcom_err.so.3 /usr/lib/libcom_err.so

I programmi login e ksu sono linkati verso queste librerie, quindi spostiamo queste librerie in /lib per permettere i login senza montare /usr.

Configurazione di MIT krb5

File di configurazione

/etc/krb5.conf e /var/lib/krb5kdc/kdc.conf

Informazioni di configurazione

Configurazione di Kerberos

Creare il file di configurazione di Kerberos con il seguente comando:

cat > /etc/krb5.conf << "EOF"
# Begin /etc/krb5.conf

[libdefaults]
    default_realm = [LFS.ORG]
    encrypt = true

[realms]
    [LFS.ORG] = {
        kdc = [belgarath.lfs.org]
        admin_server = [belgarath.lfs.org]
    }

[domain_realm]
    .[lfs.org] = [LFS.ORG]

[logging]
    kdc = SYSLOG[:INFO[:AUTH]]
    admin_server = SYSLOG[INFO[:AUTH]]
    default = SYSLOG[[:SYS]]

# End /etc/krb5.conf
EOF

Bisognerà inserire il proprio dominio e il corretto hostname per le occorrenze dei nomi [belgarath] e [lfs.org].

default_realm deve essere il nome del proprio dominio cambiato in ALL CAPS. Ciò non è necessario, ma sia Heimdal che MIT lo raccomandano.

encrypt = true fornisce la cifratura di tutto il traffico tra client e server kerberizzati. Esso non è necessario e può essere omesso. Se lo si omette si può cifrare tutto il traffico dal client al server usando invece un'opzione nel programma client.

I parametri [realms] dicono ai programmi client dove cercare i servizi di autenticazione di KDC.

La sezione [domain_realm] mappa un dominio in un regno.

Creare il database di KDC:

kdb5_util create -r [LFS.ORG] -s 

Il database ora deve essere popolato con almeno una regola (utente). Per ora usare semplicemente il login name o root.

kadmin.local
kadmin:addprinc [loginname]

Il server KDC e ogni macchina che esegua un demone server kerberizzato deve avere una chiave host installata:

kadmin:addprinc -randkey host/[belgarath.lfs.org]

Dopo aver scelto i default quando vengono proposti bisognerà esportare i dati in un file keytab:

kadmin:ktadd host/[belgarath.lfs.org]

Questo dovrebbe aver creato un file in /etc dal nome krb5.keytab (Kerberos 5). Questo file deve avere i permessi 600 (root solo rw). Escludere i file keytab dall'accesso pubblico è cruciale per la sicurezza complessiva dell'installazione di Kerberos

Eventualmente si potrebbero voler aggiungere le regole del demone server al database ed estrarle verso il file keytab. Questo lo si fa nello stesso modo in cui sono state create le regole dell'host. Di seguito c'è un esempio:

kadmin:addprinc -randkey ftp/[belgarath.lfs.org]
kadmin:ktadd ftp/[belgarath.lfs.org]

Uscire dal programma kadmin (usare quit o exit) e tornare al prompt della shell. Avviare manualmente il demone KDCper testare l'installazione:

/usr/sbin/krb5kdc &

Provare ad ottenere un ticket con il seguente comando:

kinit [loginname]

Verrà richiesta la password che è stata creata. Dopo che si è ottenuto il proprio ticket esso può essere mostrato con il seguente comando:

klist

Sullo schermo possono essere visualizzatte informazioni sul ticket.

Per testare la funzionalità del file keytab digitare il seguente comando:

ktutil
ktutil:rkt /etc/krb5.keytab
ktutil:l

Questo dovrebbe fare il dump di un elenco dei principali host, assieme ai metodi di cifratura usati per accedere ad essi.

A questo punto se è andato tutto bene ci si può sentire piuttosto fiduciosi sull'installazione e configurazione del pacchetto.

Installare l'init script /etc/rc.d/init.d/kerberos incluso nel pacchetto blfs-bootscripts-6.0.

make install-kerberos
Uso dei programmi client kerberizzati

Per usare i programmi client kerberizzati (telnet, ftp, rsh, rcp, rlogin), bisogna prima ottenere un ticket di autenticazione. Usare il programma kinit per ottenere il ticket. Dopo che si è ottenuto il ticket si possono usare i programmi kerberizzati per connettersi ad ogni server kerberizzato sulla rete. Non verrà richiesta l'autenticazione fino alla scadenza del proprio ticket (il default è un giorno), a meno che non si specifichi un utente diverso al programma come argomento della linea di comando

I programmi kerberizzati si connetteranno a demoni non kerberizzati, avvisando che l'autenticazione non è cifrata.

Uso dei programmi server kerberizzati

L'uso dei programmi server kerberizzati (telnetd, kpropd, klogind e kshd) richiede due passi di configurazione aggiuntivi. Prima il file /etc/services deve essere aggiornato per includere eklogin e krb5_prop. Secondo, inetd.conf o xinetd.conf deve essere modificato per ciascun server che verrà attivato, normalmente sostituendo il server di Inetutils-1.4.2.

Informazioni aggiuntive

Per ulteriori informazioni consultare La documentazione di krb-1.4 su cui sono basate le precedenti istruzioni.

Contenuti

Programmi installati: compile-et, ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kadmind4, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-send-pr, krb5-config, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver, v5passwd, v5passwdd
Librerie installate: libcom_err.[so,a], libdes425.[so,a], libgssapi.[so,a], libgssrpc.[so,a], libkadm5clnt.[so,a], libkadm5srv.[so,a], libkdb5.[so,a], libkrb5.[so,a], libkrb4.[so,a]
Directory installate: /usr/include/kerberosIV e /var/lib/krb5kdc

Brevi descrizioni

compile_et

converte la tabella che elenca i nomi dei codici errore in un file sorgente C.

ftp

è un client FTP kerberizzato.

ftpd

è un demone FTP kerberizzato.

k5srvutil

è un'utilità dell'host per la manipolazione della keytable.

kadmin

è un'utilità usata per fare modifiche al database di Kerberos.

kadmind

è un server per l'accesso amministrativo a un database Kerberos.

kdb5_util

è l'utilità per il database di KDC.

kdestroy

rimuove il set corrente di ticket.

kinit

è usato per autenticarsi al server Kerberos come principale e acquisire un ticket granting ticket che in seguito può essere usato per ottenere ticket per altri servizi.

klist

legge e visualizza i ticket correnti nella cache credenziale.

klogind

è il server che risponde alle richieste rlogin.

kpasswd

è un programma per cambiare le password Kerberos 5.

kprop

prende un database principale in un formato specificato e lo converte in un flusso di record del database.

kpropd

riceve un database inviato da kprop e lo scrive come database locale.

krb5-config

dà informazioni su come linkare programmi alle librerie.

krb5kdc

è un server Kerberos 5.

kshd

è il server che risponde a richieste rsh.

ksu

è il programma super utente che usa il protocollo Kerberos. Richiede una /etc/shells appropriatamente configurata e ~/.k5login contenente principali autorizzati a diventare super utenti.

ktutil

è un programma per la gestione dei keytab di Kerberos.

kvno

stampa i numeri keyversion dei principali di Kerberos.

login.krb5

è un programma login kerberizzato.

rcp

è un programma client rcp kerberizzato.

rlogin

è un programma client rlogin kerberizzato.

rsh

è un programma client rsh kerberizzato.

telnet

è un programma client telnet kerberizzato.

telnetd

è un server telnet kerberizzato.

libcom_err.[so,a]

implementa la libreria dei codici errore di Kerberos.

libgssapi.[so,a]

contiene le funzioni Generic Security Service Application Programming Interface (GSSAPI) che forniscono servizi di sicurezza a chiamanti in un modo generico, supportabile con un range di meccanismi e tecnologie sottostanti, e che quindi consente la portabilità a livello sorgente di applicazioni verso ambienti differenti.

libkadm5clnt.[so,a]

contiene l'autenticazione amministrativa e le funzioni di verifica password richieste dai programmi lato client di Kerberos 5.

libkadm5srv.[so,a]

contiene le funzioni di autenticazione amministrativa e verifica password richieste dai server di Kerberos 5.

libkdb5.[so,a]

è una libreria di accesso al database di autenticazione/autorizzazione di Kerberos 5.

libkrb5.[so,a]

è una libreria Kerberos 5 per tutti gli usi.

Last updated on