Compare commits

1 Commits

Author SHA1 Message Date
84b5d5bbf8 solution 2022-11-24 14:46:18 +01:00
3 changed files with 77 additions and 21 deletions

View File

@@ -1,10 +1,5 @@
# SSL # SSL
## Référence
📖 Support Ch 7 (p97)
## Démonstration préalable: ## Démonstration préalable:
lancer un wireshark sur le poste client, avec comme filtre _port 389_ 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 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 ## Création du certificat
### Certificat autosigné ### Certificat autosigné
@@ -23,45 +19,74 @@ Suivre la procédure slide 97.
### Certificat letsencrypt ### Certificat letsencrypt
```bash ```bash
sudo systemctl stop httpd systemctl stop httpd
sudo dnf install certbot -y dnf install certbot -y
sudo certbot certonly --standalone -d CHANGEME.formation.opendoor.fr -m formation@opendoor.fr --agree-tos --test-cert certbot certonly --standalone -d CHANGEME.formation.opendoor.fr -m formation@opendoor.fr --agree-tos --test-cert
# répondre N à la question # 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: ⚠️ Attention, pour que le certificat (de test) soit reconnu, il faudra que le client télécharge la clé publique de la CA:
```bash ```bash
curl https://letsencrypt.org/certs/staging/letsencrypt-stg-root-x1.pem -L | sudo tee -a /etc/openldap/certs/ca.pem 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 | sudo tee -a /etc/openldap/ldap.conf 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: Attention également aux permissions. L'utilisateur _ldap_ doit pouvoir lire les différents fichiers:
```bash ```bash
sudo chgrp -R ldap /etc/letsencrypt/{archive,live} chgrp -R ldap chgrp ldap /etc/letsencrypt/{archive,live}
sudo chmod -R g+rX /etc/letsencrypt/{archive,live} chmod -R g+rX /etc/letsencrypt/{archive,live}
``` ```
## Configurer le serveur ## 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 | ```bash
- olcTLSProtocolMin : 3.4 | idem | firewall-cmd --add-service ldaps--permanent
- olcTLSCACertificateFile : /etc/openldap/certs/ca.pem | /etc/letsencrypt/live/CHANGEME.formation.opendoor.fr/fullchain.pem firewall-cmd --add-service ldaps
- 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
## Configurer le client ## 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 ## Test
On doit pouvoir se connecter de manière sécurisé au serveur 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 Wireshark ne doit voir passer que des paquets TLS 1.3 application_data

15
ssl.ldif Normal file
View 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
View 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