cn:ccr:aai:howto:389ds-1.x-install
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cn:ccr:aai:howto:389ds-1.x-install [2015/07/03 12:05] – [Configurazione SSL/TLS per il Directory Server] dmaselli@infn.it | cn:ccr:aai:howto:389ds-1.x-install [2019/03/07 10:27] (current) – enrico@infn.it | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== RHEL5/6: Installazione di 389 Directory Server 1.x====== | ||
| + | |||
| + | ** NOTA BENE ** | ||
| + | Gli esempi citati in questa guida si intendono per 389 Directory Server 1.x su Scientific Linux 5 o 6 | ||
| + | |||
| + | 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. // | ||
| + | |||
| + | |||
| + | ===== Preparazione del sistema ===== | ||
| + | |||
| + | |||
| + | Modificare i parametri kernel in / | ||
| + | |||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | |||
| + | Ricaricare sysctl: | ||
| + | |||
| + | sysctl -p | ||
| + | |||
| + | Modificare i limits in / | ||
| + | |||
| + | echo "* soft nofile 32768" >> / | ||
| + | echo "* hard nofile 63536" >> / | ||
| + | |||
| + | echo "* soft nproc 4096" >> / | ||
| + | echo "* hard nproc 16384" >> / | ||
| + | |||
| + | Effettuare log-out e log-in in modo da ricaricare i limits. | ||
| + | |||
| + | **Solo per macchine 64bit**, eliminare le librerie SASL a 32bit. // 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 del client LDAP standard di Linux: | ||
| + | yum install openldap-clients | ||
| + | |||
| + | |||
| + | ===== Installazione 389-ds ===== | ||
| + | |||
| + | |||
| + | Impostare i repository YUM EPEL ([[https:// | ||
| + | |||
| + | yum install yum-conf-epel | ||
| + | |||
| + | Installare 389-ds: | ||
| + | |||
| + | yum install 389-ds | ||
| + | | ||
| + | yum install java-1.7.0-openjdk.x86_64 | ||
| + | |||
| + | ===== Setup di 389-ds ===== | ||
| + | |||
| + | Creare l’utente ds: | ||
| + | |||
| + | useradd -r -s /bin/false ds | ||
| + | |||
| + | |||
| + | Lanciare il setup di 389-ds | ||
| + | |||
| + | / | ||
| + | |||
| + | Scegliere l’opzione 3 in modo da personalizzare l’installazione: | ||
| + | * Configurare come utente/ | ||
| + | * Controllare il root suffix; | ||
| + | * Tutto il resto può essere lasciato al default. | ||
| + | |||
| + | ** Attenzione **: In questa fase verra' chiesto il nome dell' | ||
| + | |||
| + | < | ||
| + | echo ' | ||
| + | source ~/ | ||
| + | </ | ||
| + | |||
| + | Impostare la partenza dei servizi di 389-ds al boot | ||
| + | |||
| + | chkconfig dirsrv on | ||
| + | chkconfig dirsrv-admin on | ||
| + | |||
| + | Fermare 389ds | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | Per migliorare le performance di 389ds incrementare il massimo numero di file descriptor a disposizione del server modificando il file ''/ | ||
| + | |||
| + | < | ||
| + | sed -i ' | ||
| + | sed -i 's/^#* *ulimit -n.*$/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | Eliminare il limite di entry nelle ricerche | ||
| + | |||
| + | < | ||
| + | sed -i ' | ||
| + | sed -i ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Far ripartire 389ds | ||
| + | / | ||
| + | |||
| + | Controllare che il limite "Max open files" sia effettivo: | ||
| + | cat / | ||
| + | |||
| + | |||
| + | |||
| + | ===== 389 Directory Server Console ===== | ||
| + | |||
| + | Da questo momento e' possibile lanciare la console di gestione del Directory Server, attraverso la quale e' possibile fare ogni tipo di configurazione e gestire i dati della Directory. | ||
| + | |||
| + | Per eseguire la console: | ||
| + | |||
| + | 389-console -x nologo -a http:// | ||
| + | |||
| + | E possibile connettersi all' | ||
| + | |||
| + | L' | ||
| + | |||
| + | |||
| + | ===== Pulizia DIT ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | * Nella console nel primo tab " | ||
| + | * Scegliere il tab " | ||
| + | |||
| + | * Sotto " | ||
| + | |||
| + | |||
| + | |||
| + | ===== Schema per supporto autofs ===== | ||
| + | |||
| + | Fermare 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | Attivare lo schema rfc2307bis | ||
| + | |||
| + | cd / | ||
| + | cp / | ||
| + | chown ds:ds 10rfc2307bis.ldif | ||
| + | chmod 440 10rfc2307bis.ldif | ||
| + | echo > 10rfc2307.ldif | ||
| + | echo > 60autofs.ldif | ||
| + | |||
| + | Far ripartire 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | ===== Estensione schema per INFN-AAI e federazioni ===== | ||
| + | |||
| + | Fermare 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | Scaricare gli schema personalizzati INFN-AAI: | ||
| + | |||
| + | cd / | ||
| + | wget -O 97schac.ldif http:// | ||
| + | wget -O 98infn.ldif http:// | ||
| + | wget -O 61edumember.ldif http:// | ||
| + | chown ds:ds 98infn.ldif 97schac.ldif 61edumember.ldif | ||
| + | chmod 440 98infn.ldif 97schac.ldif 61edumember.ldif | ||
| + | |||
| + | Far ripartire 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | ===== Configurazione SSL/TLS per il Directory Server ===== | ||
| + | |||
| + | |||
| + | Configurare il client ldap di default di linux (openldap) inserendo la chiave pubblica della CA nella directory / | ||
| + | |||
| + | cacertdir_rehash / | ||
| + | |||
| + | Impostare la directory anche nella configurazione del client ldap: | ||
| + | |||
| + | echo " | ||
| + | |||
| + | 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 / | ||
| + | |||
| + | Importare il certificato con chiave privata del server nel DB di 389-ds. E’ necessario impostare una password per il DB e ricordarla. La prima password (più conferma) che viene chiesta è quella del DB di 389-ds, la seconda è invece quella eventualmente impostata nell’export. | ||
| + | |||
| + | cd / | ||
| + | pk12util -i / | ||
| + | rm / | ||
| + | |||
| + | |||
| + | |||
| + | **NOTA**: Se si vuole impostare o cambiare la password del DB dei certificati di 389-ds: | ||
| + | |||
| + | cd / | ||
| + | modutil -dbdir . -changepw "NSS Certificate DB" | ||
| + | |||
| + | |||
| + | Creare un il file con la password del DB dei certificati: | ||
| + | |||
| + | cd / | ||
| + | vi pin.txt | ||
| + | |||
| + | Inserire: | ||
| + | |||
| + | Internal (Software) Token: | ||
| + | |||
| + | Impostare i permessi: | ||
| + | |||
| + | chown ds:ds pin.txt | ||
| + | chmod 600 pin.txt | ||
| + | |||
| + | Far partire la console | ||
| + | |||
| + | 389-console -x nologo -a http:// | ||
| + | |||
| + | Nel primo tab " | ||
| + | |||
| + | Andare in Console -> tab Tasks -> Manager Certificates -> tab CA Certs | ||
| + | Tramite il tasto " | ||
| + | |||
| + | **NOTA:** E' necessario importare nel DB dei certificati **TUTTI** i certificati delle CA dalle quali ci serviamo. Le istruzioni sono in [[cn: | ||
| + | |||
| + | Per importare nel db in / | ||
| + | |||
| + | cd / | ||
| + | for f in / | ||
| + | | ||
| + | |||
| + | Andare in Console -> tab Configuration -> Encryption | ||
| + | Abilitare le opzioni " | ||
| + | Assicurarsi che in Certificate ci sia " | ||
| + | |||
| + | <del> | ||
| + | **Abilitare l' | ||
| + | Cliccare su " | ||
| + | |||
| + | Chiudere la finestra e **nell' | ||
| + | Andare nel tab Configuration -> Configuration DS | ||
| + | Abilitare l' | ||
| + | |||
| + | |||
| + | Fermare 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | **Modificare il parametro che consente l' | ||
| + | |||
| + | sed -i ' | ||
| + | |||
| + | </ | ||
| + | |||
| + | Far ripartire 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | ===== Configurazione Mapping dei 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 / | ||
| + | |||
| + | certmap default | ||
| + | default: | ||
| + | |||
| + | Far ripartire 389-ds: | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | ===== Configurazione SASL / GSSAPI ===== | ||
| + | |||
| + | Installare il pacchetto che permette l' | ||
| + | yum install cyrus-sasl-gssapi.x86_64 | ||
| + | |||
| + | Per configurare l’autenticazione GSSAPI su 389-ds è necessario creare un K5 keytab per il ticket di servizio " | ||
| + | |||
| + | kadmin: addprinc -randkey ldap/ | ||
| + | kadmin: ktadd -k / | ||
| + | |||
| + | Posizionato il keytab in / | ||
| + | |||
| + | chown ds / | ||
| + | chmod 400 / | ||
| + | |||
| + | Aggiungere al file / | ||
| + | |||
| + | echo " | ||
| + | |||
| + | Nella Management Console definire i SASL Mapping: | ||
| + | * Nel primo tab " | ||
| + | * Si aprirà la Management Console | ||
| + | * Cliccare sul tab " | ||
| + | * Cliccare sul nome del server a sinistra e a destra scegliere il tab "SASL Mapping" | ||
| + | * Selezionare e cancellare (tasto Delete) le regole esistenti. | ||
| + | |||
| + | **Fermare** 389-ds | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | Aggiungere le seguenti righe al file ''/ | ||
| + | |||
| + | < | ||
| + | dn: cn=20-krb5_people_default_realm, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 20-krb5_people_default_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | dn: cn=20-krb5_people_other_realm, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 20-krb5_people_other_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | dn: cn=30-krb5_services_default, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 30-krb5_services_default_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | dn: cn=30-krb5_services_other_realm, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 30-krb5_services_other_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | dn: cn=40-krb5_hosts_default_realm, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 40-krb5_hosts_default_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | dn: cn=40-krb5_hosts_other_realm, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: 40-krb5_hosts_other_realm | ||
| + | nsSaslMapRegexString: | ||
| + | nsSaslMapBaseDNTemplate: | ||
| + | nsSaslMapFilterTemplate: | ||
| + | |||
| + | </ | ||
| + | |||
| + | **Fare attenzione a lasciare una riga vuota alla fine del file** | ||
| + | |||
| + | Far ripartire 389-ds. | ||
| + | |||
| + | / | ||
| + | |||
| + | ===== Configurazione plugin Kerberos Password back-end ===== | ||
| + | |||
| + | |||
| + | Per compilare e configurare il plugin Kerberos5 per 389-ds eseguire le seguenti operazioni: | ||
| + | |||
| + | Installare il compilatore, | ||
| + | |||
| + | yum install gcc krb5-devel 389-ds-base-devel libss-devel git | ||
| + | |||
| + | * Ottenere il codice sorgente | ||
| + | |||
| + | git clone https:// | ||
| + | |||
| + | * Compilare ed installare | ||
| + | |||
| + | cd 389ds-krb5-plugin | ||
| + | make clean | ||
| + | make | ||
| + | make install | ||
| + | |||
| + | * Spegnere 389ds | ||
| + | |||
| + | service dirsrv stop | ||
| + | |||
| + | * Modificare il file /// | ||
| + | |||
| + | < | ||
| + | dn: cn=KRB5 Bind, | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | objectClass: | ||
| + | cn: KRB5 Bind | ||
| + | nsslapd-pluginPath: | ||
| + | nsslapd-pluginInitfunc: | ||
| + | nsslapd-pluginType: | ||
| + | nsslapd-pluginEnabled: | ||
| + | nsslapd-plugin-depends-on-type: | ||
| + | nsslapd-pluginId: | ||
| + | nsslapd-pluginVersion: | ||
| + | nsslapd-pluginVendor: | ||
| + | nsslapd-pluginDescription: | ||
| + | |||
| + | </ | ||
| + | |||
| + | Ricordarsi che **l' | ||
| + | |||
| + | * far ripartire il Directory Service | ||
| + | |||
| + | service dirsrv start | ||
| + | |||
| + | |||
| + | <del> | ||
| + | Affinche' | ||
| + | |||
| + | / | ||
| + | |||
| + | contenente il principal di servizio 389/ | ||
| + | |||
| + | I messaggi di debug vengono loggati in / | ||
| + | </ | ||
| + | |||
| + | ===== INFN-AAI ===== | ||
| + | |||
| + | Pe poter ricevere la replica del ramo nazionale DC=INFN, | ||
| + | * il FQDN del vostro nuovo server LDAP | ||
| + | * la password dell' | ||
| + | |||
| + | Una volta configurate, | ||
| + | |||
| + | **NOTA BENE:** Per modificare la password di CN=" | ||
| + | ===== FAQ ===== | ||
| + | |||
| + | ==== ERRORE " | ||
| + | |||
| + | attrcrypt_unwrap_key: | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ==== " | ||
| + | |||
| + | cd ~ | ||
| + | yum remove " | ||
| + | rm -rf /etc/dirsrv / | ||
