- Как очистить журналы logs в Systemd
- Очистка журналов журнала systemd
- 1. Очистить журнал журнала старше x дней
- 2. Ограничить журналы до определенного размера
- /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Re: /var/log/messages
- Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
- Шаг 1. Скомпрометируйте цель
- Шаг 2. Создайте легко удаляемый скрытый каталог
- Шаг 3. Удалите историю Bash
- Шаг4. Очистите файлы журнала
- Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
- Заключение
- Скрытность в Linux. Заметаем следы
- Узнать Временные Метки Файла
- Разница Между Временами «Доступа», «Модификации» и «Изменения»
- Изменение Времени «Доступа» и «Модификации» Файла
- Подделка Времени «Изменения» Файла
- Заметаем Следы 😉
- Очистить или Удалить Историю Входов в Linux
- Удаление Информации о Последних Подключениях
- Очистить Историю Команд в BASH
- Полностью удалить историю Bash
- Удалить определенную строку из истории Bash
- Очистить историю команд текущей сессии
- Не сохранять команду в истории Bash
- Не сохранять все команды текущей сессии в истории Bash
- Изменение Прав Доступа к Файлам и Папка в Linux — Основы Chmod
- Синтаксис
- Классы доступа
- Операторы
- Права доступа
- Числовые права доступа
- 10 Простых Примеров :
- Запуск Команд на Удаленном Linux Сервере через SSH
- Выполнение Команд на Удаленном Linux Сервере
- Узнать uptime удаленного сервера
- Перезагрузить удаленный сервер
- Запуск Нескольких Команд через SSH
- Узнать Uptime и Disk Usage
- Узнать Memory Usage и Load Average
- Показать Версию Ядра, информацию о CPU и кол-во RAM
- Выполнение Локального Скрипта на Удаленном Linux Сервере
- Запустить Локальный Скрипт ‘local_script.sh’ на Удаленной Машине
- 7 Советов — Настройка Истории Команд в Bash
- 1. Добавляем Отображение Даты и Времени в Bash History
- 2. Увеличиваем Размер Хранимой Истории
- 3. Добавляем Команды Bash в Файл с Историей
- 4. Мгновенно Сохранять Историю Команд
- 5. Контролируйте Bash History
- 6. Игнорировать Определенные Команды
- 7. Одна Команда — Одна Запись в Истории
- Изменить Имя Файла с Историй Команд
Как очистить журналы logs в Systemd
Журнал systemd – это собственная система журналирования systemd. Это эквивалентно системному журналу в системе инициализации. Она собирает и хранит данные журнала ядра, сообщения системного журнала, стандартный вывод и ошибки для различных системных служб.
Машина Linux с systemd записывает журналы в каталог /var/log/journal. Если вы помните структуру каталогов Linux , в /var хранятся системные журналы.
Что касается ведения журнала, то со временем она начинает расти. И если вы проверите дисковое пространство в Linux, вы увидите, что иногда это занимает несколько ГБ.
Позвольте нам показать вам, как очистить журналы systemd и освободить место на диске в вашей системе Linux.
Очистка журналов журнала systemd
Сначала проверьте пространство, занятое журналами журнала, с помощью команды du:
Вы также можете использовать команду journalctl для той же задачи:
Обе команды должны дать примерно одинаковый результат:
Теперь, когда вы знаете, сколько места занимают журналы журнала, вы можете решить, хотите ли вы очистить журналы или нет. Если вы решите очистить журналы журнала, позвольте мне показать вам несколько способов сделать это.
Конечно, вы можете использовать команду rm для удаления файлов в папке журнала, но мы не будем этого советовать. Команда journalctl дает вам правильный способ обработки старых журналов.
Первое, что вы должны сделать, это повернуть файлы журнала. Это пометит текущие активные журналы журнала как архив и создаст новые новые журналы. Это необязательно, но это хорошая практика.
Теперь у вас есть два способа очистить старые журналы журнала. Вы либо удаляете журналы старше определенного времени, либо удаляете старые файлы журналов, чтобы общий размер журнала был ограничен предварительно определенным пространством на диске. Давайте посмотрим оба метода.
1. Очистить журнал журнала старше x дней
Имейте в виду, что журналы важны для целей аудита, поэтому не следует удалять их все одновременно. Допустим, вы хотите сохранить историю логов всего за два дня. Чтобы удалить все записи старше двух дней, используйте эту команду:
Вот как может выглядеть вывод:
Вы также можете изменить временной интервал предоставления в часах, например, 2 часа, в минутах, например, 2 м, в секундах, например, 2 с. Если вы хотите больше единиц времени, вы также можете 2 недели, 2 месяца.
2. Ограничить журналы до определенного размера
Другой способ – ограничить размер журнала. При этом файлы журнала будут удаляться до тех пор, пока дисковое пространство, занятое журналами журнала, не станет меньше указанного вами размера.
Это уменьшит размер журнала примерно до 100 МБ.
Вы можете указать размер в ГБ с G, МБ с М, КБ с К и т. д.
Надеюсь, вам понравится этот быстрый совет по очистке файлов журналов systemd. Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте комментарий ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
/var/log/messages
Решил почистить /var/log/messages и удалил его и создал заново, но там не появляются новые логи, как сделать чтобыь туда писались логи без перезагрузки т.к. не хочитсья портить аптайм
Re: /var/log/messages
Re: /var/log/messages
Re: /var/log/messages
Re: /var/log/messages
а права на запись не забыл поставить?
Re: /var/log/messages
а не слишком ли расточительно будет копировать километровые файлы, когда «перезапуск» syslog_a — это kill -HUP $sylog_pid .
Re: /var/log/messages
А мож logrotate прикрутить чтоб руками не лазить каждый раз?
Re: /var/log/messages
> Решил почистить /var/log/messages и удалил его и создал заново
А не проще это делать cat /dev/null > /var/log/messages
Re: /var/log/messages
Откуда километры на домашней машине? Да даже если и так, прикрутить logrotate, он делает примерно то же самое, и забыть.
Ну или не `cp . . `, а `cat . | bzip2 -9 > messages.1.bz2`, прям разница.
Re: /var/log/messages
Re: /var/log/messages
> Да потому, что это абсолютно не правильно.
> Здесь есть риск потери информации, в то время как при таком раскладе:
> mv /var/log/messages /var/log/messages.old
> cat /dev/null > /var/log/messages
> kill -HUP $syslog_pid
> нет риска потери информации.
> Учите мат. часть (работа с открытыми на запись файлами)
Смею заметить, что между `mv` файла и SIGHUP’ом тоже возникает риск потери информации, т.к. syslog пишет в уже удаленный файл — точно такой же, как и в моем примере. Идеальный вариант — писать в 2 лога, удалять один из них и проверять не потерялось ли чего.
Либо комбинация: `cp /var/log/messages /var/log/messages.old && cat /dev/null > /var/log/messages`, при которой не требуется перезапуск syslog, да риск потерь так же невелик.
kill, к тому же, может быть недоступен.
Re: /var/log/messages
>Смею заметить, что между `mv` файла и SIGHUP’ом тоже возникает риск потери информации, т.к. syslog пишет в уже удаленный файл — точно такой же, как и в моем примере.
Источник
Заметаем следы вместе с хакерами. Чистим логи и историю 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. Заметаем следы
Файлы в Linux имеют 3 типа временных меток: время доступа (англ. access time, сокр. atime), время модификации (англ. modification time, сокр. mtime) и время изменения (англ. change time, сокр. ctime).
Однажды может возникнуть необходимость подделать временные меткикакого-либо файла.
Время доступа (atime), как и время модификации (mtime) могут быть легко изменены с помощью команды touch, но для подделки метки времени изменения (ctime) стандартного решения не существует.
Тем не менее, в качестве обходного пути, можно установить системное время в то значение на которое вы хотите изменить ctime файла, затем использовать команду touch на этом файле и потом откатить системное время обратно.
Из приведенной ниже статьи вы узнаете, как сохраняя анонимность изменять временные метки файла.
Узнать Временные Метки Файла
Чтобы получить информацию о текущий временных метках файла воспользуетесь командой stat :
Разница Между Временами «Доступа», «Модификации» и «Изменения»
Временная метка | Когда она обновляется? |
---|---|
atime | Время доступа к файлу обновляется когда вы открываете файл либо когда он используется для других операций, например таких как: grep, cat, head и т.д. |
mtime | Время модификации файла обновляется когда вы изменяете его содержимое либо сохраняете файл. |
ctime | Время изменения файла обновляется когда меняются его атрибуты, такие как владелец файла, права, либо он перемещается на другую файловую систему. Также это время обновляется и при изменения времени модификации файла. |
Изменение Времени «Доступа» и «Модификации» Файла
Изменить время доступа к файлу (atime) :
Изменить время модификации файла (ctime) :
Подделка Времени «Изменения» Файла
Как я уже говори ранее, не существует стандартного решения для подделки времени изменения файла (ctime).
Тем не менее, это можно сделать если сначала поменять системное время на то, на которое вы хотите поменять ctime, затем использовать команду touch на файле и потом откатить системное время обратно.
Изменение системного времени может привести к неожиданным последствиям. Используйте приведенные ниже команды только на свой страх и риск.
Сохраните текущую дату и время в переменную NOW :
Установите поддельное системное время (необходим root) :
Используйте команду touch на файле для изменения всех временных меток на поддельные :
Откатите время назад (необходим root) :
Для увеличения скорости выполнения модификаций и как следствие уменьшения риска возможных последствий, вы можете выполнит приведенные выше команды следующим образом :
Заметаем Следы 😉
Чтобы замести следы не забудьте очистить значение переменной, а также почистить логи и историю.
Очистите значение переменной NOW :
Из файла /var/log/messages удалите строки с информацией об изменении системного времени (необходим root) :
Очистите историю входов в Linux (необходим root) :
Очистите историю текущей сессии :
Очистить или Удалить Историю Входов в Linux
В Linux системах есть три стандартные команды, которые показывают информацию о последних подключавшихся пользователях : last, lastb, и lastlog.
Вывод этих команд включает : логин, время последнего подключения, IP адрес, порт и т.д.
И иногда, чтобы сохранить анонимность, возникает необходимость очистить историю последних подключений.
Команда | Журнал логов | Описание |
---|---|---|
last | /var/log/wtmp | История успешных входов/выходов |
lastb | /var/log/btmp | История неудавшихся попыток входа |
lastlog | /var/log/lastlog | Список последних подключавшихся пользователей |
Удаление Информации о Последних Подключениях
Для удаления всей информации о последних подключавшихся пользователях необходимо очистить журналы с логами :
Очистить Историю Команд в BASH
Полностью удалить историю Bash
Выполните следующую команду для полного удаления всей истории Bash :
Опции | Описание |
---|---|
-c | Очистить файл истории |
-w | Внести команды текущей сессии в файл с историей |
Удалить определенную строку из истории Bash
Опция | Описание |
---|---|
-d | Удалить строку с указанным номером из истории |
Очистить историю команд текущей сессии
Выполните для удаления истории команд только текущей сессии :
Опция | Описание |
---|---|
-r | Прочитать файл с текущие историей и добавить его содержимое к списку истории команд |
Не сохранять команду в истории Bash
Выполнить команду не занося ее в историю Bash :
$ команда
Поставьте пробел перед любой командой и она не будет сохранена в истории Bash.
Не сохранять все команды текущей сессии в истории Bash
Отключение HISTFILE приводит к тому, что пока Вы не выйдите из текущей сессии, любые команды которые Вы будете выполнять не будут сохраняться в файле с историей bash_history :
Изменение Прав Доступа к Файлам и Папка в Linux — Основы Chmod
Команда сhmod (change mode) служит для изменения прав доступа к файлам и папкам.
Синтаксис
Команды chmod имеет следующий синтаксис :
- -R, —recursive; изменять файлы и директории рекурсивно
- -f, —silent, —quiet; не выводить сообщения об ошибках
Показать текущие права на файл / директорию можно с помощью команды ls :
или используя команду stat :
Классы доступа
Классы доступа используются для того, чтобы определить какому пользователю назначаются права. Если класс доступа не указан, то по умолчанию используется класс “all”. Классы доступа представлены одной или несколькими из ниже перечисленных букв :
Класс | Class | Описание |
---|---|---|
u | user | владелец файла (папки) |
g | group | пользователи, которые являются членами группы к которой принадлежит файл (папка) |
o | others | пользователи, которые не являются ни владельцем файла (папки), ни входят в группу файла (папки) |
a | all | все три перечисленных выше класса, то же самое что ugo |
Операторы
Программа chmod использует оператор для того, чтобы указать каким образом будут применены права доступа к файлам или папкам. Приняты следующие операторы :
Оператор | Описание |
---|---|
+ | добавить указанные права доступа к указанному классу |
— | убрать указанные права доступа из указанного класса |
= | присвоить указанные права доступа |
Права доступа
Права доступа указывают какие полномочия следует предоставить или забрать у указанного класса. Существуют три основных вида прав доступа, которые соответствуют базовым полномочиям :
Права доступа | Name | Описание |
---|---|---|
r | read | права на чтение содержимого файла или директорию (просматривать файлы и поддиректории в папке) |
w | write | права на запись в файл или директорию (создавать файлы и поддиректории в папке) |
x | execute | права на исполнение файла в качестве программы/скрипта либо права на вход в директорию (просмотр дерева каталога) |
X | special execute | права на вход в директорию и права на исполнение файла, в случае, если хотя бы одному классу уже назначено право на исполнение (для любого из user, group или other) |
[X] сам по себе не является правом доступа, но тем не менее, может использоваться вместо x. Он на самом деле полезен только в случае использования оператора ‘+’ в сочетании с опцией -R, для того чтобы предоставить группе или остальным пользователям права доступа к дереву каталога, не давая прав на исполнение обычных файлов (например текстовых), что случится при применении команды ‘chmod -R a+rx’. Таким образом вместо нее можно использовать ‘X’, и соответственно выполнить ‘chmod -R a+rX’.
Числовые права доступа
Возможно использование прав доступа как в символьной, так и в числовой форме.
Числовая форма для прав доступа :
- Первая цифра используется для обозначения user (пользователь)
- Вторая цифра используется для обозначения group (группа)
- Третья цифра используется для обозначения others (остальные)
# | Права | Описание |
---|---|---|
7 | rwx | чтение, запись, исполнение |
6 | rw- | чтение, запись |
5 | r-x | чтение, запись |
4 | r— | чтение |
3 | -wx | запись, исполнение |
2 | -w- | запись |
1 | —x | исполнение |
0 | — | нет прав |
10 Простых Примеров :
1. Добавить всем права на чтение файла :
2. Забрать права на исполнение файла у всех :
3. Добавить всем права на чтение и запись :
4. Установить права на чтение и запись для владельца и забрать права у всех остальных :
5. Для директории и всего ее содержимого добавить права на запись для владельца, и забрать права на запись для всех остальных :
6. Забрать у всех все права :
7. Дать всем права на права на чтение, запись и выполнение файла :
8. Задать права на чтение и запись без права на исполнение для владельца и группы, а все остальным дать право только на чтение :
9. Назначить права ‘-rwx’ для владельцев директорий, добавить права ‘rw’ для владельцев файлов, ‘—‘ для всех остальных :
10. Забрать у всех права на исполнение файлов в директории и поддиректориях, но в то же время, разрешить всем просматривать содержимое директорий :
Запуск Команд на Удаленном Linux Сервере через SSH
В этой заметке Вы найдете различные примеры того, как выполнять команды на удаленном Linux сервере и получать результат локально.
Данная информация будет очень полезна, если Вы пишете Bash скрипт, который будет запускаться с локальной машины и выполнять какие-либо команды на удаленном сервере.
- выполнить команду на удаленном Linux сервере;
- запустить множество команд через SSH;
- выполнить локальный скрипт на удаленном Linux сервере без его копирования.
Выполнение Команд на Удаленном Linux Сервере
Узнать uptime удаленного сервера
Перезагрузить удаленный сервер
Запуск Нескольких Команд через SSH
СПОСОБ 1 :
Узнать Uptime и Disk Usage
СПОСОБ 2 :
Узнать Memory Usage и Load Average
СПОСОБ 3 :
Показать Версию Ядра, информацию о CPU и кол-во RAM
Выполнение Локального Скрипта на Удаленном Linux Сервере
Запустить Локальный Скрипт ‘local_script.sh’ на Удаленной Машине
7 Советов — Настройка Истории Команд в Bash
Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл
Чтобы изменения в
/.bashrc вступили в силу, выполните :
1. Добавляем Отображение Даты и Времени в Bash History
Иногда очень полезно узнать время, когда какая-либо команда была выполнена.
Установите HISTTIMEFORMAT, чтобы сохранять время выполнения каждой команды.
Для этого добавьте следующую строку в файл
Теперь, набрав history, Вы получите следующий вывод :
2. Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).
Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).
3. Добавляем Команды Bash в Файл с Историей
Bash перезаписывает файл .bash_history?
Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в
4. Мгновенно Сохранять Историю Команд
По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.
Если сессия внезапно оборвется Вы потеряете текущую историю команд.
Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения :
Добавьте следующую строку в файл
/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее :
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана :
5. Контролируйте Bash History
HISTCONTROL — представляет из себя список опций, разделенных двоеточиями.
Они контролируют каким образом список команд сохраняется в истории.
Опция | Описание |
---|---|
ignorespace | не сохранять строки начинающиеся с символа |
ignoredups | не сохранять строки, совпадающие с последней выполненной командой |
ignoreboth | использовать обе опции ‘ignorespace’ и ‘ignoredups’ |
erasedups | удалять ВСЕ дубликаты команд с истории |
6. Игнорировать Определенные Команды
HISTIGNORE — список шаблонов через двоеточие, используемых для принятия решения о сохранении строк с командами в списке истории.
Не сохранять команды ls, ps и history :
Не сохранять команды начинающиеся с s :
7. Одна Команда — Одна Запись в Истории
Сохранять все строки многострочной команды в одной записи списка истории :
Изменить Имя Файла с Историй Команд
Используйте HISTFILE для изменения имени файла, в котором сохраняется история команд. Стандартное значение
Источник