Modifications mineures des zones
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Zone INT
|
||||
Vous trouverez ici toute la documentation relative au fonctionnement et à la configuration applicative des services de la zone INT.
|
||||
|
||||
Cela comprend tous les containers des services sensibles permanents (Nextcloud, Gitea...) et les services internes nécessaires au fonctionnement des services sensibles comme l'annuaire LDAP.
|
||||
Cela comprend tous les container des services sensibles permanents (Nextcloud, Gitea...) et les services internes nécessaires au fonctionnement des services sensibles comme l'annuaire LDAP.
|
||||
|
||||
## Réseau
|
||||
Les services de la zone PROXY devront avoir les interfaces réseau suivantes :
|
||||
|
||||
@@ -6,7 +6,7 @@ Pour la sécurisation de LDAP nous allons utiliser LDAP avec STARTTLS.
|
||||
On commence par installer le serveur ldap.
|
||||
```
|
||||
apt-get update
|
||||
apt-get install slapd ldap-utils
|
||||
apt-get install -y slapd ldap-utils
|
||||
```
|
||||
|
||||
## Configuration de sladp
|
||||
@@ -22,13 +22,8 @@ Organization name? Kr[HACK]en
|
||||
Administrator password: PASSWORD
|
||||
Confirm password: PASSWORD
|
||||
Database backend to use: MDB
|
||||
Do you want the database to be removed when slapd is purged? YES
|
||||
Allow LDAPv2 protocol? No
|
||||
```
|
||||
### /etc/ldap/ldap.conf
|
||||
```
|
||||
BASE dc=krhacken,dc=org
|
||||
URI ldap://IP.LDAP/
|
||||
Do you want the database to be removed when slapd is purged? Yes
|
||||
Move old database? Yes
|
||||
```
|
||||
|
||||
## Centralisation des fichiers de configuration
|
||||
@@ -37,9 +32,16 @@ Nous allons créer un répertoire /root/ldap/conf qui va centraliser tous nos fi
|
||||
mkdir -p /root/ldap/conf/
|
||||
```
|
||||
|
||||
## Stockage du mot de passe administrateur
|
||||
Mettez le mot de passe d'administration de l'annuaire LDAP.
|
||||
```
|
||||
echo -n "mdpadmin" > /root/pwdldap
|
||||
chmod 600 /root/pwdldap
|
||||
```
|
||||
|
||||
## Mise en place SSL
|
||||
```
|
||||
apt-get install gnutls-bin ssl-cert
|
||||
apt-get install -y gnutls-bin ssl-cert
|
||||
mkdir /etc/ssl/templates
|
||||
```
|
||||
### /etc/ssl/templates/ca_server.conf
|
||||
@@ -79,28 +81,46 @@ chmod 640 /etc/ssl/private/ldap_server.key
|
||||
```
|
||||
|
||||
## Ajout des certificat à OpenLDAP
|
||||
### /root/ldap/conf/addcerts.ldif
|
||||
### /root/ldap/conf/addCAcerts.ldif
|
||||
```
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCACertificateFile
|
||||
olcTLSCACertificateFile: /etc/ssl/certs/ca_server.pem
|
||||
```
|
||||
Application des modification et redémarrage de slapd
|
||||
```
|
||||
ldapmodify -H ldapi:// -Y EXTERNAL -f /root/ldap/conf/addCAcerts.ldif
|
||||
service slapd force-reload
|
||||
```
|
||||
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: /etc/ssl/certs/ldap_server.pem
|
||||
|
||||
### /root/ldap/conf/addcerts.ldif
|
||||
```
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
replace: olcTLSCertificateKeyFile
|
||||
olcTLSCertificateKeyFile: /etc/ssl/private/ldap_server.key
|
||||
-
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: /etc/ssl/certs/ldap_server.pem
|
||||
```
|
||||
Application des modification et redémarrage de slapd
|
||||
```
|
||||
ldapmodify -H ldapi:// -Y EXTERNAL -f addcerts.ldif
|
||||
ldapmodify -H ldapi:// -Y EXTERNAL -f /root/ldap/conf/addcerts.ldif
|
||||
service slapd force-reload
|
||||
```
|
||||
|
||||
Le retour de la commande
|
||||
```
|
||||
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config | grep olcTLS
|
||||
```
|
||||
doit contenir les informations ci-dessous, cela confirme l'installation des certificats.
|
||||
```
|
||||
olcTLSCACertificateFile: /etc/ssl/certs/ca_server.pem
|
||||
olcTLSCertificateFile: /etc/ssl/certs/ldap_server.pem
|
||||
olcTLSCertificateKeyFile: /etc/ssl/private/ldap_server.key
|
||||
```
|
||||
|
||||
## Sur le serveur
|
||||
```
|
||||
cp /etc/ssl/certs/ca_server.pem /etc/ldap/ca_certs.pem
|
||||
@@ -108,32 +128,19 @@ cp /etc/ssl/certs/ca_server.pem /etc/ldap/ca_certs.pem
|
||||
Il faut ensuite ajuster la configuration en modifiant la ligne suivante
|
||||
### /etc/ldap/ldap.conf
|
||||
```
|
||||
...
|
||||
BASE dc=krhacken,dc=org
|
||||
URI ldap://alpha.ldap.krhacken.org/
|
||||
TLS_CACERT /etc/ldap/ca_certs.pem
|
||||
...
|
||||
```
|
||||
On redémarre le serveur slapd.
|
||||
```
|
||||
service slapd force-reload
|
||||
```
|
||||
|
||||
### Vérification
|
||||
La commande
|
||||
```
|
||||
ldapsearch -xLLL -H ldap://localhost -D cn=viewer,ou=system,dc=krhacken,dc=org -w passview -b "dc=krhacken,dc=org"
|
||||
```
|
||||
doit retourner une erreur, si on ajout -ZZ à la fin ça doit fonctionner
|
||||
La commande `ldapsearch -xLLL -H ldap://alpha.ldap.krhacken.org -ZZ` doit retourner des informations sur l'arbre.
|
||||
|
||||
|
||||
## Configuration des futurs client LDAP
|
||||
Sur tout les futurs client LDAP il faudra activer la connexion SSL.
|
||||
Il faut commencer par copier le certificat de la CA (ca_server.pem)
|
||||
```
|
||||
cat ca_server.pem | tee -a /etc/ldap/ca_certs.pem
|
||||
```
|
||||
Il faut ensuite modifier la configuration en modifiant la ligne suivante
|
||||
### /etc/ldap/ldap.conf
|
||||
```
|
||||
...
|
||||
TLS_CACERT /etc/ldap/ca_certs.pem
|
||||
...
|
||||
```
|
||||
|
||||
## Droits d'accès pour la configuration
|
||||
### /root/ldap/conf/acces-conf-admin.ldif
|
||||
```
|
||||
@@ -326,6 +333,7 @@ olcPPolicyUseLockout: FALSE
|
||||
Explication,
|
||||
- olcPPolicyDefault : Indique le DN de configuration utilisé
|
||||
- olcPPolicyHashCleartext : Indique si les mots de passe doivent être cryptés.
|
||||
|
||||
On applique les modifications,
|
||||
```
|
||||
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f ppolicy_act.ldif
|
||||
@@ -427,29 +435,30 @@ Explication rapide
|
||||
|
||||
|
||||
## Utilisateurs
|
||||
### /root/ldap/conf/User_PSEUDO.ldif
|
||||
Cas de la création d'un utilisateur adminsys.
|
||||
### /root/ldap/conf/adminsys.ldif
|
||||
```
|
||||
dn: uid=PSEUDO,ou=krhacken,ou=people,dc=krhacken,dc=org
|
||||
dn: uid=adminsys,ou=krhacken,ou=people,dc=krhacken,dc=org
|
||||
objectclass: person
|
||||
objectclass: organizationalPerson
|
||||
objectclass: inetOrgPerson
|
||||
uid: niko
|
||||
sn: niko
|
||||
givenName: Nicolas
|
||||
cn: Nicolas
|
||||
displayName: Nicolas
|
||||
uid: adminsys
|
||||
sn: adminsys
|
||||
givenName: AdminSys
|
||||
cn: AdminSys
|
||||
displayName: AdminSys
|
||||
userPassword: password
|
||||
mail: mail@spam.com
|
||||
mail: adminsys@krhacken.org
|
||||
title: Admin
|
||||
initials: N
|
||||
initials: AS
|
||||
```
|
||||
On ajoute l'utilisateur
|
||||
```
|
||||
ldapadd -cxWD cn=admin,dc=krhacken,dc=org -y /root/pwdldap -f User_PSEUDO.ldif
|
||||
ldapadd -cxWD cn=admin,dc=krhacken,dc=org -y /root/pwdldap -f adminsys.ldif
|
||||
```
|
||||
Commande pour la connexion à un utilisateur
|
||||
Commande pour la connexion à un utilisateur (ici adminsys)
|
||||
```
|
||||
ldapsearch -xLLLH ldap://localhost -D uid=PSEUDO,ou=krhacken,ou=people,dc=krhacken,dc=org -W -b "dc=krhacken,dc=org" "uid=PSEUDO"
|
||||
ldapsearch -xLLLH ldap://localhost -D uid=adminsys,ou=krhacken,ou=people,dc=krhacken,dc=org -W -b "dc=krhacken,dc=org" "uid=adminsys"
|
||||
```
|
||||
|
||||
## Groupes
|
||||
@@ -461,9 +470,9 @@ Pour faire simple, l’avantage des groupofnames est qu’avec un filtre sur un
|
||||
|
||||
### /root/ldap/conf/Group.ldif
|
||||
```
|
||||
dn: cn=cloud,ou=sysgroup,ou=group,dc=krhacken,dc=org
|
||||
cn: cloud
|
||||
description: Cloud
|
||||
dn: cn=people,ou=sysgroup,ou=group,dc=krhacken,dc=org
|
||||
cn: people
|
||||
description: Not krkn
|
||||
objectClass: groupOfNames
|
||||
member: cn=admin,dc=krhacken,dc=org
|
||||
|
||||
@@ -473,7 +482,7 @@ description: krhacken
|
||||
objectClass: groupOfNames
|
||||
member: cn=admin,dc=krhacken,dc=org
|
||||
```
|
||||
On ajoute les
|
||||
On ajoute les groupes
|
||||
```
|
||||
ldapadd -cxWD cn=admin,dc=krhacken,dc=org -y /root/pwdldap -f Group.ldif
|
||||
```
|
||||
@@ -482,12 +491,12 @@ On peu tester memberof pour voir si admin est bien dans les bon groupes
|
||||
ldapsearch -xLLLH ldap://localhost -D cn=admin,dc=krhacken,dc=org -y /root/pwdldap -b "dc=krhacken,dc=org" "cn=admin" memberof
|
||||
```
|
||||
|
||||
Pour rajouter un utilisateur dans un groupe avec un fichier ldif (addusertogroup.ldif)
|
||||
Exemple, pour rajouter un utilisateur dans un groupe avec un fichier ldif (addusertogroup.ldif) ici ajout de new au groupe people
|
||||
```
|
||||
dn: cn=cloud,ou=sysgroup,ou=group,dc=krhacken,dc=org
|
||||
dn: cn=people,ou=sysgroup,ou=group,dc=krhacken,dc=org
|
||||
changetype: modify
|
||||
add: member
|
||||
member: uid=niko,ou=krhacken,ou=people,dc=krhacken,dc=org
|
||||
member: uid=user,ou=krhacken,ou=people,dc=krhacken,dc=org
|
||||
```
|
||||
On ajoute l'utilisateur avec
|
||||
```
|
||||
@@ -555,16 +564,34 @@ Ajout des modifications et application
|
||||
ldapmodify -H ldapi:// -Y EXTERNAL -f forcetls.ldif
|
||||
systemctl restart slapd
|
||||
```
|
||||
Vérifions si TLS est obligatoire,
|
||||
Cette commande doit retourner une erreur
|
||||
|
||||
### Vérification
|
||||
La commande
|
||||
```
|
||||
ldapsearch -H ldap:// -x -b "dc=krhacken,dc=org" -LLL dn
|
||||
```
|
||||
et celle la doit aboutir
|
||||
```
|
||||
ldapsearch -H ldap:// -x -b "dc=example,dc=com" -LLL -Z dn
|
||||
ldapsearch -xLLL -H ldap://localhost -D cn=viewer,ou=system,dc=krhacken,dc=org -w passview -b "dc=krhacken,dc=org"
|
||||
```
|
||||
doit retourner une erreur, si on ajout -ZZ à la fin ça doit fonctionner
|
||||
|
||||
Voilà pour la mise en place de base du LDAP cependant il faut configuré chaque client pour se connecter au serveur avec STARTTLS.
|
||||
|
||||
NB : Il manque la réplication que nous mettrons en place plus tard.
|
||||
|
||||
## Configuration des futurs client LDAP
|
||||
Sur tout les futurs client LDAP il faudra activer la connexion SSL.
|
||||
Il faut commencer par copier le certificat de la CA (ca_server.pem qu'il faudra copier via scp)
|
||||
```
|
||||
cat ca_server.pem | tee -a /etc/ldap/ca_certs.pem
|
||||
```
|
||||
Il faut ensuite modifier la configuration en modifiant la ligne suivante
|
||||
### /etc/ldap/ldap.conf
|
||||
```
|
||||
...
|
||||
TLS_CACERT /etc/ldap/ca_certs.pem
|
||||
...
|
||||
```
|
||||
|
||||
La commande,
|
||||
```
|
||||
ldapsearch -xLLL -H ldap://localhost -D cn=viewer,ou=system,dc=krhacken,dc=org -w passview -b "dc=krhacken,dc=org" -ZZ
|
||||
```
|
||||
doit retourner des informations sur l'arbre.
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# Service de Mail
|
||||
Nous allons ici mettre en place tout un service de mail qui va utiliser LDAP, Postfix, Dovecot et Rspamd. Avant de mettre en place le serveur Mail il faut déjà avoir mis en place le serveur LDAP.
|
||||
|
||||
Il faut avoir établie une connexion TLS avec le serveur LDAP, la marche à suivre est disponible dans la partie LDAP (à la toute fin).
|
||||
|
||||
# Configuration du serveur LDAP
|
||||
Le serveur LDAP est déjà en place sur le container LDAP il faut cependant faire ce qu'il suit pour ajouter le support des mails sur LDAP.
|
||||
Le serveur LDAP est déjà en place sur le conteneur LDAP il faut cependant faire ce qu'il suit pour ajouter le support des mails sur LDAP.
|
||||
|
||||
## Ajout d'un schéma
|
||||
|
||||
@@ -118,7 +120,7 @@ ldapsearch -xLLL -H ldap://localhost -D cn=admin,dc=krhacken,dc=org -y /root/pwd
|
||||
```
|
||||
|
||||
# Postfix
|
||||
Postfix et Dovecot seront dans le même container. Nous allons commencer par Postfix qui utilise le protocole SMTP pour envoyer et recevoir des mails. C'est un service très complet mais nécessaire.
|
||||
Postfix et Dovecot seront dans le même conteneur. Nous allons commencer par Postfix qui utilise le protocole SMTP pour envoyer et recevoir des mails. C'est un service très complet mais nécessaire.
|
||||
|
||||
## DNS
|
||||
Voilà les entrées à ajouter, on en rajoutera d'autres à la fin
|
||||
@@ -133,14 +135,14 @@ dig krhacken.org MX +short
|
||||
Doit retourner _10 mail.krhacken.org._
|
||||
|
||||
## Redirection de ports
|
||||
Voilà la liste des ports qui vont être utilisé par le container Mail qui contient Postfix et Dovecot.
|
||||
Voilà la liste des ports qui vont être utilisé par le conteneur Mail qui contient Postfix et Dovecot.
|
||||
- 25 -> SMTP
|
||||
- 465 -> SMTPS
|
||||
- 587 -> SUBMISSION
|
||||
- 143 -> IMAP
|
||||
- 993 -> IMAPS
|
||||
- 4190 -> Managesieve
|
||||
Tout c'est ports sont déjà DNAT sur le container Mail grâce à OPNSense
|
||||
Tout c'est ports sont déjà DNAT sur le conteneur Mail grâce à OPNSense
|
||||
|
||||
## Installation
|
||||
### Postfix
|
||||
@@ -166,8 +168,8 @@ git clone https://github.com/Neilpang/acme.sh.git
|
||||
cd ./acme.sh
|
||||
./acme.sh --install
|
||||
```
|
||||
### Ajout d'un reverse proxy au niveau des containers nginx
|
||||
Pour que les requêtes ACME sur le domaine mail.krhacken.org arrive sur le container Postfix il faut rajouter un reverse dans les containers Nginx Public.
|
||||
### Ajout d'un reverse proxy au niveau des conteneurs nginx
|
||||
Pour que les requêtes ACME sur le domaine mail.krhacken.org arrive sur le conteneur Postfix il faut rajouter un reverse dans les conteneurs Nginx Public.
|
||||
```
|
||||
server {
|
||||
listen 80;
|
||||
@@ -902,7 +904,7 @@ reject = 30;
|
||||
}
|
||||
```
|
||||
### /etc/rspamd/local.d/milter_headers.conf
|
||||
Il indique d’ajouter des entêtes dans les mails. Grace à eux, vous pourrez voir directement dans votre logiciel ce qui a provoqué ou non le marquage en spam.
|
||||
Il indique d’ajouter des entêtes dans les mails. Grace à eux, vous pourrez voir directement dans votre logiciel ce qui a provoqué ou non le marquage en spam.
|
||||
|
||||
```
|
||||
extended_spam_headers = true;
|
||||
@@ -1078,4 +1080,4 @@ systemclt restart postfix
|
||||
systemclt restart dovecot
|
||||
systemclt restart rspamd
|
||||
```
|
||||
Nous pouvons maintenant tester que le tout marche sur http://www.appmaildev.com
|
||||
Nous pouvons maintenant tester que le tout marche sur http://www.appmaildev.com
|
||||
|
||||
Reference in New Issue
Block a user