Как управлять системными журналами (настраивать, вращать и импортировать в базу данных) в RHEL 7
Чтобы сохранить свой RHEL 7 системы безопасности, вам необходимо знать, как отслеживать все действия, которые происходят в таких системах, путем изучения файлов журналов. Таким образом, вы сможете обнаружить любую необычную или потенциально вредоносную активность и выполнить устранение неполадок системы или предпринять другие соответствующие действия.
Экзамен RHCE: управление системными журналами с помощью Rsyslogd и Logrotate - часть 5
В RHEL 7, то rsyslogd демон отвечает за ведение журнала системы и считывает его конфигурацию из /etc/rsyslog.conf (этот файл определяет расположение по умолчанию для всех системных журналов) и из файлов внутри /etc/rsyslog.d, если есть.
Конфигурация Rsyslogd
Быстрый осмотр rsyslog.conf будет полезно для начала. Этот файл разделен на 3 основных раздела: Модули (поскольку rsyslog имеет модульную конструкцию), Глобальный директивы (используются для установки глобальных свойств демона rsyslogd) и Правила. Как вы, вероятно, догадались, в этом последнем разделе указывается, что регистрируется или отображается (также известный как селектор) и где, и это будет нашим фокусом в этой статье.
Типичная линия в rsyslog.conf как следует:
Конфигурация Rsyslogd
На изображении выше мы видим, что селектор состоит из одной или нескольких пар Объект: Приоритет разделенные точкой с запятой, где Facility описывает тип сообщения (см. раздел 4.1.1 в RFC 3164 чтобы увидеть полный список возможностей, доступных для rsyslog), а Priority указывает степень серьезности, которая может быть одним из следующих слов, не требующих пояснений:
отлаживать
Информация
уведомление
предупреждение
ошибаться
крит
тревога
возникать
Хотя само по себе ключевое слово не является приоритетом, никто означает отсутствие приоритета для данного объекта.
Примечание: Данный приоритет указывает, что все сообщения с таким приоритетом и выше должны регистрироваться. Таким образом, строка в приведенном выше примере указывает rsyslogd демон для регистрации всех сообщений с приоритетом информации или выше (независимо от средства), кроме тех, которые принадлежат Почта, authpriv, и cron сервисов (сообщения, поступающие от этих объектов, учитываться не будут) на /var/log/messages.
Вы также можете сгруппировать несколько пунктов обслуживания, используя знак двоеточия, чтобы применить ко всем один и тот же приоритет. Таким образом, строка:
*.Информация; mail.none; authpriv.none; cron.none / var / log / messages.
Может быть переписано как
*.Информация; mail, authpriv, cron.none / var / log / messages.
Другими словами, объекты Почта, authpriv, и cron сгруппированы и ключевое слово никто применяется к трем из них.
Создание настраиваемого файла журнала
Чтобы записывать все сообщения демона в /var/log/tecmint.log, нам нужно добавить следующую строку либо в rsyslog.conf или в отдельном файле (проще управлять) внутри /etc/rsyslog.d:
демон. * /var/log/tecmint.log.
Давайте перезапустим демон (обратите внимание, что имя службы не заканчивается на d):
# systemctl перезапустить rsyslog.
И проверьте содержимое нашего пользовательского журнала до и после перезапуска двух случайных демонов:
Создать собственный файл журнала
В качестве упражнения для самообучения я бы порекомендовал вам поиграть со средствами и приоритетами и либо записывать дополнительные сообщения в существующие файлы журналов, либо создавать новые, как в предыдущем примере.
Вращение журналов с помощью Logrotate
Чтобы файлы журналов не разрастались бесконечно, logrotate Утилита используется для поворота, сжатия, удаления и, в качестве альтернативы, отправки журналов по электронной почте, что упрощает администрирование систем, генерирующих большое количество файлов журналов.
Предлагаемое чтение:Как настроить и управлять ротацией журналов с помощью Logrotate в Linux
Logrotate работает ежедневно как cron работа (/etc/cron.daily/logrotate) и считывает его конфигурацию из /etc/logrotate.conf и из файлов, расположенных в /etc/logrotate.d, если есть.
Как и в случае с rsyslog, даже если вы можете включить настройки для определенных служб в основной файл, создание отдельных файлов конфигурации для каждого из них поможет лучше организовать ваши настройки.
Давайте посмотрим на типичный logrotate.conf:
Конфигурация Logrotate
В приведенном выше примере logrotate выполнит следующие действия для /var/loh/wtmp: пытайтесь чередовать только один раз в месяц, но только если файл не менее 1 МБ по размеру, затем создайте новый файл журнала с разрешениями, установленными на 0664 и право собственности предоставляется пользователю root и группе utmp. Затем сохраните только один архивный журнал, как указано в директиве rotate:
Ежемесячные журналы Logrotate
Давайте теперь рассмотрим другой пример, найденный в /etc/logrotate.d/httpd:
Повернуть файлы журнала Apache
Вы можете узнать больше о настройках для logrotate на его страницах руководства (человек logrotate и человек logrotate.conf). Оба файла предоставляются вместе с этой статьей в формате PDF для удобства чтения.
Как системный инженер, вы сами решаете, как долго и в каком формате будут храниться журналы, в зависимости от того, есть ли у вас /var в отдельной перегородке / логический том. В противном случае вы действительно хотите рассмотреть возможность удаления старых журналов, чтобы сэкономить место для хранения. С другой стороны, вы можете быть вынуждены вести несколько журналов для будущего аудита безопасности в соответствии с внутренней политикой вашей компании или клиента.
Сохранение журналов в базе данных
Конечно, исследуя логи (даже с помощью таких инструментов, как grep и регулярные выражения) может стать довольно утомительной задачей. По этой причине, rsyslog позволяет нам экспортировать их в базу данных (OTB поддерживаемые СУБД включают MySQL, MariaDB, PostgreSQL и Oracle.
В этом разделе руководства предполагается, что вы уже установили MariaDB сервер и клиент в том же самом поле RHEL 7, в котором ведутся журналы:
Затем используйте mysql_secure_installation утилита для установки пароля для пользователя root и других соображений безопасности:
Безопасная база данных MySQL
Примечание: Если вы не хотите использовать MariaDB пользователь root для вставки сообщений журнала в базу данных, вы можете настроить для этого другую учетную запись пользователя. Объяснение того, как это сделать, выходит за рамки данного руководства, но подробно описано в Знание MariaDB основание. В этом руководстве для простоты мы будем использовать учетную запись root.
Затем загрузите createDB.sql сценарий из GitHub и импортируйте его на свой сервер базы данных:
# mysql -u root -p Сохранение журналов сервера в базе данных
Наконец, добавьте следующие строки в /etc/rsyslog.conf:
Теперь выполните некоторые задачи, которые изменят журналы (например, остановку и запуск служб), затем войдите на свой сервер БД и используйте стандартные команды SQL для отображения и поиска в журналах:
ИСПОЛЬЗОВАТЬ Syslog; ВЫБЕРИТЕ ReceivedAt, сообщение из SystemEvents;
Журналы запросов в базе данных
Резюме
В этой статье мы объяснили, как настроить ведение системного журнала, как чередовать журналы и как перенаправлять сообщения в базу данных для облегчения поиска. Мы надеемся, что эти навыки пригодятся вам при подготовке к Экзамен RHCE а также в ваших повседневных обязанностях.
Как всегда, мы будем рады вашим отзывам. Не стесняйтесь использовать форму ниже, чтобы связаться с нами.