From bad3fe7dcb1559b670841d7d4c82248c59f2f365 Mon Sep 17 00:00:00 2001
From: Thomas Picouet <thomas.picouet@riseup.net>
Date: Mon, 24 Dec 2018 01:05:13 +0100
Subject: [PATCH] mise au propre MDA

---
 docker-compose/mail.yml                       |  1 -
 docker-compose/mail_plaintext.yml             | 26 -------------------
 docker-compose/mail_unix.yml                  | 21 +++++++++++++++
 pica-mail-mda/auth_LDAP/README.md             |  2 +-
 .../auth_LDAP/fichiers_de_configuration.sh    | 12 ++++++---
 pica-mail-mda/auth_LDAP/reset.sh              |  6 -----
 6 files changed, 30 insertions(+), 38 deletions(-)
 delete mode 100644 docker-compose/mail_plaintext.yml
 create mode 100644 docker-compose/mail_unix.yml
 delete mode 100755 pica-mail-mda/auth_LDAP/reset.sh

diff --git a/docker-compose/mail.yml b/docker-compose/mail.yml
index 3702eb69..e9fbd816 100644
--- a/docker-compose/mail.yml
+++ b/docker-compose/mail.yml
@@ -13,7 +13,6 @@ services:
     hostname: pica-mail-mda
     volumes:
       - /var/lib/docker/volumes/mail-mda-maildir/_data:/home
-      - /var/lib/docker/volumes/mail-mda-log/_data:/var/log
       - /DATA/docker/mail/ssl/:/certs-ssl/:ro
     
   mail-mta:
diff --git a/docker-compose/mail_plaintext.yml b/docker-compose/mail_plaintext.yml
deleted file mode 100644
index eee56db5..00000000
--- a/docker-compose/mail_plaintext.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-version: "3"
-
-services:
-  mail-mda:
-    image: pica-mail-mda:1
-    container_name: pica-mail-mda-auth_plaintext
-    networks:
-      - default
-    hostname: pica-mail-mda
-    volumes:
-      - /var/lib/docker/volumes/mail-mda-maildir/_data:/home
-      - /var/lib/docker/volumes/mail-mda-log/_data:/var/log
-    
-  mail-mta:
-    image: pica-mail-mta:1
-    container_name: pica-mail-mta-auth_plaintext
-    networks:
-      - default
-    volumes:
-      - /var/lib/docker/volumes/mail-mta-log/_data:/var/log
-
-networks:
-  default:
-    external:
-      name: local-mail-delivery
-
diff --git a/docker-compose/mail_unix.yml b/docker-compose/mail_unix.yml
new file mode 100644
index 00000000..525d9b9f
--- /dev/null
+++ b/docker-compose/mail_unix.yml
@@ -0,0 +1,21 @@
+version: "3"
+
+services:
+  mail-mda:
+    build: ../pica-mail-mda/auth_plaintext
+    image: pica-mail-mda:1
+    container_name: pica-mail-mda
+    networks:
+      - mail
+    hostname: pica-mail-mda
+    volumes:
+      - /var/lib/docker/volumes/mail-mda-maildir/_data:/home
+    
+  mail-mta:
+    image: pica-mail-mta:1
+    container_name: pica-mail-mta
+    networks:
+      - mail
+
+networks:
+  mail:
diff --git a/pica-mail-mda/auth_LDAP/README.md b/pica-mail-mda/auth_LDAP/README.md
index 82172d11..2318c772 100644
--- a/pica-mail-mda/auth_LDAP/README.md
+++ b/pica-mail-mda/auth_LDAP/README.md
@@ -7,5 +7,5 @@ docker build -t pica-mail-mda:2 .
 # Pour lancer le conteneur :
 
 ```
-docker run -d --name pica-mail-mda-ldap --network local-mail-delivery --hostname pica-mail-mda --mount source=mail-mda-maildir,target=/home/ --mount source=mail-mda-log,target=/var/log pica-mail-mda:2
+docker run -d --name pica-mail-mda --network pica_mail --hostname pica-mail-mda --mount source=mail-mda-maildir,target=/home/ --mount source=/DATA/docker/mail/ssl/,target=/certs-ssl/:ro -p 993:993 pica-mail-mda:2
 ```
