on a Debian-10 ( kvm )
BEGIN - installation:
root@s3:~/zhb-iredmail-32b706d26a5c/iRedMail# bash iRedMail.sh
[ INFO ] Checking new version of iRedMail ...
[ INFO ] apt-get update ...
Hit:1 [url]https://cdn-aws.deb.debian.org/debian[/url] buster InRelease
Hit:2 [url]https://cdn-aws.deb.debian.org/debian-security[/url] buster/updates InRelease
Get:3 [url]https://cdn-aws.deb.debian.org/debian[/url] buster-updates InRelease [46.8 kB]
Fetched 46.8 kB in 1s (40.0 kB/s)
Reading package lists... Done
[ INFO ] Fetching source tarballs ...
[ INFO ] + 1 of 6: [url]https://dl.iredmail.org/yum/misc/iRedAdmin-0.9.7.tar.bz2[/url]
[ INFO ] + 2 of 6: [url]https://dl.iredmail.org/yum/misc/mlmmjadmin-2.1.tar.gz[/url]
[ INFO ] + 3 of 6: [url]https://dl.iredmail.org/yum/misc/iRedAPD-3.0.tar.bz2[/url]
[ INFO ] + 4 of 6: [url]https://dl.iredmail.org/yum/misc/netdata-v1.16.0.gz.run[/url]
[ INFO ] + 5 of 6: [url]https://dl.iredmail.org/yum/misc/roundcubemail-1.3.9-complete.tar.gz[/url]
[ INFO ] + 6 of 6: [url]https://dl.iredmail.org/yum/misc/web.py-0.39.tar.gz[/url]
[ INFO ] Validate downloaded source tarballs ...
misc/iRedAdmin-0.9.7.tar.bz2: OK
misc/mlmmjadmin-2.1.tar.gz: OK
misc/iRedAPD-3.0.tar.bz2: OK
misc/netdata-v1.16.0.gz.run: OK
misc/roundcubemail-1.3.9-complete.tar.gz: OK
misc/web.py-0.39.tar.gz: OK
[ OK ]
[ INFO ] Install package: dialog
[ INFO ] Installing package(s): dialog
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
dialog
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 274 kB of archives.
After this operation, 1196 kB of additional disk space will be used.
Get:1 [url]https://cdn-aws.deb.debian.org/debian[/url] buster/main amd64 dialog amd64 1.3-20190211-1 [274 kB]
Fetched 274 kB in 0s (667 kB/s)
Selecting previously unselected package dialog.
(Reading database ... 28379 files and directories currently installed.)
Preparing to unpack .../dialog_1.3-20190211-1_amd64.deb ...
Unpacking dialog (1.3-20190211-1) ...
Setting up dialog (1.3-20190211-1) ...
Processing triggers for man-db (2.8.5-2) ...
[ INFO ] Checking configuration file: /root/zhb-iredmail-32b706d26a5c/iRedMail/config ...[ INFO ] NOT FOUND. Launching installation wizard.
iRedMail:_Open_Source_Mail_Server_Solution
...
Optional components─ssssssssssssssssssssssssssss┐
│ * DKIM signing/verification and SPF validation are enabled by default. │
│ * DNS records for SPF and DKIM are required after installation. │
│ Refer to below file for more detail after installation: │
│ * /root/zhb-iredmail-32b706d26a5c/iRedMail/iRedMail.tips │
│ ┌─ ┐ │
│ │ [ * ] Roundcubemail Popular_webmail_built_with_PHP_and_AJAX │ │
│ │ [ * ] SOGo Webmail,_Calendar,_Address_book │ │
│ │ [ * ] netdata Awesome_system_monitor │ │
│ │ [ * ] iRedAdmin Official_web-based_Admin_Panel │ │
│ │ [ * ] Fail2ban Ban_IP_with_too_many_password_failures │ │
...
* Below file contains sensitive infomation (username/password), please *
* do remember to *MOVE* it to a safe place after installation. *
* * /root/zhb-iredmail-32b706d26a5c/iRedMail/config
...
[ INFO ] Installing package(s): postfix postfix-pcre libsasl2-modules mariadb-client mariadb-server postfix-mysql libdbd-mysql-perl php-cli php-fpm php-json php-gd php-curl mcrypt php-intl php-xml php-mbstring php-mysql nginx-full dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-managesieved dovecot-sieve dovecot-mysql amavisd-new libcrypt-openssl-rsa-perl libmail-dkim-perl clamav-freshclam clamav-daemon spamassassin altermime arj nomarch cpio lzop cabextract p7zip-full rpm libmail-spf-perl unrar-free pax lrzip mlmmj memcached sogo python-sqlalchemy python-dnspython python-mysqldb python-jinja2 python-netifaces python-pycurl python-requests uwsgi uwsgi-plugin-python fail2ban zlib1g libuuid1 libmnl0 curl lm-sensors netcat bzip2 acl patch cron tofrodos logwatch unzip bsdutils liblz4-tool nftables
Reading package lists...
Building dependency tree...
Reading state information...
bzip2 is already the newest version (1.0.6-9.1).
cpio is already the newest version (2.12+dfsg-9).
cron is already the newest version (3.0pl1-134).
libsasl2-modules is already the newest version (2.1.27+dfsg-1).
libsasl2-modules set to manually installed.
libmnl0 is already the newest version (1.0.4-2).
bsdutils is already the newest version (1:2.33.1-0.1).
libuuid1 is already the newest version (2.33.1-0.1).
zlib1g is already the newest version (1:1.2.11.dfsg-1).
The following additional packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu clamav clamav-base
clamdscan cpp cpp-8 debugedit dovecot-core fontconfig-config
fonts-dejavu-core galera-3 gawk gcc gcc-8 gnustep-base-common
gnustep-base-runtime gnustep-common libarchive-zip-perl libarchive13
libasan5 libatomic1 libauthen-sasl-perl libavahi-client3
libavahi-common-data libavahi-common3 libberkeleydb-perl libbinutils
libc-dev-bin libc6-dev libcc1-0 libcgi-fast-perl libcgi-pm-perl libclamav9
libconfig-inifiles-perl libconvert-binhex-perl libconvert-tnef-perl
libconvert-uulib-perl libcrypt-openssl-bignum-perl
libcrypt-openssl-random-perl libcurl4 libdate-manip-perl libdbi-perl
libdigest-bubblebabble-perl libdigest-hmac-perl libdw1 libencode-locale-perl
liberror-perl libexttextcat-2.0-0 libexttextcat-data libfcgi-perl
libfontconfig1 libgc1c2 libgcc-8-dev libgd3 libglib2.0-0 libglib2.0-data
libgnustep-base1.26 libgomp1 libhtml-parser-perl libhtml-tagset-perl
libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
libio-multiplex-perl libio-socket-inet6-perl libio-socket-ssl-perl
libio-stringy-perl libisl19 libitm1 libjansson4 libjbig0 libjpeg62-turbo
liblasso3 liblsan0 libltdl7 liblua5.2-0 liblua5.3-0 liblwp-mediatypes-perl
liblzo2-2 libmailtools-perl libmariadb3 libmatheval1 libmcrypt4
libmemcached11 libmhash2 libmime-tools-perl libmpc3 libmpfr6 libmpx2
libmspack0 libnet-cidr-lite-perl libnet-cidr-perl libnet-dns-perl
libnet-dns-sec-perl libnet-ip-perl libnet-libidn-perl libnet-patricia-perl
libnet-server-perl libnet-smtp-ssl-perl libnet-ssleay-perl
libnetaddr-ip-perl libnftables0 libnginx-mod-http-auth-pam
libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip
libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter
libnginx-mod-mail libnginx-mod-stream libnorm1 libnspr4 libnss3 libobjc4
libpgm-5.2-0 libpq5 libpython2.7 libquadmath0 librpm8 librpmbuild8 librpmio8
librpmsign8 libsbjson2.3 libsensors-config libsensors5 libsigsegv2
libsnappy1v5 libsocket6-perl libsodium23 libsope1 libstemmer0d
libsys-cpu-perl libsys-hostname-long-perl libsys-meminfo-perl
libterm-readkey-perl libtfm1 libtiff5 libtimedate-perl libtsan0 libubsan1
libunix-syslog-perl liburi-perl libwavpack1 libwebp6 libxmlsec1
libxmlsec1-openssl libxpm4 libxslt1.1 libyaml-0-2 libzmq5 linux-libc-dev lz4
make manpages-dev mariadb-client-10.3 mariadb-client-core-10.3
mariadb-common mariadb-server-10.3 mariadb-server-core-10.3 mysql-common
nginx-common p7zip perl-openssl-defaults php-common php7.3-cli php7.3-common
php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-json php7.3-mbstring
php7.3-mysql php7.3-opcache php7.3-readline php7.3-xml psmisc
python-asn1crypto python-certifi python-cffi-backend python-chardet
python-cryptography python-enum34 python-idna python-ipaddress
python-markupsafe python-openssl python-pkg-resources python-six
python-sqlalchemy-ext python-urllib3 python3-pyinotify python3-systemd re2c
rpm-common rpm2cpio rsync sa-compile shared-mime-info socat sogo-common
spamc ssl-cert unar uwsgi-core whois xdg-user-dirs zip
Suggested packages:
dspam lhasa libnet-ldap-perl libsnmp-perl libzeromq-perl unrar binutils-doc
clamav-docs daemon cpp-doc gcc-8-locales rpm-i18n dovecot-gssapi
dovecot-ldap dovecot-lucene dovecot-pgsql dovecot-solr dovecot-sqlite
dovecot-submissiond ntp ufw mailx monit sqlite3 gawk-doc gcc-multilib
autoconf automake libtool flex bison gdb gcc-doc gcc-8-multilib gcc-8-doc
libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan5-dbg
liblsan0-dbg libtsan0-dbg libubsan1-dbg libmpx2-dbg libquadmath0-dbg
libgssapi-perl glibc-doc libclamunrar9 libclone-perl libmldbm-perl
libnet-daemon-perl libsql-statement-perl libgd-tools libdata-dump-perl
libipc-sharedcache-perl libmcrypt-dev liblog-log4perl-perl libwww-perl
fancontrol read-edid i2c-tools make-doc mariadb-test netcat-openbsd tinyca
libcache-memcached-perl libmemcached libanyevent-perl libyaml-perl
mlmmj-php-web mlmmj-php-web-admin fcgiwrap nginx-doc p7zip-rar ed
diffutils-doc php-pear procmail postfix-pgsql postfix-ldap postfix-lmdb
postfix-sqlite resolvconf postfix-cdb mail-reader postfix-doc
python-cryptography-doc python-cryptography-vectors python-enum34-doc
python-jinja2-doc python-egenix-mxdatetime python-mysqldb-dbg
python-openssl-doc python-openssl-dbg python-setuptools libcurl4-gnutls-dev
python-pycurl-dbg python-pycurl-doc python-socks python-sqlalchemy-doc
python-psycopg2 python-fdb python-pymssql python-ntlm python-pyinotify-doc
alien elfutils rpmlint rpm2html razor pyzor libencode-detect-perl
libgeo-ip-perl openssl-blacklist pike8.0 | pike7.8 | pike7.6 | pike
uwsgi-dev uwsgi-extra uwsgi-plugins-all python-uwsgidecorators
Recommended packages:
ripole
The following NEW packages will be installed:
acl altermime amavisd-new arj binutils binutils-common
binutils-x86-64-linux-gnu cabextract clamav clamav-base clamav-daemon
clamav-freshclam clamdscan cpp cpp-8 curl debugedit dovecot-core
dovecot-imapd dovecot-lmtpd dovecot-managesieved dovecot-mysql dovecot-pop3d
dovecot-sieve fail2ban fontconfig-config fonts-dejavu-core galera-3 gawk gcc
gcc-8 gnustep-base-common gnustep-base-runtime gnustep-common
libarchive-zip-perl libarchive13 libasan5 libatomic1 libauthen-sasl-perl
libavahi-client3 libavahi-common-data libavahi-common3 libberkeleydb-perl
libbinutils libc-dev-bin libc6-dev libcc1-0 libcgi-fast-perl libcgi-pm-perl
libclamav9 libconfig-inifiles-perl libconvert-binhex-perl
libconvert-tnef-perl libconvert-uulib-perl libcrypt-openssl-bignum-perl
libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl libcurl4
libdate-manip-perl libdbd-mysql-perl libdbi-perl libdigest-bubblebabble-perl
libdigest-hmac-perl libdw1 libencode-locale-perl liberror-perl
libexttextcat-2.0-0 libexttextcat-data libfcgi-perl libfontconfig1 libgc1c2
libgcc-8-dev libgd3 libglib2.0-0 libglib2.0-data libgnustep-base1.26
libgomp1 libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
libhttp-date-perl libhttp-message-perl libio-html-perl libio-multiplex-perl
libio-socket-inet6-perl libio-socket-ssl-perl libio-stringy-perl libisl19
libitm1 libjansson4 libjbig0 libjpeg62-turbo liblasso3 liblsan0 libltdl7
liblua5.2-0 liblua5.3-0 liblwp-mediatypes-perl liblz4-tool liblzo2-2
libmail-dkim-perl libmail-spf-perl libmailtools-perl libmariadb3
libmatheval1 libmcrypt4 libmemcached11 libmhash2 libmime-tools-perl libmpc3
libmpfr6 libmpx2 libmspack0 libnet-cidr-lite-perl libnet-cidr-perl
libnet-dns-perl libnet-dns-sec-perl libnet-ip-perl libnet-libidn-perl
libnet-patricia-perl libnet-server-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnetaddr-ip-perl libnftables0
libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libnorm1
libnspr4 libnss3 libobjc4 libpgm-5.2-0 libpq5 libpython2.7 libquadmath0
librpm8 librpmbuild8 librpmio8 librpmsign8 libsbjson2.3 libsensors-config
libsensors5 libsigsegv2 libsnappy1v5 libsocket6-perl libsodium23 libsope1
libstemmer0d libsys-cpu-perl libsys-hostname-long-perl libsys-meminfo-perl
libterm-readkey-perl libtfm1 libtiff5 libtimedate-perl libtsan0 libubsan1
libunix-syslog-perl liburi-perl libwavpack1 libwebp6 libxmlsec1
libxmlsec1-openssl libxpm4 libxslt1.1 libyaml-0-2 libzmq5 linux-libc-dev
lm-sensors logwatch lrzip lz4 lzop make manpages-dev mariadb-client
mariadb-client-10.3 mariadb-client-core-10.3 mariadb-common mariadb-server
mariadb-server-10.3 mariadb-server-core-10.3 mcrypt memcached mlmmj
mysql-common netcat nftables nginx-common nginx-full nomarch p7zip
p7zip-full patch pax perl-openssl-defaults php-cli php-common php-curl
php-fpm php-gd php-intl php-json php-mbstring php-mysql php-xml php7.3-cli
php7.3-common php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-json
php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-readline php7.3-xml
postfix postfix-mysql postfix-pcre psmisc python-asn1crypto python-certifi
python-cffi-backend python-chardet python-cryptography python-dnspython
python-enum34 python-idna python-ipaddress python-jinja2 python-markupsafe
python-mysqldb python-netifaces python-openssl python-pkg-resources
python-pycurl python-requests python-six python-sqlalchemy
python-sqlalchemy-ext python-urllib3 python3-pyinotify python3-systemd re2c
rpm rpm-common rpm2cpio rsync sa-compile shared-mime-info socat sogo
sogo-common spamassassin spamc ssl-cert tofrodos unar unrar-free unzip uwsgi
uwsgi-core uwsgi-plugin-python whois xdg-user-dirs zip
0 upgraded, 276 newly installed, 0 to remove and 0 not upgraded.
Need to get 141 MB of archives.
After this operation, 555 MB of additional disk space will be used.
Get:1 [url]https://cdn-aws.deb.debian.org/debian[/url] ...
...
Extracting templates from packages: 100%
Preconfiguring packages ...
Fetched 141 MB in 1min 13s (1943 kB/s)
Selecting previously unselected package libmpfr6:amd64.
(Reading database ... 28536 files and directories currently installed.)
Preparing to unpack .../libmpfr6_4.0.2-1_amd64.deb ...
...
Setting up libconfig-inifiles-perl (3.000001-1) ...
...
Creating config file /etc/php/7.3/mods-available/calendar.ini with new version
...
* Start iRedMail Configurations
[ INFO ] Generate self-signed SSL cert (2048 bits, expire in 10 years).
[ INFO ] Generate Diffie Hellman Group with openssl, please wait.
[ INFO ] Create required system accounts.
[ INFO ] Configure Nginx web server.
[ INFO ] Configure PHP.
[ INFO ] Configure MariaDB database server.
[ INFO ] Setup daily cron job to backup SQL databases with /var/vmail/backup/backup_mysql.sh
[ INFO ] Configure Postfix (MTA).
[ INFO ] Configure Dovecot (POP3/IMAP/Managesieve/LMTP/LDA).
[ INFO ] Configure mlmmj (mailing list manager).
[ INFO ] Configure ClamAV (anti-virus toolkit).
[ INFO ] Configure Amavisd-new (interface between MTA and content checkers).
[ INFO ] Configure SpamAssassin (content-based spam filter).
[ INFO ] Configure iRedAPD (postfix policy daemon).
[ INFO ] Configure iRedAdmin (official web-based admin panel).
[ INFO ] Configure Fail2ban (authentication failure monitor).
[ INFO ] Configure Roundcube webmail.
[ INFO ] Configure SOGo Groupware (Webmail, Calendar, Address Book, ActiveSync).
* iRedMail-1.0-beta1 installation and configuration complete.
< Question > Would you like to use firewall rules provided by iRedMail?
< Question > File: /etc/default/iptables, with SSHD ports: 22. [Y|n]y
[ INFO ] Copy firewall sample rules.
< Question > Restart firewall now (with ssh ports: 22)? [y|N]y
[ INFO ] Restarting firewall ...
[ INFO ] Updating ClamAV database (freshclam), please wait ...
ERROR: /var/log/clamav/freshclam.log is locked by another process
* URLs of installed web applications:
* - Roundcube webmail: [url]https://s3.example.com/mail/[/url]
* - SOGo groupware: [url]https://s3.example.com/SOGo/[/url]
* - netdata (monitor): [url]https://s3.example.com/netdata/[/url]
* - Web admin panel (iRedAdmin): [url]https://s3.example.com/iredadmin/[/url]
* You can login to above links with below credential:
* - Username: postmaster@example.com
* - Password: pass1234 (this is not my real password)
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
* - /root/zhb-iredmail-32b706d26a5c/iRedMail/iRedMail.tips
* And it's sent to your mail account postmaster@example.com.
* WARNING *
* Please reboot your system to enable all mail services.
END - installation.
This server functions as a NameServer & it was running fine , i think the installer script did not detect the NameServer & did not ask user <question> to add DNS port 53 as allowed in NFT (net-filter firewall) !
so now NameServer is not reachable from internet (after installing iRedMail) ! my/our other NameServer answered DNS queries for this s3-server's iRedMail mail-server.
i think the installer script should find-out which PORTs (and IP-ADDRESSES) are pre-configured to LISTEN for INTERNET CONNECTION in a Server , and then set/add also those in NF (net-filter firewall rules) along with (iRedMail) Mail server related ports & SSH port, etc , before blocking/disallow traffic coming-in from all other ports, which will make it non-functional or partially-non-functional.
the initial "Details of this iRedMail installation" email from root@hostname.example.com contains too many PASSWORDS & SENSITIVE config data , So i would like to strongly suggest NOT-TO send all these info over an email , & especially as 1st email , while the Mail server & Mail clients are not yet configured to use postmaster's password securely thru secure/encrypted connection ( imapS, popS ) , (connecting to a Mail Server even for only one time or by mistake one time, without using the SECURE-PROTOCOLS IMAPS/POP3S will result in all sensitive data transferred/travel over/through the OPEN non-secure IMAP/POP3 protocols/connections , which is a DATA SECURITY BREACH . So all these sensitive info MUST be SAVED in a file , i.e: /root/iRedMail_Detail_installation.txt" or /etc/iRedMail/iRedMail_Detail_installation.txt , etc.
Will you be adding GnuPG/GPG support in the iRedMail-installer for sending encrypted emails ?
when email's content is not encrypted with GPG/PGP/SMIME then it is OPEN email.
Installer created a self-signed SSL/TLS cert , so i don't see why installer cannot create a key(-pair) for the user: postmaster@example.com , and use that to send encrypted email(s), especially that "Detail" email with sensitive data infos.
Before setup of iRedMail, i/we already had these SERVER CONFIGURATIONS/LAYOUT:
s1 , s2 , s3 . each has 1 IPv4 & 1 IPv6 . these are located in different geo-locations.
s1 has ipv4-1 & ipv6-1,
s2 has ipv4-2 & ipv6-2,
s3 has ipv4-3 & ipv6-3.
above are to be used for primary domain : example.com and for our secondary domains: example2.com , example3.com , example4.com , example5.com, etc
each server has more MAIL-SERVERS / MAIL-HOSTS : m1 & mx in s1 , m2 & mx in s2 , m3 & mx in s3.
s1 & m1 in s1, are to hold emails for users from geo-location-1.
s2 & m2 in s2, are to hold emails for users from geo-location-2.
s3 & m3 in s3, are to hold emails for users from geo-location-3.
mx in s1 is for users who travels or moved-to geo-location-1 from other geo-location.
mx in s2 is for users who travels or moved-to geo-location-2 from other geo-location.
mx in s3 is for users who travels or moved-to geo-location-3 from other geo-location.
m1 has ipv4-1 & ipv6-11,
m2 has ipv4-2 & ipv6-22,
m3 has ipv4-3 & ipv6-33.
mx in s1 has ipv4-1 & ipv6-15,
mx in s2 has ipv4-2 & ipv6-25,
mx in s3 has ipv4-3 & ipv6-35.
above m1 , m2 , m3 , mx , are to be used only for primary domain: example.com
Because of GDPR in EU, Privacy & Protection laws in USA, etc, i/we will have to keep user's data separated in different server located in their geo/jurisdiction area.
each s1, s2, s3 server's ipv4 & ipv6 address's RDNS/"PTR" are defined in BIND DNS NameServer ( s1 , s2 , s3 ).
each Mail-server's ( m1 , m2 , m3 , mx in s1 , mx in s2 , mx in s3 ) ipv4 & ipv6 adrs's RDNS/"PTR" are also defined in NameServer .
so currently i'm/we're trying to do these : s1 , s2 , s3 , m1 & mx in s1 , m2 & mx in s2 , m3 & mx in s3.
i/we want users to have email-adrs like this : user@example.com
Users in "mx" mail-host will have to access web-portal if needed for email-access (or for registration), like this : https://email.example.com/mail/ , etc ( not https://s3.example.com/mail/ ) . Users who are located in same location as s3 server will have to access their emails via s3/m3's web-portal https://s3.example.com/mail/ or https://m3.example.com/mail/ ( or via this mail-server : m3.example.com for IMAPS/POP3S/SMTPS ) , same way s2 location's users will have to access s2/m2 web-portal or use m2.example.com as IMAPS/POP3S/SMTPS mail-server , ...
based on user's geo-location, account will be created by-default in either s1/m1 or s2/m2 or s3/m3 , and when user choose to fall under all geo-location (all jurisdiction) then "mx" mail-server will be used to keep account data.
i/we created/added these DNS records:
email.example.com. IN A ipv4-1 ; ip-adrs of s1
email.example.com. IN A ipv4-2 ; ip-adrs of s2
email.example.com. IN A ipv4-3 ; ip-adrs of s3
email.example.com. IN AAAA ipv6-1 ; (s1)
... ; like above, the "email" has AAAA records for ipv6-2 (s2) , ipv6-3 (s3) , ipv6-11 (m1) , ipv6-22 (m2) , ipv6-33 (m3) , ipv6-15 (mx in s1) , ipv6-25 (mx in s2) , ipv6-35 (mx in s3) = total 9 ipv6 addresses.
we are using the "email.example.com" in this (recommended) way , because we have multiple hosts for Mail-Servers in same physical server, and its better than using multiple CNAME (with an exceptional config code in BIND DNS server) for simple round-robing serving and for failover/redundancy.
so currently there are 8 MX records in DNS for "example.com":
example.com. IN MX 15 email.example.com.
example.com. IN MX 20 m1.example.com. ; on s1
example.com. IN MX 20 m2.example.com. ; on s2
example.com. IN MX 20 m3.example.com. ; on s3
example.com. IN MX 20 mx.example.com. ; on s1, s2, s3
example.com. IN MX 25 s1.example.com.
example.com. IN MX 25 s2.example.com.
example.com. IN MX 25 s3.example.com.
and there are 7 MX records in DNS for "email.example.com":
email.example.com. IN MX 20 m3.example.com. ; on s3
email.example.com. IN MX 20 m1.example.com. ; on s1
email.example.com. IN MX 20 m2.example.com. ; on s2
email.example.com. IN MX 20 mx.example.com. ; in each of s1 , s2 , s3
email.example.com. IN MX 25 s3.example.com.
email.example.com. IN MX 25 s1.example.com.
email.example.com. IN MX 25 s2.example.com.
Below CNAME was added for backward compatibility:
mail.example.com. IN CNAME email.example.com.
i think becasue of above DNS record, iRedMail used "mail" in some data,
so i will remove above entry, iRedMail need to use the "email".
i/we also have, these CNAME DNS records:
autoconfig.example.com. IN CNAME email.example.com.
autoconfig.email.example.com. IN CNAME email.example.com.
autodiscover.example.com. IN CNAME email.example.com.
autodiscover.email.example.com. IN CNAME email.example.com.
and i/we have these Service DNS records, to find the service provider server:
_autodiscover._tcp.example.com. IN SRV 10 10 443 m3.example.com.
_autodiscover._tcp.example.com. IN SRV 10 10 443 m1.example.com.
_autodiscover._tcp.example.com. IN SRV 10 10 443 m2.example.com.
_autodiscover._tcp.example.com. IN SRV 10 10 443 mx.example.com.
_autodiscover._tcp.example.com. IN SRV 25 10 443 s3.example.com.
_autodiscover._tcp.example.com. IN SRV 25 10 443 s1.example.com.
_autodiscover._tcp.example.com. IN SRV 25 10 443 s2.example.com.
_autodiscover._tcp.email.example.com. IN SRV 10 10 443 m3.example.com.
_autodiscover._tcp.email.example.com. IN SRV 10 10 443 m1.example.com.
_autodiscover._tcp.email.example.com. IN SRV 10 10 443 m2.example.com.
_autodiscover._tcp.email.example.com. IN SRV 10 10 443 mx.example.com.
_autodiscover._tcp.email.example.com. IN SRV 25 10 443 s3.example.com.
_autodiscover._tcp.email.example.com. IN SRV 25 10 443 s1.example.com.
_autodiscover._tcp.email.example.com. IN SRV 25 10 443 s2.example.com.
;
_caldavs._tcp.example.com. IN SRV 10 10 443 m3.example.com.
_caldavs._tcp.example.com. IN SRV 10 10 443 m1.example.com.
_caldavs._tcp.example.com. IN SRV 10 10 443 m2.example.com.
_caldavs._tcp.example.com. IN SRV 10 10 443 mx.example.com.
_caldavs._tcp.example.com. IN SRV 25 10 443 s3.example.com.
_caldavs._tcp.example.com. IN SRV 25 10 443 s1.example.com.
_caldavs._tcp.example.com. IN SRV 25 10 443 s2.example.com.
_caldavs._tcp.email.example.com. IN SRV 10 10 443 m3.example.com.
_caldavs._tcp.email.example.com. IN SRV 10 10 443 m1.example.com.
_caldavs._tcp.email.example.com. IN SRV 10 10 443 m2.example.com.
_caldavs._tcp.email.example.com. IN SRV 10 10 443 mx.example.com.
_caldavs._tcp.email.example.com. IN SRV 25 10 443 s3.example.com.
_caldavs._tcp.email.example.com. IN SRV 25 10 443 s1.example.com.
_caldavs._tcp.email.example.com. IN SRV 25 10 443 s2.example.com.
;
_carddavs._tcp.example.com. IN SRV 10 10 443 m3.example.com.
_carddavs._tcp.example.com. IN SRV 10 10 443 m1.example.com.
_carddavs._tcp.example.com. IN SRV 10 10 443 m2.example.com.
_carddavs._tcp.example.com. IN SRV 10 10 443 mx.example.com.
_carddavs._tcp.example.com. IN SRV 25 10 443 s3.example.com.
_carddavs._tcp.example.com. IN SRV 25 10 443 s1.example.com.
_carddavs._tcp.example.com. IN SRV 25 10 443 s2.example.com.
_carddavs._tcp.email.example.com. IN SRV 10 10 443 m3.example.com.
_carddavs._tcp.email.example.com. IN SRV 10 10 443 m1.example.com.
_carddavs._tcp.email.example.com. IN SRV 10 10 443 m2.example.com.
_carddavs._tcp.email.example.com. IN SRV 10 10 443 mx.example.com.
_carddavs._tcp.email.example.com. IN SRV 25 10 443 s3.example.com.
_carddavs._tcp.email.example.com. IN SRV 25 10 443 s1.example.com.
_carddavs._tcp.email.example.com. IN SRV 25 10 443 s2.example.com.
;
_imap._tcp.example.com. IN SRV 0 0 143 .
_imap._tcp.email.example.com. IN SRV 0 0 143 .
;
_imaps._tcp.example.com. IN SRV 10 10 993 m3.example.com.
_imaps._tcp.example.com. IN SRV 10 10 993 m1.example.com.
_imaps._tcp.example.com. IN SRV 10 10 993 m2.example.com.
_imaps._tcp.example.com. IN SRV 10 10 993 mx.example.com.
_imaps._tcp.example.com. IN SRV 25 10 993 s3.example.com.
_imaps._tcp.example.com. IN SRV 25 10 993 s1.example.com.
_imaps._tcp.example.com. IN SRV 25 10 993 s2.example.com.
_imaps._tcp.email.example.com. IN SRV 10 10 993 m3.example.com.
_imaps._tcp.email.example.com. IN SRV 10 10 993 m1.example.com.
_imaps._tcp.email.example.com. IN SRV 10 10 993 m2.example.com.
_imaps._tcp.email.example.com. IN SRV 10 10 993 mx.example.com.
_imaps._tcp.email.example.com. IN SRV 25 10 993 s3.example.com.
_imaps._tcp.email.example.com. IN SRV 25 10 993 s1.example.com.
_imaps._tcp.email.example.com. IN SRV 25 10 993 s2.example.com.
;
_pop3._tcp.example.com. IN SRV 0 0 110 .
_pop3._tcp.email.example.com. IN SRV 0 0 110 .
;
_pop3s._tcp.example.com. IN SRV 10 10 995 m3.example.com.
_pop3s._tcp.example.com. IN SRV 10 10 995 m1.example.com.
_pop3s._tcp.example.com. IN SRV 10 10 995 m2.example.com.
_pop3s._tcp.example.com. IN SRV 10 10 995 mx.example.com.
_pop3s._tcp.example.com. IN SRV 25 10 995 s3.example.com.
_pop3s._tcp.example.com. IN SRV 25 10 995 s1.example.com.
_pop3s._tcp.example.com. IN SRV 25 10 995 s2.example.com.
_pop3s._tcp.email.example.com. IN SRV 10 10 995 m3.example.com.
_pop3s._tcp.email.example.com. IN SRV 10 10 995 m1.example.com.
_pop3s._tcp.email.example.com. IN SRV 10 10 995 m2.example.com.
_pop3s._tcp.email.example.com. IN SRV 10 10 995 mx.example.com.
_pop3s._tcp.email.example.com. IN SRV 25 10 995 s3.example.com.
_pop3s._tcp.email.example.com. IN SRV 25 10 995 s1.example.com.
_pop3s._tcp.email.example.com. IN SRV 25 10 995 s2.example.com.
;
_sieve._tcp.example.com. IN SRV 10 10 4190 m3.example.com.
_sieve._tcp.example.com. IN SRV 10 10 4190 m1.example.com.
_sieve._tcp.example.com. IN SRV 10 10 4190 m2.example.com.
_sieve._tcp.example.com. IN SRV 10 10 4190 mx.example.com.
_sieve._tcp.example.com. IN SRV 25 10 4190 s3.example.com.
_sieve._tcp.example.com. IN SRV 25 10 4190 s1.example.com.
_sieve._tcp.example.com. IN SRV 25 10 4190 s2.example.com.
_sieve._tcp.email.example.com. IN SRV 10 10 4190 m3.example.com.
_sieve._tcp.email.example.com. IN SRV 10 10 4190 m1.example.com.
_sieve._tcp.email.example.com. IN SRV 10 10 4190 m2.example.com.
_sieve._tcp.email.example.com. IN SRV 10 10 4190 mx.example.com.
_sieve._tcp.email.example.com. IN SRV 25 10 4190 s3.example.com.
_sieve._tcp.email.example.com. IN SRV 25 10 4190 s1.example.com.
_sieve._tcp.email.example.com. IN SRV 25 10 4190 s2.example.com.
;
_smtps._tcp.example.com. IN SRV 10 10 465 m3.example.com.
_smtps._tcp.example.com. IN SRV 10 10 465 m1.example.com.
_smtps._tcp.example.com. IN SRV 10 10 465 m2.example.com.
_smtps._tcp.example.com. IN SRV 10 10 465 mx.example.com.
_smtps._tcp.example.com. IN SRV 25 10 465 s3.example.com.
_smtps._tcp.example.com. IN SRV 25 10 465 s1.example.com.
_smtps._tcp.example.com. IN SRV 25 10 465 s2.example.com.
_smtps._tcp.email.example.com. IN SRV 10 10 465 m3.example.com.
_smtps._tcp.email.example.com. IN SRV 10 10 465 m1.example.com.
_smtps._tcp.email.example.com. IN SRV 10 10 465 m2.example.com.
_smtps._tcp.email.example.com. IN SRV 10 10 465 mx.example.com.
_smtps._tcp.email.example.com. IN SRV 25 10 465 s3.example.com.
_smtps._tcp.email.example.com. IN SRV 25 10 465 s1.example.com.
_smtps._tcp.email.example.com. IN SRV 25 10 465 s2.example.com.
;
_submission._tcp.example.com. IN SRV 10 10 587 m3.example.com.
_submission._tcp.example.com. IN SRV 10 10 587 m1.example.com.
_submission._tcp.example.com. IN SRV 10 10 587 m2.example.com.
_submission._tcp.example.com. IN SRV 10 10 587 mx.example.com.
_submission._tcp.example.com. IN SRV 25 10 587 s3.example.com.
_submission._tcp.example.com. IN SRV 25 10 587 s1.example.com.
_submission._tcp.example.com. IN SRV 25 10 587 s2.example.com.
_submission._tcp.email.example.com. IN SRV 10 10 587 m3.example.com.
_submission._tcp.email.example.com. IN SRV 10 10 587 m1.example.com.
_submission._tcp.email.example.com. IN SRV 10 10 587 m2.example.com.
_submission._tcp.email.example.com. IN SRV 10 10 587 mx.example.com.
_submission._tcp.email.example.com. IN SRV 25 10 587 s3.example.com.
_submission._tcp.email.example.com. IN SRV 25 10 587 s1.example.com.
_submission._tcp.email.example.com. IN SRV 25 10 587 s2.example.com.
;
_caldavs._tcp.example.com. IN TXT "path=/SOGo/dav/"
_caldavs._tcp.email.example.com. IN TXT "path=/SOGo/dav/"
_carddavs._tcp.example.com. IN TXT "path=/SOGo/dav/"
_carddavs._tcp.email.example.com. IN TXT "path=/SOGo/dav/"
i/we don't want anyone or any mail-client to connect with non-secure port 143 or 110 , so they are disabled in above DNS-records.
What will (FORCE) make sure that TLS/SSL is always used for IMAPS/port-993 & POP3S/port-995 , and what will force Mail-server to disable IMAP/port-143 & POP3/port-110 usage completely ?
SPF TXT record:
example.com. IN TXT (
"v=spf1 mx:m3.example.com mx:m1.example.com mx:m2.example.com mx:mx.example.com mx:s3.example.com mx:s1.example.com mx:s2.example.com mx:email.example.com ip4:ipv4-1 ip4:ipv4-2 ip4:ipv4-3 ip6:ipv6-1 ip6:ipv6-2 ip6:ipv6-3"
" ip6:ipv6-11 ip6:ipv6-22 ip6:ipv6-33 ip6:ipv6-15 ip6:ipv6-25 ip6:ipv6-35 -all")
;
email.example.com. IN TXT (
"v=spf1 mx:m3.example.com mx:m1.example.com mx:m2.example.com mx:mx.example.com mx:s3.example.com mx:s1.example.com mx:s2.example.com mx:email.example.com ip4:ipv4-1 ip4:ipv4-2 ip4:ipv4-3 ip6:ipv6-1 ip6:ipv6-2 ip6:ipv6-3"
" ip6:ipv6-11 ip6:ipv6-22 ip6:ipv6-33 ip6:ipv6-15 ip6:ipv6-25 ip6:ipv6-35 -all")
;
just added the DKIM info in DNS, which is provided by the iRedMail:
dkim._domainkey.example.com. 3600 IN TXT (
"v=DKIM1; p="
"..."
"..."
"..."
"...")
For my/our MAIL-SERVER configuration/layout , iRedMail instance will have to run in each 3 servers : s1 , s2 , s3.
Can they(Mail-servers) be kept synced (uptodate) with each-others ? ( that is, a user who registered in "mx" in s3 will be able to use email services from mx in s1 or mx in s2 ? even when "mx" in s3/m3/s3 mail-server hosts have gone down ? )
Can the SQL DATA for users in mx in s1 be REPLICATED into the other two mx : mx in s2 , mx in s3 ?
so like above, i/we want to replicate mx users of mx in s2 into : mx in s1 , mx in s3.
likewise i/we also want to replicate mx users of mx in s3 into : mx in s1 , mx in s2.
mx will hold data for few specific users, who will travel lot or moved into another geo-location.
How to enable IPv6 based email sending & receiving in iRedMail ?
i/we want to make sure IPv6 based Mail-server functions are working, because we want to transfer m1 , m2 , m3 , mx Mail-servers into different physical Server ( s4 , s5 , s6 ) which are only IPv6 capable, don't have IPv4 connectivity.
( so later it will be : s1 , s2 , s3 , m1 & mx in s4 , m2 & mx in s5 , m3 & mx in s6 )
iRedMail did not load Let'sEncrypt (LE) app (and did not create LE based SSL/TLS CERT) !
DANE DNS records are checked by the MTA/postfix app ? is it adding a meta-data with each email for indicating the status of DANE based verification ?
Did not see any DMARC info from iRedMail installation.
THANKS for this great package, and for your help.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EDIT : i added more info/data, questions, etc after my initial post , perhaps the webpage reader/viewer should refresh the webpage, & read again this entire-post, Thanks.
EDIT : adding the bbcode *[*code*]*...*[*/code*]* around the code to look/appear better.