Zimbra khuyến nghị sử dụng caching named server trong trường hợp bạn triển khai split domain (hệ thống nằm sau firewall/nat), Zimbra cần MX và A record để cài đặt và vận hành. Ngoài ra spamassassin thực hiện rất nhiều dns query đến các cơ sở dữ liệu blacklist nên việc sử dụng trực tiếp các DNS server phổ biến (google, opendns,….) sẽ dẫn đến việc bị hạn chế quota query.
Spamassassin khuyến cáo sử dụng non-forwarding caching DNS servers vì thế ta nên sử dụng BIND hoặc UNBOUND DNS server trong môi trường production. Bạn có thể sử dụng dnsmasq trong môi trường LAB.
LAB có domain là zimilab.com, tên server là mail.zimilab.com, địa chỉ IP là 192.168.253.16
Bước 1: tiến hành cài đặt bind
#yum install net-tools
#yum install bind bind-utils
Sao lưu file named.conf
#cp /etc/named.conf /etc/named.conf.orig
Bước 2: Cấu hình file named.conf
#vi /etc/named.conf
//
// named.conf
//

options {
listen-on port 53 { 127.0.0.1; };
//    listen-on-v6 port 53 { ::1; };
forwarders { 1.1.1.1; 9.9.9.9; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
recursing-file “/var/named/data/named.recursing”;
secroots-file “/var/named/data/named.secroots”;
allow-query { localhost; };

recursion yes;

dnssec-enable yes;
dnssec-validation no;

/* Path to ISC DLV key */
bindkeys-file “/etc/named.root.key”;

managed-keys-directory “/var/named/dynamic”;

pid-file “/run/named/named.pid”;
session-keyfile “/run/named/session.key”;
};

logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};

zone “.” IN {
type hint;
file “named.ca”;
};

zone “zimilab.com” in {
type master;
file “zimilab.com”;
};

include “/etc/named.rfc1912.zones”;
include “/etc/named.root.key”;

// Disable forwarding for DNSBL queries
// https://wiki.apache.org/spamassassin/CachingNameserver#Non-forwarding
zone “multi.uribl.com” { type forward; forward first; forwarders {}; };
zone “dnsbl.sorbs.net” { type forward; forward first; forwarders {}; };
zone “combined.njabl.org” { type forward; forward first; forwarders {}; };
zone “activationcode.r.mail-abuse.com” { type forward; forward first; forwarders {}; };
zone “nonconfirm.mail-abuse.com” { type forward; forward first; forwarders {}; };
zone “iadb.isipp.com” { type forward; forward first; forwarders {}; };
zone “bl.spamcop.net” { type forward; forward first; forwarders {}; };
zone “fulldom.rfc-ignorant.org” { type forward; forward first; forwarders {}; };
zone “list.dnswl.org” { type forward; forward first; forwarders {}; };
zone “blackholes.mail-abuse.org” { type forward; forward first; forwarders {}; };
zone “bl.score.senderscore.com” { type forward; forward first; forwarders {}; };
zone “zen.spamhaus.org” { type forward; forward first; forwarders {}; };

Bạn tắt listen-on-v6 port 53 { ::1; }; (thêm // vào đầu hoặc xóa dòng này đi) vì ta không dùng ipv6.
Thêm forwarders { 1.1.1.1; 9.9.9.9; }; vào
Thêm zone zimilab.com vào.
Cấu hình không chuyển tiếp các query liên quan DNSBL.

Bước 3: tạo zone file
Trong /var/named, tiến hành tạo zone file zimilab.com với nội dung sau:
#vi /var/named/zimilab.com
$TTL 86400
@ IN SOA @ mail.zimilab.com. (
42                 ; Serial
3H                ; Refresh
15M              ; Retry
1W                ; Expire
1D                 ; Minimum
)
@                  IN NS        mail.zimilab.com.
IN MX 10 mail.zimilab.com.
IN A          192.168.253.16
mail              IN A          192.168.253.16
www             IN A          192.168.253.16

Chú ý các dấu “.” phía sau domain.
zone file zimbra.com này cần thuộc user named.
#chown named:named /var/named/zimbra.com

Bước 4: hoàn tất
Tiến hành khởi động bind
#systemctl start named
# systemctl enable named
Kiểm tra xem trạng thái có ok không
#systemctl status named
Edit file /etc/resolv.conf và thay đổi nội dung như sau:
#vi /etc/resolv.conf
search zimilab.com
nameserver 127.0.0.1
Để cấu hình này được lưu lại sau khi bạn khởi động server, bạn cần thay đổi trong /etc/sysconfig/network-script/ifconf-eth0 tham số DNS:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=”Ethernet”
PROXY_METHOD=”none”
BROWSER_ONLY=”no”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”no”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”eth0″
DEVICE=”eth0″
ONBOOT=”yes”
IPADDR=”192.168.253.16″
PREFIX=”24″
GATEWAY=”192.168.253.254″
DNS1=”127.0.0.1″
DOMAIN=”zimilab.com”

Bước 5: kiểm tra
[root@mail named]# dig mx zimilab.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> mx zimilab.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44997
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;zimilab.com. IN MX

;; ANSWER SECTION:
zimilab.com. 86400 IN MX 10 mail.zimilab.com.

;; AUTHORITY SECTION:
zimilab.com. 86400 IN NS mail.zimilab.com.

;; ADDITIONAL SECTION:
mail.zimilab.com. 86400 IN A 192.168.253.16

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 27 17:28:23 +07 2020
;; MSG SIZE rcvd: 91

Đến đây bạn có thể bắt đầu cài đặt Zimbra. Sau khi cài đặt Zimbra xong, bạn có thể dùng lệnh sau để thử query đến uribl:
#host -tTXT 2.0.0.127.multi.uribl.com
2.0.0.127.multi.uribl.com descriptive text “permanent testpoint”