ЗАМЕТАЕМ СЛЕДЫ В LINUX Дмитрий Докучаев aka Forb Спецвыпуск Xakep, номер #032, стр. 032-062-2 После тестирования я убедился, что идеальных логвайперов не бывает, ибо для каждого отдельно взятого вайпера выполнялось максимум два критерия. Что сказать, лень программистов берет свое, да и системы отличаются своей капризностью (в Linux, например, структура логов отличается от структуры в SunOS). Ты спросишь, как осуществлялась проверка всех трех критериев? Отвечаю: самым тщательнейшим образом. Все данные, которые я намеренно записал в логи, должны быть уничтожены коварным логвайпером. Скорость проверялась при помощи команды интерпретатора time -p. Маскировка выяснялась при завершении работы программы (нередко фатальном)... ТЕСТ - ВСЕМУ ГОЛОВА! Для обзора потребовалось найти шесть добровольцев. Почему шесть? Потому что я хотел отличиться от других своей неординарностью, чтобы добиться более объективной оценки ;). Жертвами стали следующие логвайперы: vanish2, grlogwipe, zap3, wipe, zap2, gh0st. Авторам отдельное спасибо за их код и баги, которые намного повышали наглядность моего обзора, приближая его к реальному. Полигоном являлись три независимых и самых популярных unix-like оси: Linux RedHat 7.1, FreeBSD 4.7 и SunOS 5.8. Я уверен, что ты имел дело, по крайней мере, с одной из упомянутых. Обзор проводился в трезвом состоянии и завершился без всяких запарок и эксцессов, поэтому не вздумай сомневаться в моей искренности. VANISH2 - ЛУЧШЕЕ ЧИСТЯЩЕЕ СРЕДСТВО ДЛЯ ПОРТАТИВНОГО УНИТАЗА ;) Первым добровольцем стал Vanish2 - логвайпер для правильной оси. Испытывался в Linux, как и было написано в комментариях к коду. Представляет собой отдельный хеадер и сишник без всяких Makefile (вот оно - гуманное отношение программистов к людям!). Ну да ладно, руки у меня растут откуда надо, и компилить я еще не разучился. Быстро набираю gcc vanish2.c -o vanish2 и... не получаю ни одной ошибки (странновато, правда? ;)). Далее идет ознакомление с параметрами, которые должны быть переданы логвайперу. А параметры такие: строка для чистки, ip-адрес и hostname (резолвить адреса программисты, видимо, не научились, поэтому поручили это нам - бедным юзерам). Выбираю фактор, который хочу испытать на полную катушку, - это скорость. Поэтому тестирование происходило на 486dx процессоре. Автор Ваниша обещал, что будут вычищены все текстовые логи (messages, secure, xferlog, maillog, httpd.access_log и httpd.error_log, а также бинарные wtmp, utmp и lastlog), но он не сказал время, за которое вайпер справится с работой. Ухмыльнувшись, запускаю клинер и ухожу пить кофе. Какого же было мое удивление, когда к моему приходу процесс не сдвинулся с места! Чистка логов заняла чуть больше 10 минут. Даже для 486 процессора это очень много (я пытался приблизить ситуацию к реальной, когда вайперу придется обрабатывать гигабайтный wtmp-файл). Посмотрев в сорцы, я понял, что в скорости виноват именно Ваниш, а никак не система. Программист решил пролистывать каждый рекорд wtmp до встречи с шаблоном, хотя правильнее бы было смещаться от конца файла... Со скоростью все ясно. Просмотрев логи, я увидел, что мои следы действительно исчезли. Временных файлов на месте замечено не было, равно как и core. |