cn:ccr:aai:howto:389ds-1.x-install
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
cn:ccr:aai:howto:389ds-1.x-install [2017/03/23 14:36] – [Configurazione plugin Kerberos Password back-end] 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 / |
cn/ccr/aai/howto/389ds-1.x-install.txt · Last modified: 2019/03/07 10:27 by enrico@infn.it