Подробнее про RBL предлагаю почитать тут, а сегодня мы рассмотрим способ, при помощи которого мы сразу узнаем, попал ли IP нашего почтового сервера в какой либо RBL.
Ручная проверка будет довольно продолжительно и нудный, существуют и веб-чекалки для подобной проверки, но мы будем обходиться своими силами. Автоматизируем все с помощью Nagios, PHP, Net_DNSBL и Console_Getopt.
Само собой подразумевается что вы имеете установленный Nagios.
Установите требуемые пакеты PEAR
# pear install -a Net_DNSBL Console_Getopt
Сам код довольно простой:
#!/opt/php/bin/php<?phpdefine ('SERVICE_STATUS', 'Service Status:'); require_once 'Console/Getopt.php'; require_once 'Net/DNSBL.php'; $dnsbl = new Net_DNSBL();
$shortoptions = 'H:V::r:';
$longoptions = array('hostname=', 'version==', 'rbls=');$con = new Console_Getopt;
$args = $con->readPHPArgv();
array_shift($args);
$options = $con->getopt2($args, $shortoptions, $longoptions);foreach(
$options[0] as $option) {if (
$option[0] == 'H' || $option[0] == '--hostname') {
$hostname = $option[1];}
if (
$option[0] == 'r' || $option[0] == '--rbls') {
$rbls_temp = $option[1];}
}if (!isset(
$hostname) || !isset($rbls_temp)) {echo
SERVICE_STATUS.' Unknown'."n";
exit(3);
}
else {
$rbls = explode(',', $rbls_temp);
$dnsbl->setBlacklists($rbls);
if (
$dnsbl->isListed($hostname))
{echo SERVICE_STATUS.' Critical - Listed in '.$dnsbl->getListingBl($hostname)."n";
exit(2);
} else {
echo SERVICE_STATUS.' OK - Not Listed in supplied DNSBLs'."n";
exit(0);}
}
?>
Сохраните данный скрипт и положите его в директорию плагинов Nagios (/opt/nagios/libexec) , после чего добавьте следующие строчки в /etc/opt/nagios/checkcommands.cfg:
define command{ command_name check_dnsbl command_line $USER1$/check_dnsbl -H $HOSTADDRESS$ -r $ARG1$ }
И следующее в /etc/opt/nagios/services.cfg:
define service{ use generic-service host_name your.mail.server service_description DNSBL is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 3 retry_check_interval 1 contact_groups nohn notification_interval 120 notification_period 24x7 notification_options w,u,c,r check_command check_dnsbl!bl.spamcop.net,some.other.comma.separated.rbls }
После всего перезапустите Nagios:
# /etc/init.d/nagios restart
Постовой
Задумал купить себе EEE PC. Перерыл все интернет-магазины и остановился на tradeplanet.ru. Огромный выбор моделей и приятные цены. Всем рекомендую.
Сделаем вам монтаж отопления в загородном доме. Быстро, качественно, недорого!