Настройка локального DNSBL(RBL) сервера
В данной статье рассматривается пример установки и настройки локального DNSBL(RBL) сервера для использования его в Postfix. Для простоты DNSBL-сервер, DNS-сервер BIND и Postfix ставятся все вместе на один компьютер. Используется дистрибутив Gentoo Linux, программы rbldnsd, BIND, rblcheck и Postfix.
- Настройка rbldnsd
- Настройка DNS-сервера BIND
- Настройка Postfix
- Проверка
- Полезные ссылки
Настройка rbldnsd
Для начала ставим rbldnsd:
# emerge rbldnsd
Всё просто
Далее нам необходимо скачать несколько DNSBL-зон с сайтов ведущих их. Используется входящая в состав дистрибутива программа rsync:
# rsync -tvPz rsync.dsbl.org::dsbl/rbldns-list.dsbl.org /var/db/rbldnsd/rbldns-list.dsbl.org
# rsync -tvPz rsync-mirrors.uceprotect.net::RBLDNSD-ALL/dnsbl-1.uceprotect.net /var/db/rbldnsd/dnsbl-1.uceprotect.net
# rsync -tvPz rsync.spamcannibal.org::zonefiles/bl.spamcannibal.org.in.ip4set.rbl /var/db/rbldnsd/bl.spamcannibal.org.in.ip4set.rbl
Для начала хватит – в полезных ссылках вы можете найти ещё несколько сайтов предоставляющих свободный доступ к своим DNSBL-спискам.
Настраиваем rbldnsd в файле /etc/conf.d/rbldnsd:
OPTIONS=”-q -u rbldns -r /var/db/rbldnsd -b 127.0.0.1/530 -p /var/run/rbldnsd.pid list.dsbl.org:ip4tset:rbldns-list.dsbl.org /
dnsbl-1.uceprotect.net:ip4tset:dnsbl-1.uceprotect.net rbl.spamcannibal.org:ip4set:bl.spamcannibal.org.in.ip4set.rbl”
Обратите внимание что rbldnsd будет использовать UDP-порт 530,- 53-й порт оставлен для bind’а.
Запускаем rbldnsd и добавляем в уровень запуска по-умолчанию:
# /etc/init.d/rbldnsd start
# rc-update add rbldnsd default
Настройка DNS-сервера BIND
Устанавливаем:
# emerge bind
Настраиваем файл /etc/bind/named.conf:
zone “list.dsbl.org” IN {
type forward;
forward first;
forwarders {
127.0.0.1 port 530;
};
};
zone “dnsbl-1.uceprotect.net” IN {
type forward;
forward first;
forwarders {
127.0.0.1 port 530;
};
};
zone “rbl.spamcannibal.org” IN {
type forward;
forward first;
forwarders {
127.0.0.1 port 530;
};
};
- таким образом мы указываем bind’у обращаться по поводу указанных зон на наш rbldnsd слушающий на 530 UDP порту. Запускаем bind и добавляем в уровень запуска по-умолчанию:
# /etc/init.d/named start
# rc-update add named default
И не забываем подправить /etc/resolv.conf для обращения к нашему локальному bind’у:
nameserver 127.0.0.1
Настройка Postfix
Предполагается что в целом postfix у вас настроен, подправим только один раздел в файле /etc/postix/main.cf:
smtpd_sender_restrictions =
reject_rbl_client list.dsbl.org,
reject_rbl_client dnsbl-1.uceprotect.net,
reject_rbl_client rbl.spamcannibal.org
мы добавим только строки reject_rbl_client …, будем считать что остальные ограничения вы выставите сами
Запускаем postfix и добавляем в уровень запуска по-умолчанию:
# /etc/init.d/postfix start
# rc-update add postfix default
Проверка
Для проверки удобно установить программу rblcheck:
# emerge rblcheck
К примеру хватанём IP-адрес из файла DNSBL-зоны DSBL:
# tail -n1 /var/db/rbldnsd/rbldns-list.dsbl.org
1.2.3.4
(тут адрес придуман)
и проверим назовёт ли его спамером наш rbldnsd сервер:
# rblcheck -s list.dsbl.org 1.2.3.4
1.2.3.4 RBL filtered by bl.dsbl.org
- аха, ответ положительный! Если же IP-адрес отсутствует в данной DNSBL зоне, то ответ будет not RBL filtered by …
кратенько, как видите ничего сложного, и возможно без проблем установить свой выделенный DNSBL сервер для использования его группой почтовых серверов и не только…