Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 84b5d5bbf8 |
67
Readme.md
67
Readme.md
@@ -1,10 +1,5 @@
|
||||
# SSL
|
||||
|
||||
## Référence
|
||||
|
||||
📖 Support Ch 7 (p97)
|
||||
|
||||
|
||||
## Démonstration préalable:
|
||||
|
||||
lancer un wireshark sur le poste client, avec comme filtre _port 389_
|
||||
@@ -12,6 +7,7 @@ lancer un wireshark sur le poste client, avec comme filtre _port 389_
|
||||
faire une requète ldap authentifiée. Constater la présence du mot de passe et DN de connexion en clair
|
||||
|
||||
|
||||
|
||||
## Création du certificat
|
||||
|
||||
### Certificat autosigné
|
||||
@@ -23,45 +19,74 @@ Suivre la procédure slide 97.
|
||||
### Certificat letsencrypt
|
||||
|
||||
```bash
|
||||
sudo systemctl stop httpd
|
||||
sudo dnf install certbot -y
|
||||
sudo certbot certonly --standalone -d CHANGEME.formation.opendoor.fr -m formation@opendoor.fr --agree-tos --test-cert
|
||||
systemctl stop httpd
|
||||
dnf install certbot -y
|
||||
certbot certonly --standalone -d CHANGEME.formation.opendoor.fr -m formation@opendoor.fr --agree-tos --test-cert
|
||||
# répondre N à la question
|
||||
sudo systemctl start httpd
|
||||
systemctl start httpd
|
||||
```
|
||||
⚠️ Attention, pour que le certificat (de test) soit reconnu, il faudra que le client télécharge la clé publique de la CA:
|
||||
|
||||
```bash
|
||||
curl https://letsencrypt.org/certs/staging/letsencrypt-stg-root-x1.pem -L | sudo tee -a /etc/openldap/certs/ca.pem
|
||||
echo TLS_CACERT /etc/openldap/certs/ca.pem | sudo tee -a /etc/openldap/ldap.conf
|
||||
curl https://letsencrypt.org/certs/staging/letsencrypt-stg-root-x1.pem -L >> /etc/openldap/certs/ca.pem
|
||||
echo TLS_CACERT /etc/openldap/certs/ca.pem >> /etc/openldap/ldap.conf
|
||||
```
|
||||
|
||||
Attention également aux permissions. L'utilisateur _ldap_ doit pouvoir lire les différents fichiers:
|
||||
|
||||
```bash
|
||||
sudo chgrp -R ldap /etc/letsencrypt/{archive,live}
|
||||
sudo chmod -R g+rX /etc/letsencrypt/{archive,live}
|
||||
chgrp -R ldap chgrp ldap /etc/letsencrypt/{archive,live}
|
||||
chmod -R g+rX /etc/letsencrypt/{archive,live}
|
||||
```
|
||||
|
||||
## Configurer le serveur
|
||||
|
||||
La configuration est globale au serveur (1 certificat par serveur). Elle se fait donc au niveau de la branche _cn=config_
|
||||
```ldif
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCipherSuite
|
||||
olcTLSCipherSuite: ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!EDH:!EXP:!SSLV2:!eNULL
|
||||
-
|
||||
replace: olcTLSProtocolMin
|
||||
olcTLSProtocolMin: 3.4
|
||||
-
|
||||
replace: olcTLSCACertificateFile
|
||||
olcTLSCACertificateFile: /etc/openldap/certs/ca.pem
|
||||
#LETsEncrypt: olcTLSCACertificateFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
-
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: /etc/openldap/certs/cert.pem
|
||||
#LETsEncrypt: olcTLSCertificateFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
-
|
||||
replace: olcTLSCertificateKeyFile
|
||||
olcTLSCertificateKeyFile: /etc/openldap/certs/key.pem
|
||||
#LETsEncrypt: olcTLSCertificateKeyFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/privkey.pem
|
||||
```
|
||||
|
||||
Mettez au point le fichier ldif permettant de remplacer les attributs suivants par la bonne valeur (qui dépend de la méthode utilisée pour créer les certificats)
|
||||
Le cas échéant on ouvrira le parefeu:
|
||||
|
||||
- olcTLSCipherSuite : ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!EDH:!EXP:!SSLV2:!eNULL | idem |
|
||||
- olcTLSProtocolMin : 3.4 | idem |
|
||||
- olcTLSCACertificateFile : /etc/openldap/certs/ca.pem | /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
- olcTLSCertificateFile : /etc/openldap/certs/cert.pem | /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
- olcTLSCertificateKeyFile : /etc/openldap/certs/key.pem | /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/privkey.pem
|
||||
```bash
|
||||
firewall-cmd --add-service ldaps--permanent
|
||||
firewall-cmd --add-service ldaps
|
||||
```
|
||||
|
||||
## Configurer le client
|
||||
|
||||
Dans le fichier /etc/openldap/ldap.conf modifier l'_URI_, _TLS_REQCERT_ et _TLS_CACERT_ afin de forcer l'utilisation de ssl, avec vérification du certificat
|
||||
dans le fichier /etc/openldap/ldap.conf modifier l'_URI_, _TLS_REQCERT_ et _TLS_CACERT_
|
||||
|
||||
```bash
|
||||
URI ldaps://CHANGEME.formation.opendoor.fr
|
||||
TLS_REQCERT demand
|
||||
TLC_CACERT /etc/openldap/certs/ca.pem
|
||||
```
|
||||
|
||||
## Test
|
||||
|
||||
On doit pouvoir se connecter de manière sécurisé au serveur
|
||||
|
||||
```bash
|
||||
lds -Z
|
||||
```
|
||||
|
||||
Wireshark ne doit voir passer que des paquets TLS 1.3 application_data
|
||||
|
||||
|
||||
15
ssl.ldif
Normal file
15
ssl.ldif
Normal file
@@ -0,0 +1,15 @@
|
||||
# Mise en œuvre SSL
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: CHANGEME
|
||||
-
|
||||
replace: olcTLSCertificateKeyfile
|
||||
olcTLSCertificateKeyfile: CHANGEME
|
||||
-
|
||||
replace: olctlsverifyclient
|
||||
olctlsverifyclient: never
|
||||
-
|
||||
replace: olctlscacertificatefile
|
||||
olctlscacertificatefile: CHANGEME
|
||||
|
||||
16
ssl_le.ldif
Normal file
16
ssl_le.ldif
Normal file
@@ -0,0 +1,16 @@
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCipherSuite
|
||||
olcTLSCipherSuite: ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!EDH:!EXP:!SSLV2:!eNULL
|
||||
-
|
||||
replace: olcTLSProtocolMin
|
||||
olcTLSProtocolMin: 3.4
|
||||
-
|
||||
replace: olcTLSCACertificateFile
|
||||
olcTLSCACertificateFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
-
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem
|
||||
-
|
||||
replace: olcTLSCertificateKeyFile
|
||||
olcTLSCertificateKeyFile: /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/privkey.pem
|
||||
Reference in New Issue
Block a user