headermask image

Используем Net_DNSBL и Nagios для проверки, находится ли наш сервер в RBL

Подробнее про 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. Огромный выбор моделей и приятные цены. Всем рекомендую.

Сделаем вам монтаж отопления в загородном доме. Быстро, качественно, недорого!

Похожие посты
  • Мониторим удаленный Linux сервер используя Nagios
  • Как мониторить свитчи и их активные порты с помощью Nagios
  • WSUS станет опциональной ролью для Windows Server 2008 Server Manager
  • Установка и настройка Nagios 3.0 в Red Hat Linux
  • Мониторим активные сессии VPN и температуру с помощью Nagios
  • Мониторим Windows сервер с помощью Nagios
  • Почти готов Windows Server 2008, плагин для Firefox, создание своего дистриба Ubuntu
  • Process Monitor – Мониторинг для продвинутых
  • Демонстрация Exchange Server 2007
  • Веб-трансляция: Новые приемы управления серверами в Windows Server 2008: Server Manager и PowerShell