jericho63 Déja il faut virer traeffic, ensuite nettoyer docker avec :
docker volume rm $(docker volume ls -qf "dangling=true")
Ensuite je te conseille, plutôt que d’utiliser unbound de suivre le tuto de @Hardware pour la mise en place d'un serveur autoritaire avec nsd :
https://blog.meshup.net/deploy-nsd-dnssec-with-docker/
Et de procéder par étape. L'idée est d'abord de mettre en place le reverse sur le serveur mail d'@Hardware sans le reste. Une fois que cela fonctionne tu rajoutes tes services au fur et a mesure. Je te donne mon docker compose
version: '2.1'
services:
mailserver:
image: hardware/mailserver:1.1-stable # <- New tag
container_name: mailserver
domainname: domain.com
hostname: mail
restart: always
ports:
- "25:25"
- "143:143"
- "587:587"
- "993:993"
- "4190:4190"
- "11334:11334" # <- New port, not needed if the
environment: # webserver is on the same host
- DBPASS=xxxxx
- RSPAMD_PASSWORD=xxxxx
- ENABLE_ENCRYPTION=true # <- New required variable
volumes:
- /mnt/docker/mail:/var/mail
- /mnt/docker/ssl:/etc/letsencrypt
depends_on:
- mariadb
- redis # <- New dependency
# Administration interface
# https://github.com/hardware/postfixadmin
# http://postfixadmin.sourceforge.net/
# Configuration : https://github.com/hardware/mailserver/wiki/Postfixadmin-initial-configuration
postfixadmin:
image: hardware/postfixadmin
container_name: postfixadmin
domainname: domain.com
hostname: mail
restart: always
environment:
- DBPASS=xxxxx
ports:
- "127.0.0.1:8888:8888"
depends_on:
- mailserver
- mariadb
# Webmail (Optional)
# https://github.com/hardware/rainloop
# https://www.rainloop.net/
# Configuration : https://github.com/hardware/mailserver/wiki/Rainloop-initial-configuration
rainloop:
image: hardware/rainloop
container_name: rainloop
restart: always
volumes:
- /mnt/docker/rainloop:/rainloop/data
ports:
- "127.0.0.1:8889:8888"
depends_on:
- mailserver
- mariadb
nsd:
image: hardware/nsd-dnssec
container_name: nsd
restart: always
ports:
- "xxxxx:53:53"
- "xxxxxx:53:53/udp"
volumes:
- /mnt/docker/nsd/conf:/etc/nsd
- /mnt/docker/nsd/zones:/zones
- /mnt/docker/nsd/db:/var/db/nsd
redis:
image: redis:4.0-alpine
restart: always
container_name: redis
command: redis-server --appendonly yes
volumes:
- /mnt/docker/redis/db:/data
mariadb:
restart: always
image: mariadb:10.2
container_name: mariadb
#restart: always
# Info : These variables are ignored when the volume already exists (databases created before).
environment:
- MYSQL_ROOT_PASSWORD=xxxxx
- MYSQL_DATABASE=postfix
- MYSQL_USER=postfix
- MYSQL_PASSWORD=xxxxx
volumes:
- /mnt/docker/mysql/db:/var/lib/mysql
Mon vhost rainloop (tous mes vhosts sont sur le meme schéma) dans /etc/nginx/sites-enabled
server {
listen 80;
server_name webmail.domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name webmail.domain.com;
ssl_certificate /etc/letsencrypt/live/mail.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.domain.com/privkey.pem;
include /etc/nginx/conf/*.conf;
location / {
proxy_pass http://127.0.0.1:8889;
include /etc/nginx/conf/proxy_params;
}
}
Mes paramètres ssl et header qui sont dans /etc/nginx/conf/ssl_params.conf
ssl_protocols TLSv1.2;
ssl_ecdh_curve X25519:P-521:P-384;
ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 15m;
ssl_session_tickets off;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
add_header X-Content-Type-Options nosniff always;
add_header X-XSS-Protection "1; mode=block" always;
Ainsi que le fichier proxy dans /etc/nginx/conf/proxy_params
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
Voila commence par ça, l’idée encore une fois est de faire fonctionner le reverse du serveur mail avec nginx en local.. Adaptes avec tes ip local, public et tes ports http et https
Pour lets'encrypt tu suis le tuto de @Jedediah
https://mondedie.fr/d/7414-Tuto-Certificat-SSL-signe-gratuit-avec-Let-s-Encrypt-et-nginx