- Гостевая статья Как очистить записи и журналы в Linux
- Как очистить файл журнала в Linux
- 4 способа очистить файл в Linux
- Способ 1: усечь файл с помощью команды truncate
- Способ 2: Пустой файл, используя :> или >
- Способ 3: использование команды echo для очистки файла в Linux
- Способ 4: используйте /dev/null, чтобы очистить файл
- Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
- Шаг 1. Скомпрометируйте цель
- Шаг 2. Создайте легко удаляемый скрытый каталог
- Шаг 3. Удалите историю Bash
- Шаг4. Очистите файлы журнала
- Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
- Заключение
- Очистка лог файлов под linux
- 3 ответа
- Как правильно чистить логи в journald (systemd)
Гостевая статья Как очистить записи и журналы в Linux
Почему это важно?
Сокрытие записей является заключительным этапом процесса тестирования проникновения перед написанием отчета. Он предполагает очистку или стирание всей активности злоумышленника, чтобы избежать обнаружения.
Так что это жизненно важно в цикле тестирования проникновения, теперь с оборонительной точки зрения это действительно может проверить обработчики инцидентов и синяя команда и проверить их способность обнаружить нападающего и найти все, что нападающий, возможно, забыл очистить.
Это, как правило, самый большой вектор ошибки нападающего и именно там профессионалы отсортированы от любителей.
С точки зрения злоумышленников, он/она должен уклоняться от обнаружения с помощью IDS, тем самым предотвращая любые действия по реагированию на инциденты, и должен очищать любые журналы или бэкдоры, которые могут быть обнаружены группой судебно-медицинской экспертизы.
Что атакующий будет и должен делать
- Очистить логи
- Изменить реестр или очистить
- Удаление любых файлов, которые вы создали
Я собираюсь рассмотреть основные принципы, но в большей степени для Linux систем, так как именно здесь мои знания и опыт.
Очистка ваших записей также будет зависеть от привилегий, которые вы имеете в системе (если вы атакуете ее удаленно).
Файлы журнала хранятся в каталоге /var/log
— Редактирование файлов будет действительно не легким, я бы рекомендовал использовать инструмент под названием shred для удаления или изменения файла.
Что такое Shreed
Shreed — это инструмент, позволяющий удалить файл или данные навсегда и препятствующий восстановлению данных, поскольку он несколько раз перезаписывает файл с помощью 1 s и 0s (при удалении файла на компьютере он действительно не удаляется, он просто помечается как пространство, в которое можно записать данные)
Shred очень популярен при стирании жестких дисков и т.д., я использовал его много раз, прежде чем удалить или продать мои диски.
Параметры при использовании команды Shred
Команда Shred используется для повторной перезаписи указанных файлов, что затрудняет или делает невозможным восстановление данных даже дорогостоящим оборудованием или программным обеспечением. Доступные параметры включают:
- -f изменяет разрешения, чтобы разрешить запись при необходимости
- -n (iterations = N) перезаписывает N раз вместо значения по умолчанию, которое составляет три раза
- -s (размер = N) указывает количество байтов для уничтожения
- -u обрезает и удаляет файлы после перезаписи
- -v показывает подробную информацию о прогрессе
- -x не округляет размеры файлов до следующего полного блока
- -z добавляет окончательную замену нулями, чтобы скрыть измельчение
- -u удаляет файл после перезаписи
Общие файлы журналов и какие данные они содержат
/var/log/auth.log: логи аутентификации
/var/log/kern.log: логи ядра
/var/log/cron.log: журналы Crond (задание cron)
/ var / log / maillog: журналы почтового сервера
/ var / log / httpd /: каталог доступа и журналов ошибок Apache
/var/log/boot.log: журнал загрузки системы
Чтобы стереть файл:
Shred -vfzu auth.log
История bash сохраняет запись всех команд, выполняемых пользователем в командной строке Linux.
Источник
Как очистить файл журнала в Linux
Вы окажетесь в ситуациях, когда вам нужно очистить файл. Это часто случается, когда у вас огромные файлы журналов, и как бы вы это сделали?
Один не очень чистый способ – удалить файл, а затем создать новый файл. Но это не очень хорошая идея. Это не будет тот же файл, временная метка (atime, mtime и т. д.). Будет отличаться вместе с другими правами доступа к файлам.
Вместо создания нового пустого файла вы можете удалить его содержимое. Итак, как вы очищаете файл в Linux? Как очистить файл от всего его содержимого без удаления самого файла?
4 способа очистить файл в Linux
Существует несколько способов очистки файла без его фактического удаления. Позвольте нам показать вам некоторые из этих методов.
Способ 1: усечь файл с помощью команды truncate
Самый безопасный способ обрезать файл журнала – использовать команду truncate.
В приведенной выше команде -s используется для установки/настройки размера (в байтах) файла. Когда вы используете -s 0, это означает, что вы изменили размер файла до 0 байт.
Способ 2: Пустой файл, используя :> или >
Самый простой способ очистить файл – использовать команду ниже. Если файл не используется, он будет работать в Bash:
Хотя вышеперечисленное работает только в Bash Shell, вы можете использовать аналогичную команду для других оболочек:
Вы также можете использовать эту команду для очистки файла:
Способ 3: использование команды echo для очистки файла в Linux
Другой способ очистить файл – использовать команду echo в Linux:
Вы также можете использовать команду echo следующим образом:
Способ 4: используйте /dev/null, чтобы очистить файл
Вы также можете использовать знаменитую /dev/null и объединить ее с командой cat для очистки файла журнала:
И если у вас недостаточно прав для какой-либо из вышеперечисленных команд, это верный выстрел, но немного грязный способ добиться этого:
Мы надеемся, что этот быстрый совет помог вам очистить файл в Linux. Добавьте нас в закладки для получения дополнительных советов по Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
Последним этапом деятельности любого хакера является заметание следов.
Автор: DRD_, Cyber Weapons Lab
Последним этапом деятельности любого хакера является заметание следов. Киберпреступник удаляет следы своей деятельности и логи, чтобы избежать обнаружения. Данный этап особенно важен, если злоумышленник в будущем планирует снова получить доступ к целевому устройству.
Для демонстрации основ заметания следов, сначала скомпрометируем цель, а затем изучим несколько методов, используемых для удаления истории Bash и очистки логов после взлома Linux систем.
Шаг 1. Скомпрометируйте цель
Первое, что нам следует сделать, — взломать цель. Используя некорректную обработку сервером команд ОС, можно применить внедрение команд, для получения оболочки. Затем нашу новую оболочку необходимо обновить до полностью интерактивной. Данная процедура значительно упростит работу. После этого мы сможем повысить наши привилегии до root, чтобы наилучшим образом использовать преимущества системы и оставаться незамеченными.
Шаг 2. Создайте легко удаляемый скрытый каталог
Получив root-доступ, мы можем создать скрытый каталог для работы и хранить в нем любые скрипты или файлы. С одной стороны, подобные манипуляции обманут лишь самого начинающего администратора, но дополнительный уровень защиты определенно не повредит. Во-первых, давайте найдем все доступные для записи каталоги с помощью следующей команды:
С помощью команды mkdir можно создать скрытый каталог, добавив точку к имени:
Зададим команду перечисления содержимого /dev/shm. Как видим, ничего не появилось:
Каталог появляется лишь тогда, когда мы используем переключатель -a для вывода списка всех файлов и каталогов:
Для удаления каталога после завершения работы на машине, используйте команду rmdir :
Шаг 3. Удалите историю Bash
Команды записываются в переменную среды HISTFILE, обычно это .bash_history. Воспользуемся echo для определения местоположения:
Используем команду unset для удаления переменной:
Повторив процедуру снова, видим, что ничего не появляется:
Чтобы история команд не сохранялась, также можно ее отправить в /dev/null. Для этого установите переменную:
Или сделайте то же самое с командой экспорта:
История теперь будет отправлена в /dev/null (то есть никуда):
Установите количество команд, которые будут сохраняться во время текущего сеанса, равным 0, используя переменную HISTSIZE:
В качестве альтернативы используйте команду экспорта:
Измените количество строк, разрешенных в файле истории, с помощью переменной HISTFILESIZE. Установите данное значение на 0:
Или с экспортом:
Для изменения параметров оболочки также можно использовать команду set. Чтобы отключить опцию истории, используйте следующую команду:
Снова включите ее:
Точно так же для изменения параметров оболочки можно использовать команду shopt. Чтобы отключить историю, используйте следующую команду:
Снова включите ее:
Во время выполнения команд на целевой системе иногда получается избежать их сохранения в истории, запустив команду с начального пробела:
Данный метод работает не всегда и зависит от системы. Также можно просто очистить историю с помощью переключателя -c :
Чтобы убедиться, что изменения записаны на диск, используйте переключатель -w :
Данные действия очистят историю только для текущего сеанса. Чтобы окончательно убедиться, что история очищается при выходе из сеанса, пригодится следующая команда:
Также можно использовать команду kill для выхода из сеанса без сохранения истории:
Шаг4. Очистите файлы журнала
Конечно, можно просто удалить журнал с помощью команды rm :
Но скорее всего, данная процедура вызовет многочисленные красные флажки. Поэтому лучше сделать файл пустым, чем стирать его полностью. Используем команду truncate, чтобы уменьшить размер файла до 0:
Обратите внимание, функция усечения присутствует не всегда и не во всех системах.
То же самое можно сделать, отображая в файл “ничего”:
А также использовать > сам по себе для очистки файла:
Мы также можем отправить его в /dev/null:
Или использовать команду tee :
Также можно использовать команду dd, чтобы ничего не записывать в файл журнала:
Команда shred может быть использована, чтобы поверх перезаписать файл с бессмысленными двоичными данными:
Дополнительно добавив -zu, вы обрежете файл и перезапишете его нулями:
Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
Перейдите в каталог с возможностью записи и используйте chmod, чтобы сделать его исполняемым:
Затем запустите его:
Нам предоставляется настраиваемая подсказка с несколькими вариантами на выбор. Выберем первый, чтобы очистить логи:
Также можно отключить Bash и историю авторизации с помощью опции 2:
Если вам нужно срочно все очистить, просто добавьте в команду now:
Заключение
Отмечу, что существуют и другие способы удаления следов атаки. Можно использовать Metasploit , сценарии оболочки или осуществить сокрытие следов на взломанной Windows системе. Тем не менее информации, приведенной в статье, вполне достаточно для сокрытия активности на базовом Linux компьютере.
Источник
Очистка лог файлов под linux
Я использую виртуальную машину kvm ubuntu 10.04 для тестирования некоторых функций модуля ядра. Я пролистываю файлы /var/log для просмотра сообщений ядра об этом модуле.
Чтобы начать с чистого состояния, я удаляю файлы журналов, содержащие старые сообщения, выполнив rm -rf /var/log/* , а затем перезагрузив виртуальную машину. Однако после перезагрузки новые файлы журнала все еще содержат эти старые сообщения журнала. Удаление файлов и перезагрузка виртуальной машины занимает около 5-6 циклов, чтобы окончательно избавиться от сообщений журнала.
Почему это происходит? Есть ли более простой способ очистки файлов журнала?
3 ответа
Самый простой способ очистить старые журналы — не удалять их.
Лучший способ очистить журналы — это либо logrotate , как указал Ханан Н., либо:
для каждого из файлов журнала. Я не совсем уверен, на какие записи журнала вы ссылаетесь с предыдущей загрузки, но если вы хотите очистить это после загрузки, вы можете поместить указанную выше команду в /etc/rc.local сценарий, так что вся запись ведется после загрузки.
Обычно, хотя вы не хотите очищать журналы, так как они являются отправной точкой для устранения неполадок.
Для того, что вы делаете, может быть лучше добавить дополнительный файл журнала для сообщений ядра. Некоторые демоны журналов позволяют выполнять сопоставления записываемых записей, так что вы получаете только соответствующие записи в своем файле. Затем вы можете вращать, удалять или переименовывать файлы между запусками. (Если вы не перезагрузите компьютер, вам может потребоваться отправить сигнал HUP демону журнала, чтобы он снова открыл свои файлы.
Есть также инструменты, которые будут извлекать только новые записи из журнала. Утилита logtail из пакета logcheck одна такая утилита. Его можно запустить с файлом альтернативного смещения.
Существуют и другие инструменты, которые отслеживают в журналах записи, соответствующие шаблону, и сообщают о них. Один из них может хорошо сработать для вас.
Похоже, что это работает нормально (в Ubuntu LTS 14.04), свернув журналы в чистый журнал, а затем удалив старые записи журнала. Он похож на метод cp /dev /null, но я думаю, что он чище. YMMV
Источник
Как правильно чистить логи в journald (systemd)
Столкнулся с тем, что логи в /var/log/journal/ стали занимать более гига.
Но при этом journalctl не содержит никаких параметров и опций, позволяющих удалить старые записи: например, сделанные до какой-то даты.
Порылся в конфиге /etc/systemd/journald.conf — там есть только про ограничения размеров журналов.
Ограничение я поставил, но journald журналы не обрезал.
Как корректно удалить излишки?
- Вопрос задан более трёх лет назад
- 25566 просмотров
«.
Папка полегчала на 600М. Каких либо косяков в работе не вижу.
Но интересует именно чистка по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб).
В Linux есть штатная утилита logrotate, которую запускает системный планировщик cron, служит для ротации логов у приложений, которые сами этого не делают и многих системных логов. По ее настройке достаточно много мануалов в сети. Умеет в том числе сжимать логи, кидаться в процессы пишущие лог сигналами перезапуска, чтобы корректно выдернуть из под них файл, удалять файлы логов/архивы по истечении лимита времени жизни или размера и многое другое.
И как всегда в Linux есть и топорный способ — заколотить в crontab команду удаления файлов, например старше 5 дней.
find /path/to/files* -mtime +5 -exec rm <> \;
Спасибо, я прекрасно знаю, что такое logrotate . И я уже сказал, что systemd/journald берут эту функцию на себя.
Журналы journald хранятся в бинарном формате. Причём в одном файле может лежать несколько дней логов, так что ваш топорный способ работать не будет.
Для просмотра логов в journalctl есть опции —since и —until , но удалять логи через утилиту нельзя.
Да, можно настроить так, что journald будет сам удалять логи древнее 5 дней.
Меня интересует накопление логов до тех пор, пока я их не просмотрю. Потом удалить их до (дата просмотра-5 дней), чтобы не хранить кучу хлама.
Источник