- Fedora Directory Server -


<-- Home

 NOTA BENE 
Gli esempi citati in questa guida si intendono per FDS 1.1 su Scientific Linux 5.x.
In caso di installazione con diverse versioni alcuni path o nomi dei pacchetti potrebbero differire.
- E’ inoltre vivamente consigliato che IP address, IP Name e Hostname della macchina siano coerenti. -



Contenuti

  1. Preparazione del sistema
  2. Installazione FDS
  3. Setup di FDS
  4. Estensione schema per INFN
  5. Configurazione SSL/TLS per il Directory Server
  6. Configurazione SSL/TLS per l’Administration Server
  7. Configurazione Mapping certificati x509
  8. Configurazione SASL / GSSAPI
  9. Configurazione plugin Kerberos Password back-end
  10. Configurazione Replica Read-Only
  11. Migrazione tramite PADL MigrationTools
  12. Fedora Management Console


Preparazione del sistema

Modificare i parametri kernel in /etc/sysctl.conf inserendo le linee:

net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 64000

Ricaricare sysctl:

sysctl -p

Modificare i limits in /etc/security/limits.conf inserendo la linea:

*        -        nofile        8192

Assicurarsi che nel file /etc/pam.d/login sia presente la riga:

auth       required     pam_securetty.so

Effettuare log-out e log-in in modo da ricaricare i limits.

Creare l’utente fds:

useradd -r -s /bin/false fds

Download e installazione di "J2SE(TM) Runtime Environment 5.0". Reperibile da http://www.sun.com/java/ In particolare: http://www.java.com/en/download/manual.jsp#lin

wget 'http://javadl.sun.com/webapps/download/AutoDL?BundleId=23104' -O jre-6u7-linux-x64-rpm.bin
sh jre-6u7-linux-x64-rpm.bin

Una volta installato jre aggiornare alternatives:

update-alternatives --install /usr/bin/java java /usr/java/latest/bin/java 500
update-alternatives --set java /usr/java/latest/bin/java

Installazione dei pacchetti necessari a FDS

yum install ldapjdk svrcore mozldap perl-Mozilla-LDAP xorg-x11-deprecated-libs httpd libstdc++ \
 cyrus-sasl-gssapi openldap-clients libgcj libicu

Per le macchine 64 bit, eliminare le librerie SASL a 32bit. SOLO PER MACCHINE A 64bit
NOTA: in questa fase potrebbe essere richiesto di eliminare come dipendenza molti pacchetti, si consiglia di accettare ed eliminarli.
Sono solo delle copie con librerie a 32bit di software che rimarrà comunque nella versione a 64bit.

yum remove cyrus-sasl.i386 cyrus-sasl-devel.i386 cyrus-sasl-gssapi.i386 cyrus-sasl-plain.i386 cyrus-sasl-lib.i386


Installazione FDS

Impostare i repository YUM di Fedora DS. Per installazione su macchine a 32bit sostituire "x86_64" con "i386".

rpm --import http://download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os/RPM-GPG-KEY-fedora
rpm --import http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras
rpm --import 'http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xA7B02652'

rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/extras/6/x86_64/adminutil-1.1.5-1.fc6.x86_64.rpm
rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/extras/6/x86_64/jss-4.2.5-1.fc6.x86_64.rpm

cd /etc/yum.repos.d
wget -O - http://directory.fedoraproject.org/sources/idmcommon.repo | sed 's/$releasever/6/g' > idmcommon.repo
wget -O - http://directory.fedoraproject.org/sources/dirsrv.repo | sed 's/$releasever/6/g' > dirsrv.repo

Installare fedora-ds:

yum install fedora-ds


Setup di FDS

Lanciare il setup di FDS

/usr/sbin/setup-ds-admin.pl

Scegliere l’opzione 3 in modo da personalizzare l’installazione:
- Configurare come utente/gruppo "fds";
- Impostare il root suffix nella forma "dc=SEDE, dc=infn, dc=it" come da dominio DNS della sede;
- Scegliere la porta 1500 per l’Administration Server;
- Tutto il resto può essere lasciato al default. ( procedura dettagliata )

Impostare la partenza dei servizi di FDS al boot

chkconfig dirsrv on
chkconfig dirsrv-admin on


Estensione schema per INFN

Fermare FDS:

/etc/init.d/dirsrv stop

Editare il file /etc/dirsrv/slapd-DS-UID/schema/99user.ldif ed inserire in fondo:

objectClasses: ( krbprincipal-oid NAME 'krbPrincipal' SUP top STRUCTURAL MUST
 krbPrincipalName X-ORIGIN 'user defined' )
