因自製mail server只在docker使用過, 這次挑戰podman
- 安裝let’s encrypt
dnf install certbot
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
systemctl stop httpd
certbot certonly --standalone --preferred-challenges http -d mail.test.com
# 若要renew 請加到crontab
certbot renew --post-hook "systemctl restart httpd"
- 搜尋容器
podman search inmethod
pod man pull docker.io/inmethod/docker-postfix-ad:3.3
- 建立volume
podman volume create postfixldap_vmail
podman volume create postfixldap_postfix
podman volume create postfixldap_dovecot
podman volume create postfixldap_log
podman volume create postfixldap_rspamd_conf
podman volume create postfixldap_rspamd_var
podman volume create postfixldap_opendkim
- 啟用mail server容器
假設我們的AD主機IP : 10.192.130.227
郵件網域 : test.com
郵件主機 : mail.test.com
Ldap SEARCH_BASE : OU=group,DC=test,DC=com
BIND_DN : “cn=ldap,cn=Users,dc=test, dc=com”
BIND_PW: “password”
時區 : “America/New_York” (台灣Asia/Taipei)
我寫了一個自動產生腳本的scripts
https://williamfromtw.github.io/docker-Postfix-AD/genLaunchCommand.html
可以產生以下指令
podman run --name mailserver \
-v /etc/letsencrypt:/etc/letsencrypt \
-v mailserver_vmail:/home/vmail \
-v mailserver_opendkim:/etc/opendkim \
-v mailserver_postfix:/etc/postfix \
-v mailserver_dovecot:/etc/dovecot \
-v mailserver_rspamd_conf:/etc/rspamd\
-v mailserver_rspamd_var:/var/lib/rspamd \
-v mailserver_log:/var/log \
-p 25:25 -p 110:110 -p 143:143 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 4190:4190 -p 11334:11334 \
-e DOMAIN_NAME="test.com" \
-e HOST_NAME="mail.test.com" \
-e HOST_IP="10.192.130.227" \
-e SEARCH_BASE="DC=test,DC=com" \
-e BIND_DN="CN=ldap,CN=Users,DC=test,DC=com" \
-e BIND_PW="your BIND_DN password" \
-e TZ="America/New_York" \
-e ALIASES="OU=aliases,DC=test,DC=com" \
-e ENABLE_QUOTA="false" \
--label=disable -d --restart always --net=host \
docker.io/inmethod/docker-postfix-ad:3.3
相關port防火牆要開,DNS mx要設定,dkmi key請參照https://github.com/WilliamFromTW/docker-Postfix-AD,就可以測試看看了。