Проверка IP-адреса по чёрным спискам DNS
Для проверки попадания почтового сервера в чёрные списки можно воспользоваться множеством различных веб-сервисов вроде 2ip.ru/spam/. Однако к веб-сервисам обычно приходится обращаться, когда почта уже не уходит. Лучше было бы проверять наличие IP-адреса почтового сервера в таких списках периодически, скриптом, запускаемым через планировщик задач или систему мониторинга.
Скрипт
Я подготовил такой скрипт, который можно взять по ссылке dnsbl.sh. Достаточно вызвать скрипт, указав ему в качестве аргумента проверяемый IP-адрес:
./dnsbl.sh 188.234.148.179
Если скрипт ничего не вывел, значит проверяемого IP-адреса нет в проверяемых скриптом чёрных списках. В противном случае в каждой строчке будет выведена ссылка на веб-страницу чёрного списка и имя чёрного списка, по которому можно определить причину блокировки.
Добавление нового чёрного списка
Добавить новый чёрный список в скрипт можно следующим образом. В качестве примера возьмём чёрный список b.barracudacentral.org
. Во-первых, добавим его к перечню всех проверяемых чёрных списков:
dnsbl_list="$dnsbl_list b.barracudacentral.org"
Теперь заменим в доменном имени чёрного списка все точки и знаки минуса на символы подчёркивания, так что получится строка b_barracudacentral_org
.
Добавим к получившейся строке слева текст dns_url_
и определим переменную, в которой записана веб-страница с описанием чёрного списка:
dnsbl_url_b_barracudacentral_org="http://www.barracudacentral.org/"
Большинство чёрных списков при наличии IP-адреса в списке блокировки возвращают в ответ IP-адрес 127.0.0.2
. Но некоторые списки кроме стандарного ответа могут возвращать один или больше IP-адресов вида 127.0.0.x
. В таком случае по значению IP-адреса можно определить, за что именно был заблокирован искомый IP-адрес.
Переставим октеты IP-адреса из ответа и заменим точки на символы подчёркивания. Получившуюся строку через можно совместить со строкой домена и префиксом dnsb_response_
вот так:
"dnsb_response_" + "b_barracudacentral" + "2_0_0_127"
Переменной с таким именем можно присвоить описание причины блокировки, вот так:
dnsbl_response_b_barracudacentral_org_2_0_0_127="BARRACUDACENTRAL"
Отключение чёрного списка
Некоторые чёрные списки просто пропадают и перестают отвечать на запросы, а некоторые уходят с шумом, возвращая ответ о наличии в нём любого IP-адреса.
Для временного отключени проверки по списку достаточно закомментировать одну только строку вида dnsbl_list="$dnsbl_list DNSBL"
, добавив к ней слева символ решётке.
Для окончательного удаления чёрного списка нужно удалить указанную строку и все связанные с ней строки вида dnsbl_url_DNSBL
и dnsbl_response_DNSBL_*
.
Дополнительные материалы
На сайте www.dnsbl.com публикуются новости о пропавших без вести и закрывшихся списках блокировки, а также о новых списках.