objectClasses: ( CertObject-oid NAME 'CertObject' SUP top STRUCTURAL MUST Cert
 SubjectDN X-ORIGIN 'user defined' )
attributeTypes: ( CertSubjectDN-oid NAME 'CertSubjectDN'  SYNTAX 1.3.6.1.4.1.1
 466.115.121.1.12 X-ORIGIN 'user defined' )
attributeTypes: ( krbPrincipalName-oid NAME 'krbPrincipalName'  SYNTAX 1.3.6.1
 .4.1.1466.115.121.1.15 X-ORIGIN 'user defined' )

Far ripartire FDS:

/etc/init.d/dirsrv start


Configurazione SSL/TLS per il Directory Server

Per l’esercitazione del tutorial AAI trovate i certificati dei server e della CA a: http://www.lnf.infn.it/~dmaselli/aai/crt/

Convertire il certificato con chiave privata del server in formato pkcs12 in un file temporaneo. Non è necessario impostare un password.

openssl pkcs12 -export -inkey ds_server_key.pem -in ds_server_crt.pem -out /tmp/crt.p12 -nodes -name 'Server-Cert'

Importare il certificato con chiave privata del server nel DB di FDS. E’ necessario impostare una password per il DB e ricordarla. La prima password (più conferma) che viene chiesta è quella del DB di FDS, la seconda è invece quella eventualmente impostata nell’export.

cd /etc/dirsrv/slapd-DS-UID/
pk12util -i /tmp/crt.p12 -d .
rm /tmp/crt.p12

dove DS-UID e’ il nome dell’istanza FDS.

Creare un il file con la password del DB dei certificati:

cd /etc/dirsrv/slapd-DS-UID
cat > pin.txt <<EOF
Internal (Software) Token:PASSWORD
EOF
chown fds:fds pin.txt
chmod 600 pin.txt

Far partire la console

fedora-idm-console

Nel primo tab "Servers and Applications" espandere l’albero di sinistra, cliccare con il tasto destro su "Directory Server" e scegliere "Open"

Andare in Console -> tab Tasks -> Manager Certificates -> tab CA Certs (screenshot)
Tramite il tasto "Install" installare il certificato della CA.

Andare in Console -> tab Configuration -> Encryption (screenshot)
Abilitare le opzioni "Enable SSL for this server" e "Use this Cipher Family: RSA"
Assicurarsi che in Certificate ci sia "Server-Cert", altrimenti uscire e rientrare nella console.
Cliccare su "Save" e confermare i messaggi.

Far ripartire FDS:

/etc/init.d/dirsrv restart

Per configurare il client ldap di default di linux (openldap) inserire la chiave pubblica della CA nella directory /etc/openldap/cacerts/ e creare un link come segue:

cd /etc/openldap/cacerts/
cp /where/is/the/ca/cert .
for pem in `ls *pem` ; do ln -s $pem `openssl x509 -noout -hash -in $pem`.0 ; done

NOTA: Se si vuole impostare o cambiare la password del DB dei certificati di FDS:

cd /etc/dirsrv/slapd-DS-UID
modutil -dbdir . -changepw "NSS Certificate DB"


Configurazione SSL/TLS per l’Administration Server

Per configurare l’Administration Server di Fedora-ds &qgrave; necessario che anche questo conosca i certificati dell’host.
Dato che il nome del nodo è ovviamente lo stesso, possiamo condividere i database del Directory Server.

Creare dei link ai db dei certificati nella directory di configurazione dell’ Administration Server.

