Old:Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server TLS e SSL: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(7 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Sommario|titolo=Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server|contenuto=
{{Old:Template:Samba e OpenLDAP su Ubuntu server}}
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Intro|Introduzione]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Configurazioni Preliminari|Configurazione DHCP e DNS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server LDAP Server|Installazione e Configurazione LDAP Server]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server TLS e SSL|Configurazione cittografia TLS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Samba PDC|Installazione e Configurazione Samba PDC]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Smbldap-tools|Installazione e Configurazione SMBLDAP-TOOLS]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Popolamento ldap|Popolamento database LDAP]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Aggiungere gli utenti di dominio|Aggiungere gli utenti di dominio]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Testare la rete|Testare la rete]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Implementazioni|Implementazioni]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Interfaccia grafica phpldapadmin|Installazione e configurazione PHPLDAPADMIN]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Comandi Utili|Comandi Utili e altro]]
#[[Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server Approfondimenti|Approfondimenti]]
}}
<br/>
<br/>
<br/>
== TLS e SSL ==
== TLS e SSL ==
=== Introduzione ===
=== Introduzione ===
Transport Layer Security (TLS) e il suo predecessore Secure Sockets Layer (SSL) sono dei protocolli crittografici che permettono una comunicazione sicura e una integrità dei dati su reti TCP/IP come, ad esempio, internet. TLS e SSL cifrano la comunicazione dalla sorgente alla destinazione (end-to-end) sul livello di trasporto.
Transport Layer Security (TLS) e il suo predecessore Secure Sockets Layer (SSL) sono dei protocolli crittografici che permettono una comunicazione sicura e una integrità dei dati su reti TCP/IP come, ad esempio, internet. TLS e SSL cifrano la comunicazione dalla sorgente alla destinazione (end-to-end) sul livello di trasporto.<br/>
Il protocollo TLS consente alle applicazioni client/server di comunicare attraverso una rete in modo tale da prevenire il 'tampering' (manomissione) dei dati, la falsificazione e l'intercettazione.
Il protocollo TLS consente alle applicazioni client/server di comunicare attraverso una rete in modo tale da prevenire il 'tampering' (manomissione) dei dati, la falsificazione e l'intercettazione.<br/>
Nell'utilizzo tipico di un browser da parte di utente finale, l'autenticazione TLS è unilaterale: solo il server è autenticato (il client conosce l'identità del server), ma non vice-versa (il client rimane anonimo e non autenticato). L'autenticazione del server è molto utile per il software di navigazione e per l'utente. Il browser valida il certificato del server controllando la firma digitale dei certificati del server controllando che questa sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Dopo questa autenticazione il browser indica una connessione sicura mostrando solitamente un lucchetto in un'icona in basso a destra. Questa autenticazione, però, non è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto. Per esserne sicuri è necessario analizzare il contenuto del certificato rilasciato e controllarne la catena di certificazione. I siti che intendono ingannare l'utente non possono utilizzare un certificato del sito che vogliono impersonare perché non hanno la possibilità di cifrare in modo valido il certificato, che include l'indirizzo, in modo tale che risulti valido alla destinazione. Solo le CA possono generare certificati validi con un'URL  incorporata in modo che il confronto fra l'URL apparente e quella contenuta nel certificato possa fornire un metodo certo per l'identificazione del sito. Molto spesso questo meccanismo non è noto agli utenti di internet ed è causa di varie frodi dovute, però, ad un incorretto utilizzo del browser non ad una debolezza del protocollo TLS.
Nell'utilizzo tipico di un browser da parte di utente finale, l'autenticazione TLS è unilaterale: solo il server è autenticato (il client conosce l'identità del server), ma non vice-versa (il client rimane anonimo e non autenticato). L'autenticazione del server è molto utile per il software di navigazione e per l'utente. Il browser valida il certificato del server controllando la firma digitale dei certificati del server controllando che questa sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Dopo questa autenticazione il browser indica una connessione sicura mostrando solitamente un lucchetto in un'icona in basso a destra. Questa autenticazione, però, non è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto. Per esserne sicuri è necessario analizzare il contenuto del certificato rilasciato e controllarne la catena di certificazione. I siti che intendono ingannare l'utente non possono utilizzare un certificato del sito che vogliono impersonare perché non hanno la possibilità di cifrare in modo valido il certificato, che include l'indirizzo, in modo tale che risulti valido alla destinazione. Solo le CA possono generare certificati validi con un'URL  incorporata in modo che il confronto fra l'URL apparente e quella contenuta nel certificato possa fornire un metodo certo per l'identificazione del sito.<br/>
Ora vedremo come configuare ldap e samba affinchè usino l'autenticazione TLS unilaterale.
Molto spesso questo meccanismo non è noto agli utenti di internet ed è causa di varie frodi dovute, però, ad un incorretto utilizzo del browser non ad una debolezza del protocollo TLS.<br/>
Ora vedremo come configuare ldap e samba affinché usino l'autenticazione TLS unilaterale.
=== Configurazione ===
=== Configurazione ===
Per prima cosa procediamo all'installazione di gnutls-bin:
Per prima cosa procediamo all'installazione di <code>gnutls-bin</code>:
<pre>
<pre>
# apt-get install gnutls-bin
# apt-get install gnutls-bin
</pre>
</pre>
==== Creazione Certificato ====
==== Creazione Certificato ====
Successivamente bisognerà ottenere un certificato usando l'utility certtoll:
Successivamente bisognerà ottenere un certificato usando l'utility <code>certtoll</code>:


* Creiamo una chiave privata per Certificate Authority (CA):
* Creiamo una chiave privata per Certificate Authority (CA):
Riga 35: Riga 19:
# sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
# sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
</pre>
</pre>
* Creare il file /etc/ssl/ca.info, per autofirmare il CA certificate, con il seguente contenuto:
* Creare il file <code>/etc/ssl/ca.info</code>, per autofirmare il CA certificate, con il seguente contenuto:
<pre>
<pre>
cn = server.dominio.local
cn = server.dominio.local
Riga 46: Riga 30:
--outfile /etc/ssl/certs/cacert.pem
--outfile /etc/ssl/certs/cacert.pem
</pre>
</pre>
* Generare una chiave private per il server:
* Generare una chiave privata per il server:
<pre>
<pre>
# sh -c "certtool --generate-privkey > /etc/ssl/private/server_slapd_key.pem"
# sh -c "certtool --generate-privkey > /etc/ssl/private/server_slapd_key.pem"
</pre>
</pre>
* Per firmare il certificato del server con il CA certificate, creare il file /etc/ssl/server.info con il contenuto:
* Per firmare il certificato del server con il CA certificate, creare il file <code>/etc/ssl/server.info</code> con il contenuto:
<pre>
<pre>
organization = Server Dominio
organization = Server Dominio
Riga 65: Riga 49:
</pre>
</pre>
==== Modifiche di LDAP ====
==== Modifiche di LDAP ====
Ora dobbiamo modificare il file cn=config.ldif di slapd.d affinchè usi il certificato:
Ora dobbiamo modificare il file <code>cn=config.ldif</code> di <code>slapd.d</code> affinché usi il certificato.<br/>
Creare il file /etc/ldap/tls.ldif:
Creare il file <code>/etc/ldap/tls.ldif</code>:
<pre>
<pre>
dn: cn=config
dn: cn=config
Riga 82: Riga 66:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/tls.ldif
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/tls.ldif
</pre>
</pre>
Aprire il file /etc/default/slapd e togliere il commento dall'opzione SLAPD_SERVICES:
Aprire il file <code>/etc/default/slapd</code> e togliere il commento dall'opzione SLAPD_SERVICES:
<pre>
<pre>
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
Riga 95: Riga 79:
</pre>
</pre>


Modificare /etc/ldap.conf:
Modificare <code>/etc/ldap.conf</code>:
<pre>
<pre>
uri ldpas://127.0.0.1/
uri ldpas://127.0.0.1/
Riga 108: Riga 92:


==== Configurazione Samba ====
==== Configurazione Samba ====
Modificare la seguente voce di smb.conf:
Modificare la seguente voce di <code>smb.conf</code>:
<pre>
<pre>
....
....
Riga 114: Riga 98:
....
....
</pre>
</pre>
In fine, riavviare slapd:
In fine, riavviare <code>slapd</code>:
<pre>
<pre>
# /etc/init.d/slapd restart
# /etc/init.d/slapd restart
</pre>
</pre>

Versione attuale delle 15:18, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Samba e OpenLDAP: creare un controller di dominio con Ubuntu Server

Sommario

  1. Introduzione
  2. Configurazione DHCP e DNS
  3. Installazione e Configurazione LDAP Server
  4. Installazione e Configurazione Autenticazione LDAP
  5. Configurazione cittografia TLS
  6. Installazione e Configurazione Samba PDC
  7. Installazione e Configurazione SMBLDAP-TOOLS
  8. Popolamento database LDAP
  9. Configurazione Quote Utenti
  10. Aggiungere gli utenti di dominio
  11. Testare la rete
  12. Installazione e configurazione PHPLDAPADMIN
  13. Configurazione Client Linux
  14. Comandi Utili e altro
  15. Approfondimenti

TLS e SSL

Introduzione

Transport Layer Security (TLS) e il suo predecessore Secure Sockets Layer (SSL) sono dei protocolli crittografici che permettono una comunicazione sicura e una integrità dei dati su reti TCP/IP come, ad esempio, internet. TLS e SSL cifrano la comunicazione dalla sorgente alla destinazione (end-to-end) sul livello di trasporto.
Il protocollo TLS consente alle applicazioni client/server di comunicare attraverso una rete in modo tale da prevenire il 'tampering' (manomissione) dei dati, la falsificazione e l'intercettazione.
Nell'utilizzo tipico di un browser da parte di utente finale, l'autenticazione TLS è unilaterale: solo il server è autenticato (il client conosce l'identità del server), ma non vice-versa (il client rimane anonimo e non autenticato). L'autenticazione del server è molto utile per il software di navigazione e per l'utente. Il browser valida il certificato del server controllando la firma digitale dei certificati del server controllando che questa sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Dopo questa autenticazione il browser indica una connessione sicura mostrando solitamente un lucchetto in un'icona in basso a destra. Questa autenticazione, però, non è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto. Per esserne sicuri è necessario analizzare il contenuto del certificato rilasciato e controllarne la catena di certificazione. I siti che intendono ingannare l'utente non possono utilizzare un certificato del sito che vogliono impersonare perché non hanno la possibilità di cifrare in modo valido il certificato, che include l'indirizzo, in modo tale che risulti valido alla destinazione. Solo le CA possono generare certificati validi con un'URL incorporata in modo che il confronto fra l'URL apparente e quella contenuta nel certificato possa fornire un metodo certo per l'identificazione del sito.
Molto spesso questo meccanismo non è noto agli utenti di internet ed è causa di varie frodi dovute, però, ad un incorretto utilizzo del browser non ad una debolezza del protocollo TLS.
Ora vedremo come configuare ldap e samba affinché usino l'autenticazione TLS unilaterale.

Configurazione

Per prima cosa procediamo all'installazione di gnutls-bin:

# apt-get install gnutls-bin

Creazione Certificato

Successivamente bisognerà ottenere un certificato usando l'utility certtoll:

  • Creiamo una chiave privata per Certificate Authority (CA):
# sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
  • Creare il file /etc/ssl/ca.info, per autofirmare il CA certificate, con il seguente contenuto:
cn = server.dominio.local
ca
cert_signing_key
  • Ora creare il CA certificate autofirmato:
# certtool --generate-self-signed --load-privkey /etc/ssl/private/cakey.pem --template  /etc/ssl/ca.info 
--outfile /etc/ssl/certs/cacert.pem
  • Generare una chiave privata per il server:
# sh -c "certtool --generate-privkey > /etc/ssl/private/server_slapd_key.pem"
  • Per firmare il certificato del server con il CA certificate, creare il file /etc/ssl/server.info con il contenuto:
organization = Server Dominio
cn = server.dominio.local
tls_www_server
encryption_key
signing_key
  • Ora creare il certificato per il server:
# certtool --generate-certificate --load-privkey /etc/ssl/private/server_slapd_key.pem  --load-ca-certificate 
/etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem  --template /etc/ssl/server.info 
--outfile /etc/ssl/certs/server_slapd_cert.pem

Modifiche di LDAP

Ora dobbiamo modificare il file cn=config.ldif di slapd.d affinché usi il certificato.
Creare il file /etc/ldap/tls.ldif:

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/server_slapd_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/server_slapd_key.pem

Inseriamo le informazioni con il seguente comando:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/tls.ldif

Aprire il file /etc/default/slapd e togliere il commento dall'opzione SLAPD_SERVICES:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

Garantire accesso al certificato all'utente openldap:

# adduser openldap ssl-cert
# chgrp ssl-cert /etc/ssl/private
# chgrp ssl-cert /etc/ssl/private/server_slapd_key.pem
# chmod 750 /etc/ssl/private/
# chmod 640 /etc/ssl/private/server_slapd_key.pem

Modificare /etc/ldap.conf:

uri ldpas://127.0.0.1/
ssl start_tls
ssl on
tls_checkpeer yes
tls_cacertfile /etc/ssl/certs/cacert.pem
tls_cacertdir /etc/ssl/certs
tls_cert /etc/ssl/certs/server_slapd_cert.pem
tls_key /etc/ssl/private/server_slapd_key.pem

Configurazione Samba

Modificare la seguente voce di smb.conf:

....
ldap ssl = start tls
....

In fine, riavviare slapd:

# /etc/init.d/slapd restart