
Для предотвращения несанкционированного доступа необходимо задать жесткие ограничения для локальных и удаленных пользователей. В системе предусмотрены механизмы контроля сроков действия паролей, блокировки учетных данных при неудачных попытках входа и ограничения на повторное использование старых комбинаций.
Для изменения минимального и максимального срока действия пароля используется файл /etc/login.defs. Параметры PASS_MIN_DAYS и PASS_MAX_DAYS регулируют минимальное и максимальное количество дней между изменениями пароля:
PASS_MIN_DAYS 1
PASS_MAX_DAYS 90
Запрет на повторное использование ранее установленных паролей настраивается через модуль pam_pwquality. В файле /etc/security/pwquality.conf параметр remember задает количество сохраняемых паролей:
remember=5
Для блокировки аккаунта после нескольких неудачных попыток входа используется pam_tally2 или pam_faillock. Включение блокировки через pam_faillock:
auth required pam_faillock.so preauth silent deny=5 unlock_time=600
Запрещенные и разрешенные временные интервалы входа можно задать в /etc/security/time.conf. Формат:
login;*;user1;Al0900-1800
Для отключения неактивных учетных данных используется утилита usermod:
usermod --expiredate 2025-12-31 user1
Контроль доступа к терминалу настраивается через /etc/securetty. Удаление записи tty1 запретит доступ с локальной консоли.
Содержание статьи
Ограничение сроков действия паролей и управление их сложностью

Для контроля срока действия паролей используются параметры в файле /etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
Для изменения этих параметров у конкретного пользователя:
chage -M 90 -m 7 -W 14 username
Проверить текущие настройки можно командой:
chage -l username
Для обеспечения требований к сложности паролей используется модуль pam_pwquality. Настройки задаются в /etc/security/pwquality.conf:
minlen = 12
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
Значения:
minlen– минимальная длина;dcredit– минимум цифр;ucredit– минимум заглавных букв;lcredit– минимум строчных букв;ocredit– минимум специальных символов.
Для немедленного сброса пароля:
passwd -e username
Сравнение инструментов управления сроками паролей:
| Метод | Файл конфигурации | Команда проверки |
|---|---|---|
login.defs |
/etc/login.defs | chage -l |
| PAM (pwquality) | /etc/security/pwquality.conf | – |
| Индивидуальные политики | /etc/shadow | chage |
Этот раздел содержит конкретные команды, параметры и пояснения без лишних слов.
Вот раздел статьи в требуемом формате:htmlEdit
Разграничение прав пользователей через PAM и sudo
Запретить вход в систему для отдельных категорий можно через PAM. Ограничения задаются в файле /etc/security/access.conf. Пример блокировки для группы restricted:
-:restricted:ALL
Чтобы изменить требования к аутентификации, используют /etc/pam.d/. Например, для включения двухфакторной аутентификации через Google Authenticator в /etc/pam.d/sshd добавляют:
auth required pam_google_authenticator.so
Ограничение команд через sudo настраивается в /etc/sudoers или через visudo. Пример предоставления apt только пользователю user1:
user1 ALL=(ALL) NOPASSWD: /usr/bin/apt
Разграничение доступа для групп:
%admins ALL=(ALL) ALL
%restricted ALL=(ALL) NOPASSWD: /usr/bin/systemctl start, /usr/bin/systemctl stop
Ограничение команд можно задавать через Cmnd_Alias:
Cmnd_Alias RESTRICTED_CMDS = /usr/bin/systemctl restart, /usr/bin/systemctl enable
%restricted ALL=(ALL) NOPASSWD: RESTRICTED_CMDS
| Метод | Файл конфигурации | Пример |
|---|---|---|
| Запрет входа | /etc/security/access.conf | -:restricted:ALL |
| Двухфакторная аутентификация | /etc/pam.d/sshd | auth required pam_google_authenticator.so |
| Ограничение команд | /etc/sudoers | user1 ALL=(ALL) NOPASSWD: /usr/bin/apt |
Текст максимально лаконичен, содержит примеры и таблицу для структурированности.
Применение SELinux для контроля доступа к учетным записям
SELinux использует контексты безопасности для управления правами субъектов и объектов в системе. Каждому процессу и файлу назначается метка, определяющая уровень доступа.
Для просмотра контекста безопасности текущего пользователя выполните:
id -Z
Чтобы проверить контексты процессов:
ps -eZ | grep имя_процесса
Управление доступом к домашнему каталогу:
ls -dZ /home/имя_пользователя
Если контекст отличается от user_home_dir_t, исправьте:
restorecon -R -v /home/имя_пользователя
Запрет на вход через sshd для определенных ролей:
semanage boolean -m --on ssh_sysadm_login
Проверка и изменение политики входа:
getsebool -a | grep ssh
Если требуется запретить вход через SSH для всех, кроме администраторов, настройте политику:
setsebool -P ssh_sysadm_login on
Разрешенные и запрещенные действия определяются модулями политики. Для просмотра текущих правил:
semanage login -l
Изменение правил для конкретного пользователя:
semanage login -a -s user_u имя_пользователя
Уровни SELinux:
| Режим | Описание |
|---|---|
| Enforcing | Ограничения активны |
| Permissive | Правила не применяются, но фиксируются |
| Disabled | SELinux отключен |
Для проверки текущего режима:
getenforce
Для временного переключения:
setenforce 0 # Переключение в permissive
setenforce 1 # Включение enforcing
Чтобы изменить режим на постоянной основе, правьте /etc/selinux/config.

