Введение
В системном администрировании и кибербезопасности базовый уровень безопасности (security baseline) — это стандартизированный минимальный уровень конфигурации безопасности для системы или сети. Установление базовых уровней является фундаментальным шагом в укреплении систем, уменьшении поверхности атаки и обеспечении единообразной политики безопасности в организации. Контроли соответствия (compliance controls) — это механизмы и процедуры, используемые для проверки того, что эти базовые уровни соблюдаются и поддерживаются.
В этой лабораторной работе вы получите практический опыт работы с этими концепциями на системе Linux. Вы научитесь определять простой базовый уровень безопасности для новых учетных записей пользователей, проверять правильность применения базового уровня и настраивать демон аудита Linux (auditd) для мониторинга критически важных конфигурационных файлов на предмет несанкционированных изменений. Этот процесс имеет решающее значение для поддержания целостности системы и соблюдения нормативных требований.
К концу этой лабораторной работы вы сможете:
- Изменять системные настройки по умолчанию для пользователей.
- Создавать новых пользователей, соответствующих определенному базовому уровню безопасности.
- Проверять соответствие с помощью стандартных команд Linux.
- Настраивать
auditdдля отслеживания изменений в критически важных файлах. - Искать и просматривать журналы аудита для событий безопасности.
Определение простой базовой настройки безопасности Linux для пользовательских значений по умолчанию
На этом шаге мы определим простой базовый уровень безопасности, установив политики паролей по умолчанию для всех новых пользователей, создаваемых в системе. Мы отредактируем файл /etc/login.defs, который управляет этими настройками по умолчанию.
Сначала откроем конфигурационный файл с помощью nano с привилегиями sudo, поскольку это системный файл.
sudo nano /etc/login.defs
В редакторе nano прокрутите вниз, чтобы найти следующие три параметра, связанные со сроком действия пароля, и измените их значения. Вы можете использовать Ctrl + W для поиска текста в nano.
PASS_MAX_DAYS: Максимальное количество дней, в течение которых может использоваться пароль. Мы установим значение90.PASS_MIN_DAYS: Минимальное количество дней, разрешенное между сменами пароля. Мы установим значение7.PASS_WARN_AGE: Количество дней предупреждения перед истечением срока действия пароля. Мы установим значение14.
Найдите эти строки и измените их следующим образом:
#
## Password aging controls:
#
## PASS_MAX_DAYS Maximum number of days a password may be used.
## PASS_MIN_DAYS Minimum number of days allowed between password changes.
## PASS_WARN_AGE Number of days warning is given before a password expires.
#
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
Внеся изменения, сохраните файл и выйдите из nano, нажав Ctrl + X, затем Y и, наконец, Enter.
Теперь вы установили простой базовый уровень безопасности для политик паролей в вашей системе. Любой новый пользователь, созданный с этого момента, унаследует эти настройки.
Проверка соответствия базовой настройке с помощью системных команд
На этом шаге мы проверим, правильно ли применяется базовый уровень, определенный на предыдущем шаге. Самый прямой способ сделать это — создать нового пользователя и проверить свойства его учетной записи.
Сначала создадим нового пользователя с именем compliance_user. Команда useradd автоматически применит настройки по умолчанию из /etc/login.defs. Флаг -m гарантирует создание домашнего каталога для пользователя.
sudo useradd -m compliance_user
Эта команда не выдаст никакого вывода в случае успеха. Теперь мы можем проверить настройки срока действия пароля для нашего нового пользователя с помощью команды chage (change age) с флагом -l (list).
sudo chage -l compliance_user
Вы должны увидеть вывод, похожий на следующий. Обратите внимание, как значения "Maximum number of days between password change" (Максимальное количество дней между сменами пароля), "Minimum number of days between password change" (Минимальное количество дней между сменами пароля) и "Number of days of warning before password expires" (Количество дней предупреждения перед истечением срока действия пароля) соответствуют базовому уровню, который мы установили в /etc/login.defs.
Last password change : Aug 05, 2025
Password expires : Nov 03, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
Этот вывод подтверждает, что наш базовый уровень эффективен и система соответствует нашей новой политике для новых пользователей.
Настройка Auditd для мониторинга системных вызовов
На этом шаге мы настроим демон аудита Linux (auditd) для мониторинга нашего базового конфигурационного файла, /etc/login.defs, на предмет любых изменений. Это критически важный элемент контроля соответствия, поскольку он предоставляет журнал того, кто и когда изменил файл.
Служба auditd использует набор правил для определения того, какие события следует регистрировать. Мы добавим новое правило для отслеживания любых операций записи или изменения атрибутов нашего файла.
Мы добавим наше правило в файл /etc/audit/rules.d/audit.rules. Использование echo и tee — безопасный способ добавления строки в системный файл.
Выполните следующую команду, чтобы добавить правило аудита:
sudo echo "-w /etc/login.defs -p wa -k login_defs_changes" | sudo tee -a /etc/audit/rules.d/audit.rules
Разберем это правило:
-w /etc/login.defs: Указывает путь к файлу для отслеживания.-p wa: Устанавливает права доступа для аудита.wозначает доступ на запись, аa— изменение атрибутов.-k login_defs_changes: Присваивает пользовательский ключlogin_defs_changesэтим событиям аудита, что облегчает их последующий поиск.
Чтобы новое правило вступило в силу, необходимо перезапустить службу auditd.
sudo systemctl restart auditd
Теперь auditd активно отслеживает /etc/login.defs на предмет любых модификаций.
Генерация и анализ журналов аудита для обеспечения соблюдения политик
На этом шаге мы протестируем правило аудита, вызвав событие, а затем просмотрев сгенерированные журналы. Это демонстрирует, что ваш контроль соответствия работает должным образом.
Чтобы вызвать правило аудита, нам нужно изменить файл /etc/login.defs. Простой способ сделать это, не изменяя содержимое, — использовать команду touch, которая обновляет временные метки доступа и модификации файла. Это действие будет обнаружено auditd как изменение атрибута.
sudo touch /etc/login.defs
Это действие должно было создать событие в журнале аудита. Журналы хранятся в /var/log/audit/audit.log, но они могут быть обширными. Лучший способ найти конкретные события — использовать команду ausearch с ключом, который мы определили на предыдущем шаге.
Найдем все события, помеченные нашим ключом login_defs_changes:
sudo ausearch -k login_defs_changes
Вывод будет содержать одну или несколько записей, связанных с командой touch. Он будет выглядеть примерно так (временные метки и идентификаторы будут отличаться):
----
time->Tue Dec 12 08:35:15 2023
type=PROCTITLE msg=audit(1702370115.321:101): proctitle=746F756368002F6574632F6C6F67696E2E64656673
type=PATH msg=audit(1702370115.321:101): item=0 name="/etc/login.defs" inode=131409 dev=00:1e mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=CWD msg=audit(1702370115.321:101): cwd="/home/labex/project"
type=SYSCALL msg=audit(1702370115.321:101): arch=c000003e syscall=257 success=yes exit=3 a0=ffffff9c a1=7ffc62e212d0 a2=90800 a3=0 items=1 ppid=1102 pid=1125 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="touch" exe="/usr/bin/touch" key="login_defs_changes"
Найдите key="login_defs_changes" в конце записи SYSCALL. Это подтверждает, что auditd успешно зарегистрировал событие изменения нашего критически важного конфигурационного файла, доказывая, что наш механизм мониторинга активен и эффективен.
Резюме
Поздравляем с завершением этой лабораторной работы! Вы успешно прошли основной процесс применения базовых настроек безопасности и внедрения контроля соответствия в системе Linux.
В этой лабораторной работе вы научились:
- Определять базовые настройки безопасности для политик паролей пользователей, изменяя
/etc/login.defs. - Проверять правильность применения базовых настроек для новых пользователей с помощью команды
chage. - Настраивать Linux Audit Daemon (
auditd) для мониторинга критически важных конфигурационных файлов на предмет изменений. - Вызывать и просматривать журналы аудита с помощью
ausearchдля подтверждения работоспособности вашего механизма мониторинга.
Эти навыки являются основополагающими для любого системного администратора или специалиста по безопасности, ответственного за усиление защиты систем, поддержание уровня безопасности и соответствие стандартам, таким как CIS Benchmarks или руководства NIST. Устанавливая четкие базовые настройки и постоянно отслеживая отклонения, вы можете значительно повысить безопасность и целостность вашей ИТ-инфраструктуры.



