3.4.3 Рекомендации ФСТЭК России по устранению типовых ошибок конфигурации общесистемного и прикладного программного обеспечения от 09.02.2026
1. Настройка парольной политики
2. Обеспечение безопасной аутентификации в СУБД
3. Защита учётных данных и ограничение доступа к конфигурационным файлам
4. Управление сетевыми портами
5. Настройка входа в систему
6. Безопасная настройка SSH-сервера
7. Контроль прав доступа к файлам и директориям
8. Инвентаризация и отключение неиспользуемых служб
9. Управление учётными записями и минимизация привилегий
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Все
1. Требования к безопасности паролей
Использование слабых пользовательских паролей создаёт прямые угрозы безопасности информации: возможность реализации атак «грубой силы» (Brute Force, T1110) и компрометации учётных записей (Compromise Accounts, T1586). Для предотвращения указанных угроз рекомендуется выполнить следующие меры защиты.
1.1. Настройка парольной политики
Настроить парольную политику на уровне операционной системы, обеспечив обязательную проверку сложности паролей (длина, использование символов разных категорий, запрет простых и словарных паролей).
Рекомендуется установить политику паролей с использованием модулей Pluggable Authentication Modules (PAM) или файла /etc/login.defs.
1.1.1. Настройка базовых правил политики
Файл /etc/login.defs используется системными утилитами (например, passwd, useradd) для определения базовых правил парольной политики.
Для редактирования файла выполните в терминале следующую команду:
sudo nano /etc/login.defs
В открывшемся редакторе nano установите параметры, представленные в таблице:
| Параметр | Назначение | Рекомендованное значение |
|---|---|---|
PASS_MAX_DAYS
|
Максимальный срок действия пароля. |
90
|
PASS_MIN_DAYS
|
Минимальное число дней между сменами пароля. |
1–7
|
PASS_WARN_AGE
|
За сколько дней до истечения срока показать предупреждение. |
7–14
|
PASS_MIN_LEN
|
Минимальная длина пароля. |
15
|
ENCRYPT_METHOD
|
Метод шифрования пароля (SHA512, YESCRYPT, BCRYPT). |
SHA512 или YESCRYPT
|
После внесения изменений сохраните файл, нажав Ctrl + S, затем Ctrl + X.
Перезапустите терминал (в некоторых случаях потребуется заново создать пользователей), чтобы параметры применились.
Файл /etc/login.defs не всегда гарантирует строгую проверку парольной политики. В качестве усиления проверки парольной политики рекомендуется использовать модуль pam_pwquality.
1.1.2. Настройка сложности паролей
Для проверки паролей рекомендуется использовать модуль pam_pwquality.
Расположение конфигураций модуля:
-
основной файл правил — /etc/security/pwquality.conf;
-
файл активации модуля PAM — /etc/pam.d/system-auth.
Настройка сложности паролей выполняется одним из следующих способов.
Способ 1 — настройка может быть выполнена через утилиту authselect:
1. Посмотрите текущий профиль:
authselect current
2. Создайте пользовательский профиль на основе текущего:
sudo authselect create-profile custom-policy -b sssd --symlink-pam
3. Активируйте созданный профиль:
sudo authselect select custom/custom-policy
4. Отредактируйте файл профиля:
sudo nano /etc/authselect/custom/custom-policy/system-auth
5. Найдите строку с pam_pwquality.so и приведите её к виду:
password requisite pam_pwquality.so enforce_for_root retry=3 minlen=15 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
где:
retry = 3— количество попыток ввода пароля;minlen = 15— минимальная длина пароля;ucredit = -1— минимум 1 заглавная буква;lcredit = -1— минимум 1 строчная буква;dcredit = -1— минимум 1 цифра;ocredit = -1— минимум 1 специальный символ,enforce_for_root— применять политику для root.
Сохраните изменения.
6. Примените изменения:
sudo authselect apply-changes
Способ 2 — настройка через /etc/security/pwquality.conf.
1. Откройте файл на редактирование:
sudo nano /etc/security/pwquality.conf
2. Раскомментируйте (удалите # в начале) и приведите следующие строки к виду:
retry=3 minlen = 15 ucredit = -1 lcredit = -1 dcredit = -1 ocredit = -1 enforce_for_root
3. Сохраните файл.
Способ 3 — настройка через /etc/pam.d/system-auth.
Файл /etc/pam.d/system-auth генерируется автоматически утилитой authselect. Прямое редактирование этого файла не рекомендуется — изменения будут потеряны. Если требуется редактировать файл /etc/pam.d/system-auth напрямую, предварительно выполните:
sudo authselect opt-out
1. Откройте файл на редактирование:
sudo nano /etc/pam.d/system-auth
2. Найдите строку, содержащую pam_pwquality.so и приведите ее к виду:
password requisite pam_pwquality.so enforce_for_root retry=3 minlen=15 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
3. Сохраните файл, нажав Ctrl + S, затем Ctrl + X.
1.1.3. Настройка блокировки входа
Для усиления защиты рекомендуется применять блокировку входа после неудачных попыток. Для этого используйте модуль pam_faillock (входит в состав пакета pam). Настройка выполняется через утилиту authselect, так как файлы PAM генерируются автоматически.
1. Включите функцию with-faillock:
sudo authselect enable-feature with-faillock
Функция with-faillock обрабатывает блокировку при неудачной аутентификации.
2. Примените изменения:
sudo authselect apply-changes -b
Проверить примененные изменения можно с помощью команды:
authselect current
Пример вывода:
Включенные функции: - with-faillock
3. Настройте параметры блокировки в файле /etc/security/faillock.conf:
sudo nano /etc/security/faillock.conf
Раскомментируйте и измените следующие строки:
deny = 5 unlock_time = 900
где:
-
deny = 5— количество неудачных попыток перед блокировкой; -
unlock_time = 900— время блокировки в секундах (900 сек= 15 минут).
4. Проверьте конфигурацию:
authselect check
Пример вывода:
Текущая конфигурация действительна.
1.2. Запрет повторного использования паролей
Обеспечить запрет на повторное использование паролей путём ведения журнала использованных паролей в соответствии с парольной политикой.
Для запрета повторного использования паролей используется PAM-модуль pam_pwhistory, который сохраняет хеши предыдущих паролей пользователя и не позволяет устанавливать пароль, совпадающий с одним из сохранённых.
Прежде чем включать модуль в PAM-стек, необходимо задать его параметры. Для этого в системе предусмотрен конфигурационный файл /etc/security/pwhistory.conf, в котором указываются основные настройки политики запоминания паролей.
1. Откройте файл на редактирование:sudo nano /etc/security/pwhistory.conf
2. Раскомментируйте следующие строки:
remember=10 enforce_for_root
где:
remember=10— запоминать последние 10 паролей пользователя,enforce_for_root— применять политику для root.
3. Сохраните файл.
4. Включите модуль в PAM-стеке одним из способов:
Способ 1 — настройка может быть выполнена через утилиту authselect:
Проверьте, какой профиль активен:
sudo authselect current
Добавьте параметр для включения модуля (замените профиль вместо local):
sudo authselect select local with-pwhistory --force
где:
local— текущий профиль;with-pwhistory— специальный флаг, который добавляет строку в system-auth автоматически и безопасно;--force— применяет изменения даже если есть локальные правки.
Способ 2 — настройка через /etc/pam.d/system-auth.
Файл /etc/pam.d/system-auth генерируется автоматически утилитой authselect. Прямое редактирование этого файла не рекомендуется — изменения будут потеряны. Если требуется редактировать файл /etc/pam.d/system-auth напрямую, предварительно выполните:
sudo authselect opt-out
1. Откройте файл на редактирование:
sudo nano /etc/pam.d/system-auth
2. Найдите секцию, которая начинается со слова password. Вставьте строку между pam_pwquality.so (проверка сложности) и pam_unix.so (смена пароля).
Добавьте строку:
password required pam_pwhistory.so use_authtok
3. Сохраните изменения.
Журнал использованных паролей хранится в файле /etc/security/opasswd.
1.3. Двухфакторная аутентификация
Обеспечить применение двухфакторной аутентификации для привилегированных пользователей информационных систем.
Для обеспечения двухфакторной аутентификации привилегированных пользователей рекомендуется использовать PAM-модуль pam_usb, который позволяет применять USB-накопители в качестве физического токена.
Настройка двухфакторной аутентификации с pam_usb:
sudo pamusb-conf --add-device <имя_токена>
Следуйте инструкциям, выберите обнаруженное устройство.
2. Добавьте пользователя для аутентификации с помощью токена:
sudo pamusb-conf --add-user <имя_пользователя>
3. Настройте PAM-модуль. Отредактируйте файл /etc/pam.d/system-auth (через профиль authselect). Для двухфакторной аутентификации (требуется и токен, и пароль):
auth required pam_usb.so
или для входа по токену или паролю:
auth sufficient pam_usb.so
4. Примените изменения authselect:
sudo authselect apply-changes
Подробнее можно ознакомиться в нашей статье «Настройка двухфакторной аутентификации с помощью модуля pam_usb».
В качестве альтернативного решения могут использоваться коммерческие продукты, такие как Рутокен (Актив) и JaCarta (Аладдин Р.Д.), для которых предусмотрена интеграция через собственные PAM-модули. Инструкцию по настройке следует уточнять в документации производителя.
1.4. Проверка на утечки паролей
Реализовать регулярную проверку паролей на известные утечки с помощью утилит, например, HaveIBeenPwned API или OpenVAS.
1.4.1. HaveIBeenPwned
HaveIBeenPwned (HIBP) — это бесплатный онлайн-сервис, созданный известным специалистом по информационной безопасности Троем Хантом. Сервис аккумулирует базу данных скомпрометированных учетных записей из тысяч публичных утечек и позволяет проверять, были ли пароли пользователей скомпрометированы. На сегодняшний день база HIBP содержит более 15 миллиардов записей, что делает её одним из наиболее полных источников данных об утечках паролей.
Сервис использует безопасный метод проверки k-анонимности, при котором на внешний сервер передаются только первые 5 символов SHA-1 хеша пароля. Это гарантирует, что даже в случае перехвата запроса восстановить исходный пароль невозможно, так как полный хеш не передается. Пароль никогда не покидает локальную систему, а отправляется только частичный хеш для сверки с базой данных.
Для работы с HIBP API используется Python-библиотека haveibeenpwned-py:
pip install haveibeenpwned-py
Для проверки пароля в интерактивном режиме запустите интерпретатор Python:
python3
Выполните следующие команды:
from haveibeenpwned import HIBP hibp = HIBP()
Для проверки пароля выполните команду:
print(hibp.is_password_pwned("<введите_пароль>"))
Метод is_password_pwned() возвращает целое число:
> 0— пароль обнаружен в базах утечек, число указывает на количество раз, которое пароль встречался в скомпрометированных базах данных;-
0— пароль не найден в базах утечек и на данный момент является безопасным для использования.
Для выхода из интерпретатора выполните команду:
exit()
Пример сеанса:
>>> from haveibeenpwned import HIBP
>>> hibp = HIBP()
>>> print(hibp.is_password_pwned("password123"))
2266543
>>> print(hibp.is_password_pwned("MySecurePassword_2026!"))
0
>>> exit()
1.4.2. OpenVAS
OpenVAS (Open Vulnerability Assessment System) представляет собой систему управления уязвимостями, которая сканирует политики паролей, проверяет наличие пустых/стандартных паролей у системных учетных записей и обнаруживает слабые места в конфигурации аутентификации.
OpenVAS работает как центральный сервис, управляющий сканированием через протокол OTP (OpenVAS Transfer Protocol). Результаты сканирования сохраняются в базе данных и могут быть проанализированы через веб-интерфейс GSA (Greenbone Security Assistant) или через интерфейс командной строки.
Для установки OpenVAS рекомендуется использовать Docker. Для установки средства контейнеризации выполните команду (потребуются права администратора):
sudo dnf install docker-ce docker-ce-cli
После успешной установки запустите сервис контейнеризации и добавьте его в автозагрузку:
sudo systemctl enable docker --now
Добавьте пользователя в группу docker:
sudo usermod -aG docker $USER
Для применения назначенных прав необходимо выйти и снова войти в сессию пользователя.
Запустите OpenVAS в контейнере:
docker run -d -p 443:443 --name openvas \ -e SKIP_NVT_FEED_SYNC=false \ mikesplain/openvas
Подождите, пока контейнер завершит инициализацию и синхронизацию баз данных. Для вывода процесса выполните:
docker logs -f openvas
Когда появится сообщение о том, что сервис готов к работе, можно переходить к входу в веб-интерфейс.
Для доступа к веб-интерфейсу откройте браузер и перейдите по адресу: https://localhost. Введите учетные данные:
- логин —
admin, - пароль —
admin.
Нажмите «Login» для входа в систему.

После входа отобразится панель управления Greenbone Security Assistant, где можно создавать задачи, запускать сканирование и просматривать отчёты об уязвимостях.

Для просмотра отчёта о сканировании на наличие слабых паролей, выполните следующие шаги:
1. Создайте цель для сканирования локальной системы. В веб-интерфейсе GSA перейдите в «Configuration» — «Targets»:

В левом верхнем углу веб-интерфейса нажмите значок звёздочки — «New Target» («Новая цель»):

Заполните поля:
- Name —
Localhost Password Audit; - Hosts —
localhost; - Port List —
All IANA assigned TCP.
Нажмите «Create».

2. Создайте задачу с профилем проверки паролей. Перейдите в «Scans» — «Tasks»:

В левом верхнем углу веб-интерфейса нажмите значок звёздочки — «New Task»:

Заполните поля:
- Name —
Password Policy Scan; - Scan Targets — выберите созданную цель
Localhost Password Audit; - Schedule —
Once(для разового сканирования); - Alterable Task —
Yes; - Scan Config — выберите профиль сканирования
Full and fast.
Нажмите «Create».

3. Запустите сканирование. Нажмите кнопку «Start» рядом с созданной задачей.

4. Обновите страницу. Дождитесь завершения сканирования (статус изменится на Done).

Нажмите на дату в колонке «Last»:

В отчете найдите разделы, связанные с аутентификацией и паролями.
1.5. Проверка на словарные пароли
Реализовать регулярную проверку паролей на соответствие парольным словарям с использованием OpenVAS.
2. Обеспечение безопасной аутентификации в СУБД
Отсутствие обязательной аутентификации для доступа к базам данных создаёт угрозы получения несанкционированного доступа и утечки защищаемой информации. Для предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
2.1. Отключение неавторизованного доступа к СУБД
Отключить возможность неавторизованного доступа в настройках систем управления базами данных (далее — СУБД). Ниже приведены рекомендации для PostgreSQL, как наиболее распространённой СУБД в РЕД ОС.
PostgreSQL по умолчанию не поддерживает неавторизованный вход, однако неправильная настройка конфигурационного файла pg_hba.conf может допустить такую ситуацию. Файл конфигурации находится в директории /var/lib/pgsql/<версия>/data/pg_hba.conf.
Для запрета подключения без аутентификации откройте на редактирование файл /var/lib/pgsql/<версия>/data/pg_hba.conf:
sudo nano /var/lib/pgsql/<версия>/data/pg_hba.conf
В строке вида:
host all all 0.0.0.0/0 trust
замените значение trust, которое разрешает подключение без пароля, на нужный метод аутентификации --scram-sha-256 или md5. Например:
host all all 0.0.0.0/0 md5
Сохраните изменения (Ctrl+S) и закройте (Ctrl+X) файл.
Для применения новых настроек перезапустите postgresql:
sudo systemctl restart postgresql
2.2. Удаление гостевых учётных записей СУБД
Удалить гостевые учётные записи СУБД. В PostgreSQL не предусмотрены гостевые учётные записи по умолчанию, однако рекомендуется проверить наличие пользователей с пустыми паролями или именами guest, anon, test и при необходимости удалить их командой:
DROP USER <имя_пользователя>;
2.3. Ограничение IP-адресов для доступа к СУБД
Ограничить IP-адреса, с которых возможен доступ к СУБД, с помощью средств межсетевого экранирования (например, iptables, nftables) или параметра listen_addresses в файле /var/lib/pgsql/<версия>/data/postgresql.conf, установив значение 'localhost' или IP-адрес.
2.4. Включение TLS/SSL для клиентских соединений
Включить режимы TLS/SSL для клиентских соединений. Для PostgreSQL необходимо настроить шифрование трафика между клиентом и сервером базы данных путём внесения следующих изменений в конфигурационные файлы СУБД (/var/lib/pgsql/<версия>/data/postgresql.conf):
ssl = on ssl_ca_file = '/etc/ssl/postgresql/root.crt' ssl_cert_file = '/etc/ssl/postgresql/server.crt' ssl_key_file = '/etc/ssl/postgresql/server.key' ssl_min_protocol_version = 'TLSv1.2'
В случае использования внешней аутентификации (LDAP) необходимо обеспечить шифрование клиентских подключений к базе данных (использовать hostssl в /var/lib/pgsql/<версия>/data/pg_hba.conf) и подключения СУБД к контроллеру домена (параметр ldaptls=1 или ldapscheme=ldaps).
2.5. Настройка аудита событий доступа к СУБД
Организовать аудит событий доступа к СУБД. Для PostgreSQL аудит событий может быть реализован с использованием встроенного расширения pgaudit.
Для установки расширения выполните команду:
sudo dnf install pgaudit
Для подключения к базе данных выполните команду:
CREATE EXTENSION pgaudit;
В файле /var/lib/pgsql/<версия>/data/postgresql.conf выполните настройку с помощью параметров pgaudit.log, pgaudit.log_catalog. Рекомендуется фиксировать события авторизации (успешные и неудачные попытки входа), изменения привилегий и структуры базы данных.
3. Защита учётных данных и ограничение доступа к конфигурационным файлам
Хранение учётных данных в открытом виде создаёт угрозы утечки аутентификационных данных. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
3.1. Запрет открытого хранения учётных данных
Запретить пользователям информационной системы хранить учётные данные в файлах .env, .txt, .ini без шифрования.
3.2. Хранилища паролей и связки ключей
Использовать отечественные хранилища паролей и учётных данных (например, Kaspersky Password Manager) или системные связки ключей (например, gnome-keyring, libsecret).
3.3. Защищённые хранилища секретов для скриптов
При необходимости использования учётных данных в скриптах применять переменные окружения или защищённые хранилища секретов (например, pass, Vault), а не указывать учётные данные непосредственно в коде скрипта.
3.4. Ограничение доступа к конфигурационным файлам
Ограничить доступ к конфигурационным файлам, содержащим учётные данные, с использованием утилит chmod, chown и списков доступа в РЕД ОС.
Например, чтобы установить владельца и группу для файла /etc/app/config.yml, необходимо выполнить следующую команду в терминале:
sudo chown root:app /etc/app/config.yml
Чтобы установить права на чтение только для владельца, необходимо выполнить следующую команду:
sudo chmod 640 /etc/myapp/config.yml
где 640 означает:
-
6(rw-) — для владельца, -
4(r--) — для группы, -
0(---) — для всех остальных.
Также возможно создать специализированную группу и предоставить доступ к файлу через неё:
-
Создать группу:
sudo groupadd app
-
Добавить пользователя в группу:
sudo usermod -aG app serviceuser
-
Назначить группу владельцем для файла:
chgrp app myfile.txt
-
Рекурсивно сменить группу для всех файлов в директории:
chgrp -R app /project
Для обнаружения конфигурационных файлов, доступных для всех (с правами на чтение и запись у любой учётной записи), рекомендуется выполнить следующую команду:
find /etc -type f -name "*.conf" -perm -004 -exec ls -l {} \;
Для усиления контроля ограничения доступа к файлам возможно использование SELinux (в РЕД ОС включён по умолчанию в режиме Enforcing). Пример ограничения доступа к конфигурационному файлу Nginx:
semanage fcontext -a -t httpd_config_t "/etc/nginx/nginx.conf" restorecon -v /etc/nginx/nginx.conf
Мониторинг изменений прав доступа к файлу возможно осуществить с помощью утилиты auditd. Для мониторинга доступа к файлу выполните:
auditctl -w /etc/app/config.yml -p war -k config_watchДля просмотра записанных событий выполните:
ausearch -k config_watch
3.5. Сканирование учётных данных в репозиториях
Периодически производить сканирование репозиториев хранимых файлов на наличие в них учетных данных с помощью инструментов truffleHog, git-secrets, gitleaks.
4. Управление сетевыми портами
Наличие открытых неиспользуемых портов создаёт угрозу их использования злоумышленниками. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
4.1. Аудит открытых портов
Организовать проведение регулярного аудита открытых портов с использованием инструментов nmap, ss и netstat.
4.2. Блокировка неиспользуемых портов
Осуществить блокировку неиспользуемых портов.
4.3. Настройка политик блокировки портов
Использовать для блокировки портов политики безопасности: firewalld, iptables, nftables.
4.4. Мониторинг соединений и оповещение
Осуществить мониторинг активных соединений (например, с помощью утилит bandwhich или auditd) и автоматическое оповещение администраторов безопасности в случае подозрительной активности.
5. Настройка входа в систему
Активированный автовход пользователя создает угрозу получения несанкционированного доступа внутренним нарушителем. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия:
- осуществлять проверку конфигурации служб удаленного доступа (RDP, SSH);
- принудительно включить ввод пароля при входе в систему.
6. Безопасная настройка SSH-сервера
SSH-сервер, разрешающий вход по паролю и привилегированный доступ (root), создаёт угрозу получения несанкционированного доступа. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
6.1. Запрет авторизации по паролю
Отключить авторизацию пользователей по паролю и доступ с «нулевым» паролем путём внесения следующих изменений в файл /etc/ssh/sshd_config:
PermitEmptyPasswords no PermitRootLogin no PasswordAuthentication no
6.2. Доступ только по SSH-ключам
Обеспечить доступ только по SSH-ключам.
6.3. Ограничение IP-адресов для SSH
Ограничить IP-адреса, которые используются для входа с помощью политик AllowUsers/AllowGroups. Подробнее в нашей инструкции «Работа с клиентом и сервером SSH».
6.4. Мониторинг событий SSH
Организовать мониторинг событий SSH-доступа и анализ полученных событий. В РЕД ОС SSH-журналирование осуществляется с использованием утилиты sshd, а события записываются в системный журнал. Основные файлы, содержащие записи событий, представлены в таблице:
| Файл | Назначение |
|---|---|
| /var/log/secure | Аутентификация, включая SSH и sudo. |
| journalctl -u ssh | Журнал systemd-юнита SSHD. |
По умолчанию sshd осуществляет запись следующих событий:
-
успешные и неуспешные попытки входа;
-
ошибки аутентификации (неверный логин, пароль, ключ);
-
попытки входа с отключёнными пользователями;
-
использование команд sudo, su, scp, sftp.
Пример строк в файле /var/log/secure:
Jun 18 12:43:22 server sshd[17245]: Accepted password for alice from 192.168.1.25 port 52914 ssh2 Jun 18 12:45:00 server sshd[17252]: Failed password for invalid user admin from 192.168.1.30 port 52788 ssh2
Настройку уровня записи событий возможно осуществить путём внесения следующих изменений в файл конфигурации /etc/ssh/sshd_config:
LogLevel VERBOSE
В качестве дополнительных уровней допускается использование: QUIET, FATAL, ERROR (минимальные); INFO (по умолчанию); VERBOSE (включает запись ключей при аутентификации без ключей).
Для применения настроек необходимо выполнить следующую команду в терминале:
sudo systemctl restart sshd
Для ручного анализа SSH-логов рекомендуется использовать следующие команды:
-
Поиск всех успешных авторизаций:
grep "Accepted" /var/log/secure
-
Поиск всех неудачных авторизаций:
grep "Failed password" /var/log/secure
-
Подсчёт количества попыток входа по IP-адресу:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr -
Подсчёт количества попыток входа по пользователям:
grep "Failed password" /var/log/secure | awk '{print $(NF-5)}' | sort | uniq -c | sort -nr
Для автоматического анализа записей событий SSH рекомендуется использовать утилиту fail2ban, которая также автоматически блокирует IP-адреса с частыми ошибками входа.
Для установки fail2ban необходимо выполнить:
sudo dnf install fail2ban
Для настройки указанного инструмента необходимо выполнить следующие изменения в файле конфигурации /etc/fail2ban/jail.local:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/secure maxretry = 5 bantime = 3600
Для более подробного аудита рекомендуется использовать утилиту auditd со следующими правилами:
auditctl -w /usr/sbin/sshd -p x -k ssh_exec ausearch -k ssh_exec
7. Контроль прав доступа к файлам и директориям
Отсутствие назначенных прав доступа на файлы и директории создаёт угрозу их несанкционированной модификации любыми пользователями. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
7.1. Аудит прав доступа
Организовать проведение регулярного аудита прав доступа файлов и директорий с использованием команды ls -l.
7.2. Принцип наименьших привилегий
Использовать для разграничения доступа принцип наименьших привилегий.
7.3. Ограничение доступа к конфигурациям и журналам
Ограничить доступ к файлам конфигурации, выполняемым скриптам и журналам событий информационной инфраструктуры.
7.4. Настройка списков контроля доступа
Осуществить настройку списков контроля доступа с использованием утилит setfacl и getfacl. Например, для предоставления доступа пользователю appuser к файлу /etc/app/config.conf:
setfacl -m u:appuser:r /etc/app/config.conf getfacl /etc/app/config.conf
7.5. Поиск общедоступных для записи файлов и каталогов
Организовать регулярное сканирование инфраструктуры на наличие директорий и файлов, доступных для записи всем пользователям (с правами 777 или с битом записи для всех). Для этого рекомендуется использовать утилиту auditd со следующим правилом:
auditctl -w / -p w -k world_write_watch
В качестве дополнительного инструмента контроля рекомендуется использовать Lynis. Для установки Lynis выполните команду в терминале:
sudo dnf install lynis
Для формирования отчёта по аудиту инфраструктуры с использованием Lynis необходимо выполнить:
sudo lynis audit system
Указанный отчёт будет содержать информацию об объектах, доступных для записи всем пользователям. Для обнаруженных объектов необходимо осуществить разграничение доступа (например, с помощью chmod, chown или setfacl).
8. Инвентаризация и отключение неиспользуемых служб
Наличие в информационной инфраструктуре неиспользуемых служб и компонентов операционной системы создаёт угрозу их использования злоумышленниками. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
8.1. Инвентаризация служб
Проводить периодическую инвентаризацию активных служб. Рекомендуется использовать утилиту systemctl, а также команду терминала:
service --status-all
Примеры команд для инвентаризации служб в РЕД ОС:
-
Список всех активных служб:
systemctl list-units --type=service --state=running
-
Список всех служб (включая отключённые):
systemctl list-units --type=service --all
-
Проверка статуса конкретной службы:
systemctl status <имя_службы>
8.2. Отключение неиспользуемых служб
Отключить неиспользуемые службы, например, Telnet, FTP, SNMPv1/v2c и другие, не требующиеся для функционирования информационной системы.
Для отключения службы необходимо выполнить:
sudo systemctl stop <имя_службы> sudo systemctl disable <имя_службы> sudo systemctl mask <имя_службы>
8.3. Контроль запуска критичных служб
Осуществить настройку контроля запуска критичных служб с использованием systemd. Для мониторинга изменений в службах рекомендуется использовать auditd:
auditctl -w /etc/systemd/system -p wa -k systemd_changes ausearch -k systemd_changes
8.4. Мониторинг автозагрузки служб
Осуществлять периодический мониторинг автозагрузки и изменения запущенных служб. Для просмотра служб, добавленных в автозагрузку, выполните:
systemctl list-unit-files --type=service --state=enabled
Для автоматического оповещения об изменениях в службах рекомендуется настроить auditd или использовать систему мониторинга (например, Zabbix с агентом).
9. Управление учётными записями и минимизация привилегий
Наличие в информационной инфраструктуре неиспользуемых учётных записей, а также учётных записей с избыточными правами создаёт угрозу их использования злоумышленниками. В целях предотвращения указанных угроз безопасности информации рекомендуется выполнить следующие мероприятия.
9.1. Инвентаризация и блокировка учётных записей
Проводить периодическую инвентаризацию учётных записей и отключать неиспользуемые учётные записи:
-
инвентаризацию учётных записей рекомендуется проводить с использованием команды
getent passwd, которая показывает список всех пользователей из /etc/passwd или централизованного источника (например, LDAP); -
для просмотра даты последнего входа всех пользователей рекомендуется использовать команду:
sudo lastlog
-
для просмотра журнала неудачных попыток входа рекомендуется использовать команду:
sudo faillock
-
для просмотра информации о сроке действия пароля рекомендуется использовать команду:
sudo chage -l <имя_пользователя> -
для проверки активных и предыдущих сессий пользователей рекомендуется использовать утилиты who, w, last.
Для блокировки учётных записей используется следующая команда терминала:
sudo usermod -L <имя_пользователя>
Для блокировки входа пользователя используется следующая команда терминала:
sudo passwd -l <имя_пользователя>
Для запрета shell-доступа используется следующая команда терминала:
sudo usermod -s /sbin/nologin <имя_пользователя>
Для установки даты истечения действия учётной записи на «сейчас» используется следующая команда терминала:
sudo chage -E 0 <имя_пользователя>
9.2. Принцип наименьших привилегий
Произвести минимизацию пользовательских привилегий, предоставляя пользователям только те права, которые необходимы для выполнения их служебных обязанностей.
9.3. Выделенные привилегированные учётные записи
Обеспечить использование выделенных привилегированных учётных записей для администрирования информационных систем, а также реализовать запрет использования для этих целей обычных пользовательских учётных записей.
Дата последнего изменения: 15.10.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.