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



Отслеживание операций с файлами и сетью - часть 9


247 251 276 285 286 292 293 296 297 298 4244 4709 4991

4993 14697 20946 21065 24530 25080 27266 27603

/usr/bin/tcsh:

4246 4249 5159 14699 20949

/usr/bin/zsh:

24532 25082 27292 27564

/usr/dt/lib/libXm.so.S: 21065 21080

/usr/lib/ld.so.1:

115 117 128 145 150 152 167 171 184 191 200 222 232 238

247 251 267 276 285 286 292 293 296 297 298 4244 4246 4249 4709 4991

4993 5159 14697 14699 20946 20949 21065

21080 24530 24532 25080 25082 25947 27266 27273 27291

27292 27306 27307 27308 27563 27564 27603

/usr/lib/libc.so.1:

267 4244 4246 4249 4991 4993 5159 14697 14699 20949

21065 21080 24530 24532 25080 25082 25947 27273 27291

27292 27306 27307 27308 27563 27564 27603

Чтобы показать последний код, относящийся к отслеживанию операций с файлами и сетью в Unix, вернемся к поиску запущенных IRC-po-ботов из приведенного ранее примера. Существует более надежный способ найти такие процессы-демоны, чем изучение таблицы процессов. Пользователь может скрыть имя робота, переименовав исполняемый файл, но для того чтобы спрятать сетевое соединение, ему придется очень хорошо потрудиться. В большинстве случаев это соединение с сервером на портах 6660-7000. Программа Isof позволяет без труда отыскивать такие процессы:

Slsofexec = "/usr/local/bin/lsof" Slsofflag = "-FLOc -iTCP: 6660-7000";

ft это срез хэша. используемый для предварительной загрузки

и таблицы хэшей, существование этих ключей мы будем проверять

и позже. Обычно это записывается так:

ft %approvedclients = ("ircll" => undef, "xirc" => undef, ...);

ft (но такой вариант - отличная идея, воплощенная Марком-

ft Джейсоном Доминусом(МагК-иа50п Dominus))

@>approvedclients{"ircH" , "xirc" , "pirc"} = ();

open(LSOF, "$lsofexec $lsofflag|") or die "Невозможно запустить $lsofexec:$! \n" ;

while(<LSOF>){

($pid,$command,$login) = /p(\d+)\000

c(.+)\000 L(\w+)\000/x;

warn "$login использует неразрешенный клиент с именем




Содержание  Назад  Вперед