Навигация
Системное Администрирование Решения на открытых кодах Структура сети Компьютерные сети малых предприятий Сеть с централизованным управлением Управление с помощью групповых политик Организация почтового обслуживания Взаимодействие с глобальной сетью Безопасность Виртуализация Парядок настройки и определения неисправностей Средства управления системами Автоматизация установки программного обестичения Решение проблем с компьютером Разное
 
 
Избранное
Pathping. Traceroute на стероидах.
FreeNAS: создаём сетевое хранилище (NAS)
Iperf - утилита для тестирования пропускной способности сети.
Средство против «сетевой слепоты»
Преимущества и недостатки RAID 6
Дисковые массивы RAID
Надежнее, чем RAID 5
Унификация корпоративных коммуникаций
Exchange и SAN: не все так просто
Cisco против Meru
 
 
Организация почтового обслуживания » Spam - Используем Net_DNSBL и Nagios для проверки, находится ли наш сервер в 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



 
 
 
 
Поиск по сайту
Google Поиск


Яндекс поиск
 
 
Полезное
 
 
 
 
 
systemzone.ru 2014