diff --git a/pica-mail-mda/auth_LDAP/fichiers_de_configuration.sh b/pica-mail-mda/auth_LDAP/fichiers_de_configuration.sh
index 50528616..aab5c70c 100644
--- a/pica-mail-mda/auth_LDAP/fichiers_de_configuration.sh
+++ b/pica-mail-mda/auth_LDAP/fichiers_de_configuration.sh
@@ -27,16 +27,20 @@ sed -i 's/^#ldap_version = .*/ldap_version = 3/' /etc/dovecot/dovecot-ldap.conf.
 sed -i 's/^base =.*/base = dc='"${LDAP_DC2}"',dc='"${LDAP_DC1}"'/' /etc/dovecot/dovecot-ldap.conf.ext
 # Autoriser la recherche dans les branches sous-jacentes de cette base
 sed -i 's/^#scope = subtree.*/scope = subtree/' /etc/dovecot/dovecot-ldap.conf.ext
-# On ne récupère aucun attribut car le nom du répertoire des mails correspond à la
-# partie nom d'utilisateur de l'adresse mail. On n'a donc besoin d'aucun attribut.
-sed -i 's/^#user_attrs =.*/user_attrs =/' /etc/dovecot/dovecot-ldap.conf.ext
 # Réaliser la correspondance entre l'UID (côté LDAP) et la partie nom d'utilisateur de
 # l'adresse mail (côté client).
-sed -i 's/^#user_filter = .*/user_filter = (uid=%n)/' /etc/dovecot/dovecot-ldap.conf.ext
+#sed -i 's/^#user_filter = .*/user_filter = (uid=%n)/' /etc/dovecot/dovecot-ldap.conf.ext
+sed -i '130s/^.*/pass_attrs = uid=user,userPassword=password,uid=userdb_user/' /etc/dovecot/dovecot-ldap.conf.ext
 sed -i 's/^#pass_filter = .*/pass_filter = (uid=%n)/' /etc/dovecot/dovecot-ldap.conf.ext
+# On ne récupère aucun attribut car le nom du répertoire des mails correspond à la
+# partie nom d'utilisateur de l'adresse mail. On n'a donc besoin d'aucun attribut.
+echo "user_attrs =" >> /etc/dovecot/dovecot-ldap.conf.ext
 #sed -i 's/^# = .*//' /etc/dovecot/dovecot-ldap.conf.ext
 
 ### Modification de /etc/dovecot/conf.d/auth-ldap.conf.ext
+sed -i '15s/^#userdb {.*/userdb {/' /etc/dovecot/conf.d/auth-ldap.conf.ext
+sed -i '16s/.*/  driver = prefetch/' /etc/dovecot/conf.d/auth-ldap.conf.ext
+sed -i '17s/.*/}/' /etc/dovecot/conf.d/auth-ldap.conf.ext
 #sed
 
 ### Modification de /etc/dovecot/conf.d/10-auth.conf
diff --git a/pica-mail-mda/auth_LDAP/reset.sh b/pica-mail-mda/auth_LDAP/reset.sh
deleted file mode 100755
index be58c645..00000000
--- a/pica-mail-mda/auth_LDAP/reset.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-docker kill pica-mail-mda-ldap
-docker rm pica-mail-mda-ldap
-docker build -t pica-mail-mda:2 .
-docker run -d --name pica-mail-mda-ldap --network local-mail-delivery --hostname pica-mail-mda --mount source=mail-mda-maildir,target=/home/ --mount source=mail-mda-log,target=/var/log pica-mail-mda:2
-docker exec -it pica-mail-mda-ldap /bin/bash
-- 
GitLab