cd /etc/dirsrv/admin-serv
ln -sf ../slapd-DS-UID/*.db .
cp -pf ../slapd-DS-UID/pin.txt .
sed -i s/Internal/internal/ pin.txt
sed -i "s@NSSPassPhraseDialog  *builtin@NSSPassPhraseDialog  file://///etc/dirsrv/admin-serv/pin.txt@" nss.conf

Far ripartire l’Administration Server:

/etc/init.d/dirsrv-admin restart

Far partire la console

fedora-idm-console

Nel primo tab "Servers and Applications" espandere l’albero di sinistra, cliccare con il tasto destro su "Administration Server" e scegliere "Open"

Andare in Console -> tab Configuration -> Encryption
Abilitare le opzioni "Enable SSL for this server" e "Use this Cipher Family: RSA"
Assicurarsi che in Certificate ci sia "Server-Cert", altrimenti uscire e rientrare nella console.
Cliccare su "Save" e confermare i messaggi.

Nel tab "Configuration DS" abilitare l’opzione "Secure Connection"

Nel tab "User DS" selezionare l’opzione "Set User Directory"
Inserire HOSTNAME:636
Abilitare l’opzione "Secure Connection"
Impostare il proprio base-suffix
Cliccare Save.

Chiudere la console dell’Administration Server e aprire quella del Directory Server
Andare in tab Configuration -> Encryption
Abilitare l’opzione "Use SSL in Console"

Far ripartire FDS e l’Administration Server:

/etc/init.d/dirsrv restart
/etc/init.d/dirsrv-admin restart

Da questo momento la url inserita nella finestra di login della console dovrà avere protocollo https e NON http.



Configurazione Mapping certificati x509

Per consentire l’autenticazione con certificati x509 è necessario configurare un mapping tra i subject dei certificati e le entry del DS.

Nel file /etc/dirsrv/slapd-DS-UID/certmap.conf troviamo la possibilità di impostare l’attributo del DS in cui FDS troverà il subject x509. Le sole righe non commentate dovranno essere:

certmap default         default
default:CmapLdapAttr    certSubjectDN

Far ripartire FDS:

/etc/init.d/dirsrv restart


Configurazione SASL / GSSAPI

Per configurare l’autenticazione GSSAPI su FDS è necessario un keytab "ldap/fqdn.del.server.fds@REALM.KRB5".
Posizionare il keytab in /etc/dirsrv/krb5.keytab ed assicurarsi che l’utente fds possa accedervi:

chown fds /etc/dirsrv/krb5.keytab

Editare il file /etc/init.d/dirsrv inserendo la definizione del keytab.
Nelle prime linee dello script, dopo la definizione di "fdsRoot" inserire:

export KRB5_KTNAME=/etc/dirsrv/krb5.keytab

Far ripartire FDS.

Nella Management Console definire i SASL Mapping:
- Nel primo tab "Servers and Applications" espandere l’albero di sinistra e cliccare con il tasto destro su "Directory Server"
- Si aprirà la Management Console
- Cliccare sul tab "Configuration"
- Cliccare sul nome del server a sinistra e a destra scegliere il tab "SASL Mapping"
- Cliccare Add.

Ad esempio per configurare in modo che gli utenti con ticket valido "user@LNF.INFN.IT" vengano mappati come "uid=user, ou=People, dc=lnf, dc=infn, dc=it", configurare come segue:

              Name:  krb5-lnf
Regular Expression:  \(.*\)@LNF.INFN.IT
    Search Base DN:  ou=People, dc=lnf, dc=infn, dc=it
     Search Filter:  (uid=\1)

Dove "krb5-lnf" è una semplice descrizione.

E’ possibile che le modifiche dei SASL Mapping non siano effettive finchè non si riavvia FDS.



Configurazione plugin Kerberos Password back-end

Coming soon...



Configurazione Replica Read-Only

Coming soon...



Migrazione tramite PADL MigrationTools

E’ possibile effettuare una migrazione da NIS o PASSWD verso LDAP tramite i tool disponibili a: http://www.padl.com/OSS/MigrationTools.html

Scaricare ed estrarre i MigrationTools:

wget http://www.padl.com/download/MigrationTools.tgz
tar -xzvf MigrationTools.tgz
cd MigrationTools-47/

Modificare le seguenti linee del file migrate_common.ph:

#$DEFAULT_MAIL_DOMAIN = "padl.com";              # COMMENTARE
$DEFAULT_BASE = "dc=SEDE,dc=infn,dc=it";         # INSERIRE IL PROPRIO BASE DN
#$DEFAULT_MAIL_HOST = "mail.padl.com";           # COMMENTARE
$EXTENDED_SCHEMA = 1;                            # IMPOSTARE A 1

Preparare passwd e group in due file.
Ad esempio per NIS:

ypcat passwd > passwd.nis
ypcat group  > group.nis

Per convertire i file in formato LDIF per LDAP:

./migrate_passwd.pl passwd.nis passwd.ldif
./migrate_group.pl  group.nis  group.ldif


Fedora Management Console

La Management console di FDS è lo strumento principale di accesso al directory Server.
Per farla partire:

fedora-idm-console

E’ consigliabile effettuare sempre il login come "admin".

E’ possibile installarla anche localmente al proprio client migliorandone sensibilmente la velocità.
L’unico requisito è avere la JRE Java nel sistema, che sia Windows, Linux o Mac.

Quì trovate la versione 1.1 standalone con script "fedora-idm-console" testati per Windows e Linux: TAR.GZ


Autore: Dael Maselli
Il Buco Nero - sito dei lavoratori precari INFN (Istituto Nazionale di Fisica Nucleare)