как почистить логи в linux
Гостевая статья Как очистить записи и журналы в Linux
Почему это важно?
Сокрытие записей является заключительным этапом процесса тестирования проникновения перед написанием отчета. Он предполагает очистку или стирание всей активности злоумышленника, чтобы избежать обнаружения.
Так что это жизненно важно в цикле тестирования проникновения, теперь с оборонительной точки зрения это действительно может проверить обработчики инцидентов и синяя команда и проверить их способность обнаружить нападающего и найти все, что нападающий, возможно, забыл очистить.
Это, как правило, самый большой вектор ошибки нападающего и именно там профессионалы отсортированы от любителей.
С точки зрения злоумышленников, он/она должен уклоняться от обнаружения с помощью IDS, тем самым предотвращая любые действия по реагированию на инциденты, и должен очищать любые журналы или бэкдоры, которые могут быть обнаружены группой судебно-медицинской экспертизы.
Файлы журнала хранятся в каталоге /var/log
— Редактирование файлов будет действительно не легким, я бы рекомендовал использовать инструмент под названием shred для удаления или изменения файла.
Shred очень популярен при стирании жестких дисков и т.д., я использовал его много раз, прежде чем удалить или продать мои диски.
Параметры при использовании команды Shred
/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: журнал загрузки системы
Чтобы стереть файл:
История bash сохраняет запись всех команд, выполняемых пользователем в командной строке Linux.
Шпаргалка по journalctl в Linux
Теперь для просмотра логов определенного сервиса или загрузки системы необходимо использовать утилиту journalctl. В этой статье мы разберем примеры использования journalctl, а также основные возможности этой команды и её опции. По сравнению с обычными файлами журналов, у journalctl есть несколько преимуществ. Все логи находятся в одном месте, они индексируются и структурируются, поэтому к ним можно получить доступ в нескольких удобных форматах.
Синтаксис и опции journalctl
Синтаксис команды очень простой. Достаточно выполнить команду без опций или передав ей нужные опции. Если утилита не выводит ничего, выполните её от имени суперпользователя:
journalctl опции
А теперь давайте разберем основные опции journalctl:
Горячие клавиши journalctl
По умолчанию информация лога выводится в формате, в котором её можно листать. Давайте разберем горячие клавиши, которые вы можете для этого использовать:
Теперь вы знаете основные опции команды и клавиши, с помощью которых можно ею управлять. Дальше небольшая шпаргалка journalctl.
Шпаргалка по journalctl
Вывод journalctl представляет из себя цельный список всех сохраненных сообщений. Если вы запустите команду journalctl без параметров, то получите самые первые сообщения, которые были сохранены. В моем случае это данные за 13 января:
Чтобы найти именно то, что вам нужно, необходимо научится перемещаться по этому списку. Формат вывода лога довольно простой:
янв 13 20:55:55 sergiy-pc kernel: Linux version 4.15.0-43-generic
Давайте перейдем к примерам фильтрации и перемещения.
1. Просмотр логов сервисов
2. Просмотр логов в режиме tail
В этом режиме less не поддерживается, поэтому для выхода нажмите сочетание клавиш Ctrl+C.
3. Просмотр логов загрузки
Посмотреть список всех сохраненных загрузок можно командой:
Теперь, чтобы посмотреть сообщения для нужной загрузки используйте её идентификатор:
4. Фильтрация по дате
С помощью опции —since вы можете указать дату и время, начиная с которой нужно отображать логи:
Опция —until помогает указать по какую дату вы хотите получить информацию:
Или сразу скомбинируем две эти опции чтобы получить логи за нужный период:
5. Журнал ядра
6. Настройка формата вывода
По умолчанию journalctl выводит информацию с помощью утилиты less, в которой вы можете её удобно листать и просматривать. Но формат вывода можно изменить:
7. Очистка логов
Сначала нужно посмотреть сколько ваши логи занимают на диске. Для этого используйте такую команду:
Выводы
В этой статье мы разобрали как пользоваться journalctl в Linux. Наличие этой утилиты в системе не означает, что теперь вы не можете пользоваться обычными файлами логов. Большинство сервисов как и раньше пишут свои основные логи в файлы, а в лог journalctl пишутся сообщения при старте сервисов, а также различные системные сообщения.
Какие файлы можно удалить при нехватке места на диске Linux
Бывают ситуации, когда место на диске закончилось полностью и нужно экстренно очистить диск и удалить файлы. Место на диске может закончится даже так, что
То есть бывают действительно критические ситуации — в этих условиях перестают нормально работать многие программы и службы. Поэтому задача становится следующей: срочно любой ценой освободить место на диске, чтобы можно было продолжить обслуживание системы и перейти ко второму этапу — поиску директорий и папок, которые привели к этой проблеме из-за того, что стали занимать слишком много места.
Предупрежу заранее: следующие команды хотя в основном и удаляют бесполезные файлы, после их выполнения могут потребоваться такие действия как:
Это означает, что НЕ копируйте бездумно команды — читайте пояснения к ним и оценивайте, насколько они безболезненны для вашей ситуации.
1. Удаление временных файлов
Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:
НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.
2. Удаление файлов кэширования
В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.
Для удаления кэша шрифтов:
Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):
Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):
Удаление кэша справочных страниц:
Вы можете продолжить поиск больших кэшей применимо к программному обеспечению, установленному на вашей системе. Например, это могут быть кэши веб-сервера, прокси-сервера и т. д.
3. Удаление логов (журналов)
В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…
На веб-серверах могут разрастись слишком сильно журналы веб-сервера.
Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
Для удаления логов Apache на Arch Linux, BlackArch и их производных:
Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.
В зависимости от интенсивности использования системы, накопленные журналы могут занимать гигабайты. В зависимости от системы файлы могут называться по-разному, более точный анализ рекомендуется выполнять с помощью утилиты ncdu:
4. Очистите корзину
Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку
/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):
5. Удаление ненужных файлов исходного кода заголовков ядра
6. Удаление осиротевших пакетов
Осиротевшие пакеты — это те пакеты (программы), которые устанавливались в качестве зависимостей для других программ. Но по разным причинам они больше не нужны: или удалена программа, которая их использовала, или для той программы они перестали быть зависимостями после обновления программы.
На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:
Для Debian и производных предыдущая команда абсолютно безопасна.
В Arch Linux и производных список осиротевших пакетов можно увидеть следующим образом:
Прежде чем переходить к их автоматическому удалению, настоятельно рекомендуется изучить этот список!
Для рекурсивного удаления сироток и их конфигурационных файлов в Arch Linux и производных:
7. Очистка журналов systemd
Со временем, в некоторых системах логи системы начинают занимать гигабайты на жёстком диске. Просмотреть журналы и освободить место вы можете с помощью команды journalctl, подробности смотрите в статье «Как использовать journalctl для просмотра системных логов Linux».
Чтобы увидеть, сколько место занимают журналы, выполните:
Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:
Либо для удаления всех записей в системном журнале, старше одной недели:
8. Файлы в директории /lost+found
В папку /lost+found сохраняются файлы, которые были найдены после проверки файловой системы диска. Обычно такие проверки выполняются после внезапной перезагрузки системы или в случае признаков проблем с диском.
Найденные файлы обычно повреждены. Их цель — сохранить данные, которые в случае исправления ошибок на файловой системе были бы совсем утеряны.
Папка /lost+found может быть пустой (если не было проблем с диском). В случае если там есть файлы, то вы можете их просмотреть и, при желании, удалить.
9. Очистка PHP сессий
Иногда веб-приложений из-за бага могут создать бесчисленное количество сессий. Проверьте директорию /var/lib/php/sessions/ на предмет слишком большого количества файлов.
(БОНУС) 10. Проанализируйте файлы Docker
Не удаляйте бездумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.
Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:
Заключение
Итак, мы рассмотрели, какие файлы можно удалить из Linux практически без потери информации. Кроме рассмотренных директорий, которые можно очистить как на удалённой системе с веб-сервером, так и на домашнем компьютере, пользователям с графическим рабочим столом следует обратить внимание на такие директории как:
/Downloads (ваши скаченные файлы)
Их НЕ нужно удалять, но стоит проанализировать. Например, вы можете выяснить, что веб-браузер на вашем компьютере имеет кэш в несколько гигабайт и что вы можете их освободить (рекомендуется делать средствами веб-браузера, а не удалять файлы напрямую).
Если я пропустил какие-то директории с файлами, которые можно безболезненно удалить, то пишите их в комментариях!
Как почистить логи в linux
Логируется всё, что может быть залогировано: команды пользователя, действия программ, трафик, подключения к системе и т.д. и т.п. Правило «Чисти логи два раза в день» ещё ни кто не отменял, и это понятно, ведь по логам, можно обнаружить атаку или постороннего пользователя в системе. Если хакер не очистил логи, его присутствие может быть обнаружено, так же по логам можно выяснить, как хакер проник в систему, что он делал после проникновения и т.д., проще говоря, составить хронологию его действий, и, возможно даже вычислить взломщика. Что для последнего является весьма не желательным.
Для того, чтобы скрыть факт атаки и своё присутствие в системе, хакеры обычно очищают логи на захваченной машине (руткиты не рассматриваются).
Логи хранятся не только на удалённой машине, но и на роутере (маршрутизаторе), через который идёт обмен данными, а так же на машине самого хакера. По этому важно очищать логи не только на удалённой машине, но и на роутере, и на своей собственной машине (имеется в виду ЭВМ, а не автомобиль).
2. Очистка лог файлов
В введении уже было сказано о логах и необходимости их очистки, как на захваченной и промежуточной машинах, так и на собственной. Тем не менее, повторюсь, компрометирующим материалом являются не только логи сервера (и промежуточной машины), но и логи вашей собственной машины (ПК, ноутбук и т.д.). Ведь если вы не очистите логи у себя, то эти же ваши логи, могут стать доказательством вашей причастности или вины, если вы провернули какое-то дело и вас нашли.
В любом случае, перед каждой вылазкой на вардрайвинг, рекомендуется использовать ARP-Spoofing, чтобы подменить MAC-адрес своего Wi-Fi адаптера, а после вылазки, зачищать у себя логи.
3. Wardriver Log Cleaner
В 2013 году (месяц не помню) я заинтересовался очисткой лог файлов под Linux, и в процессе исследования, написал простой лог клинер. Позже я его немного доработал и забросил. Относительно недавно заинтересовался вардрайвингом, вспомнил про лог клинер и решил довести его до ума, сделав из простого чистильщика, программу, пригодную к использованию в боевых условиях.
Начиная с версии 0.3, программа получила название «Wardriver Log Cleaner» (рисунок 1).
Принцип работы лог клинера
Очистка лог файлов выполняется через временный файл. Перед началом очистки логов, программа сохраняет дату/время последнего доступа и модификации лог файла. Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. После чего временный файл заменяет собой лог файл. Затем для очищенного лог файла выставляется сохранённая дата/время.
Таким образом «Wardriver Log Cleaner» надёжно очищает лог файлы, удаляя лишь нужные записи, при этом, лог файл доступен для дальнейшего протоколирования.
Так же «Wardriver Log Cleaner», не оставляет за собой следов (временные файлы, дампы и т.д.), и, что очень важно, не изменяет дату/время доступа/модификации лог файла.
Запуск лог клинера без аргументов, выдаст следующую подсказку (рисунок 2).
Возможности применения
Использовать лог клинер, можно как на своей машине для очистки локальных логов, так и на удалённой. Например, получив доступ к серверу, можно загрузить на него лог клинер, очистить логи на «Системном» и «Прикладном» уровнях, и стать невидимым для администратора, скрыв сам факт атаки на сервер.
При проникновении в Wi-Fi сеть, так же рекомендуется выполнять (ручную) очистку логов на роутере (маршрутизаторе).
4. Локальная очистка логов на «Системном» уровне
Хакер вошёл в систему под логином evilhacker, с терминала tty3 (рисунок 3).
Из рисунка 8 видно, что лог клинер выполнил очистку логов на «Системном» уровне для пользователя evilhacker на терминале tty3. Были очищены все файлы из списка, кроме /var/log/audit/audit.log и /var/log/security. Эти два файла не были очищены, т.к. они отсутствуют в системе.
Очистка логов завершена, проверим вывод утилит who, w, last и lastlog (Рисунки 9, 10 и 11).
5. Удаленная очистка логов на «Системном» и «Прикладном» уровнях
На данном этапе будет продемонстрирована удалённая очистка лог файлов на сервере. IP-адрес сервера представлен на рисунке 18.
Таким образом, администратор, изучив логи, может восстановить хронологию действий хакера, понять, как он проник в систему и что он сделал дальше. Так же появляется возможность заблокировать хакера, и предотвратить повторное вторжение в систему.
На рисунке 26 показана работа лог клинера по очистке логов в удалённой системе на «Системном» и «Прикладном» уровнях.
Таким образом, хакер очистил логи на «Системном» и «Прикладном» уровнях удалённой системы, скрыв факт атаки и своего присутствия на захваченной машине. Администратор может полагать, что посторонних пользователей в системе нет, хотя на самом деле это не так. Очистив логи, хакер может оставаться скрытым от администратора и продолжать развивать атаку.
6 Локальная очистка логов на «Параноидальном» уровне
На этом уровне выполняется очистка множества лог файлов и директорий на локальной машине. В качестве примера, будет приведена очистка директории .armitage/, и файла .msf4/history.
После работы в msfconsole, Metasploit сохраняет историю в файле .msf4/history, содержимое которого представлено на рисунке 34.
Таким образом, «Wardriver Log Cleaner» выполняет очистку на «Параноидальном» уровне, уничтожая нежелательные логи (историю), заметая все следы деятельности хакера на локальной машине.
Заключение
Статья получилась довольно объемная, но теперь она подошла к концу, и я хочу поблагодарить всех, кто проявил интерес и настойчивость, и прочитал её до конца. Надеюсь, вы узнали для себя что-нибудь новое и полезное.
Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
Последним этапом деятельности любого хакера является заметание следов.
Автор: DRD_, Cyber Weapons Lab
Последним этапом деятельности любого хакера является заметание следов. Киберпреступник удаляет следы своей деятельности и логи, чтобы избежать обнаружения. Данный этап особенно важен, если злоумышленник в будущем планирует снова получить доступ к целевому устройству.
Для демонстрации основ заметания следов, сначала скомпрометируем цель, а затем изучим несколько методов, используемых для удаления истории Bash и очистки логов после взлома Linux систем.
Шаг 1. Скомпрометируйте цель
Шаг 2. Создайте легко удаляемый скрытый каталог
Получив root-доступ, мы можем создать скрытый каталог для работы и хранить в нем любые скрипты или файлы. С одной стороны, подобные манипуляции обманут лишь самого начинающего администратора, но дополнительный уровень защиты определенно не повредит. Во-первых, давайте найдем все доступные для записи каталоги с помощью следующей команды:
С помощью команды mkdir можно создать скрытый каталог, добавив точку к имени:
Зададим команду перечисления содержимого /dev/shm. Как видим, ничего не появилось:
Каталог появляется лишь тогда, когда мы используем переключатель -a для вывода списка всех файлов и каталогов:
Для удаления каталога после завершения работы на машине, используйте команду rmdir :
Шаг 3. Удалите историю Bash
Используем команду 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: