Perl для системного администрирования


Опасность на проводе - часть 9


use Net::PcapUtils;

use NetPaeket::Ethernet; use NetPacket::IP;

use Net::Ping;

# локальная сеть $localnet = "192.168.1";

# фильтр для поиска SYN-пакетов не из локальной сети $prog = "tcp[13] = 2 and src net not Slocalnet";

$| =1: tt снимаем буферизацию с STDIO

sub grab_ip_and_pmg{

my ($arg,$hdr,$pkt) = @_ ;

ft получаем IP-адрес источника $src in = lietPacket: : IP->(Jecoae(

print "$src_]p is ". (($p-'>ping($src_ip)} 9

"alive" : "unreachable"). "\,i" unless $cache{$src_ip}++; }

Теперь, когда мы достигли своей цели и написали целиком на Perl (хоть и с помощью некоторых модулей, являющихся Perl-оболочками для программ на С) программу, позвольте мне рассказать, чем закончилась эта история.

В воскресенье утром центральная группа поддержки из другого отдела нашла ошибку в настройках маршрутизатора. Студент в одном из общежитий установил на свою машину Linux и неверно настроил демон маршрутизации сети. Эта машина посылала широковещательные сообщения в университетскую сеть о том, что она является маршрутом по умолчанию. Неправильно настроенный маршрутизатор, обслуживающий наш отдел, услышав это сообщение, безропотно изменил таблицу маршрутизации и добавил второй маршрут во внешний мир. Пакеты будут приходить из внешнего мира, и этот маршрутизатор, честно выполняя свои обязанности, поровну разделит ответы между двумя маршрутами. Такое распределение, когда «один пакет посылается настоящему маршрутизатору, другой посылается на машину студента, один - настоящему маршрутизатору, другой - на машину студента», создало асимметричную ситуацию маршрутизации. Когда фиктивный маршрут был удален и были задействованы фильтры, предотвращающие появление такой ситуации в дальнейшем, наша жизнь вернулась к нормальному ритму. Я не буду говорить, что стало со студентом, вызвавшим эту проблему.

В этом разделе вы познакомились с применением модулей Net: :Р. Net: : PcapUtils и семейства модулей NetPacket: : * для диагностики. Не останавливайтесь на этом! Эти модули позволяют написать множество программ, способных помочь разобраться с проблемами в сети или активно наблюдать за сетью в поисках опасности.




- Начало -  - Назад -  - Вперед -



Книжный магазин