![]() |
Чистим логи
Чистим логи
Сервак порутан, что дальше? Как что, спросите вы, ставить прокси, irc и т.п., смотреть, что тут есть интересного. Это все так. НО! Нельзя забывать о собственной безопасности. Первый шаг для того, чтобы остаться незамеченным на взломнном сервере – чистка логов. Если вы будете светиться в выводах команд w, who, last и некоторых других – долго вы на сервере не продержитесь. Конечно, можно протроянить систему, заменив эти утилиты своими или загрузить модули ядра, но первоначальное проникновение в систему так или иначе будет занесено в лог-файлы. А это не есть гуд. Безусловно, простейший способ очистки логов – команда типа: cat /dev/null > /var/log/wtmp и т.п. Действует отлично. Но опять-таки, есди администратор сервера не идиот, то он по выводу w поймет, что содержимое файла было удалено, а т.к. этот логфайл (я имею ввиду /var/run/utmp) доступен на запись лишь руту, то значит в систему проник хакер, получивший к тому же привилегии суперпользователя. Для очистки логов уже написаны десятки программ(vanish тот же), но написать лог-клинер самому – приятная и полезная задача. Я покажу вам небольшую программу(всего чуть более 100 строк), которая не только чистит логи, но и восстанавливает дату изменения файла в соответствии с предыдущей записью(т.е. не получится так, что файл изменен 21.12.05, а последний пользователь зарегистрировался в системе 20.12.05). Часть программы по очистке файла /var/log/lastlog я позаимствовал из какого-то простенького клинера, найденного в инете. Итак, открываем kate(я люблю использовать этот текстовый редактор, если работаю в иксах, к тому же прямо из него можно вызвать shell, т.е. компилишь исходник, гдядя на код, ну плюс мелочи типа подсветки синтаксиса :), и втыкаем в нижеприведенный исходник, тем более много комментариев, все должно быть понятно. Если будете тестить на лосалхосте, то, поскольку поиск записей в файле ведется по 3-м подстрокам, а при обычном локальном входе в систему поле host будет пустым, то сделайте так: ssh 127.0.0.1 и команда w покажет, что вы вошли с localhost. Теперь можно приниматься непосредственно за исходник. Код:
/* Это утилита для удаления записей из файлов /var/log/wtmp, /var/run/utmp и /var/log/lastlog Можно уменьшить размер путем удаления ненужной инфы из файла: strip deadlog После этого размер составляет ~4кБ. В этой статье я рассказал лишь о бинарных файлах логов. Но кроме них еще есть и текстовые файлы, куда также заносится информация о входах пользователей в систему. На память: команды w, who берут инфу из файла /var/run/utmp команда last – из /var/log/wtmp команда lastlog – из файла /var/log/lastlog Все... |
сори что поднимаю старую тему да темболее по глупому вопсросу, но всеже спрошу, так проще будет.
Что надо указывать в параметре терминал ? Вот к примеру тестю я локально даю такую команду ~/.../cleaner cupper 127.0.0.1 А_ТУТ_ЧЕ ? замечательно потер логи для команды last, теперь говорит что я некода в систему и невходил :) а вот для команд w && lastlog все как было так и осталось пробывал на месте А_ТУТ_ЧЕ указывать tty7 ssh но чувствую что чегото я недогоняю. Разясните кому несложно. uname -a Linux cupper-desktop 2.6.27-12-generic #1 SMP Thu Feb 5 09:26:35 UTC 2009 i686 GNU/Linux и время изменения файла нигде неменяет. Ошибка программы или изменилась сама структура чегототам в системе |
В раздел NIX? на статью не тянет.
зы тс оформи код, да и текст норм читать невозможно. |
gibson, дата поста как-бы "03.03.2006, 18:44" =)
cupper, можеш использовать другой логклинер, этот например http://hellknights.void.ru/releases/0x48k-whitecat.c запускать так: ./0x48k-whitecat -a 127.0.0.1 P.S. а параметре "terminal to hide" видимо нужно указать имя своего терминала, который можно узнать командой tty. w и last также показывают имя терминала. |
Меняже интересует а как он сделан и как его сделать.
Конкретизирую вопрос. По почему нечистяться /var/run/utmp и /var/log/lastlog ? ---------------- В следующий раз удаление сообщения без edit Тебе никто ничего не обязан |
| Время: 15:42 |