Настройка ограничений аутентификации для доменных групп в Linux

Законспектирую еще один момент – как выполняется настройка ограничений аутентификации для доменных групп в Linux.

В качестве ОС я буду использовать сервер с Astra Linux SE, который присоединен к домену Active Directory. Сервер является виртуальной машиной.

Отмечу, что сценарий настройки ограничений аутентификации более применим к серверам, т.к. на рабочих станциях в подавляющем большинстве случаев пользователи должны свободно аутентифицироваться.

Сценарий настройки

Нужно разрешить аутентификацию для определенных доменных групп. Также одну из доменных групп нужно сделать администратором сервера с Astra Linux.

Сводная информация по группам приведена в таблице ниже.

Название группы Active DirectoryНазначение группы
Linux AdminsЭта группа должна быть администратором на Linux сервере
Linux UsersПользователи из этой группы должны иметь возможность подключаться к серверу по SSH, но без
привилегированных разрешений

Состав групп приведен ниже:

Поскольку сервер виртуальный, то консольный доступ к нему будет возможен только через панель управления гипервизором. В целом даже для физического сервера консольный доступ в большей части доступен только непосредственно находясь в серверной. Но этот момент стоит учитывать. Если вам нужно запретить даже консольный вход для всех групп кроме определенных, то решение ниже может вам не подойти.

Настройка ограничений аутентификации для доменных групп в Linux

На самом деле задачу можно разбить на две части:

1. Добавить одной из доменных групп разрешения привилегированного пользователя.

2. Запретить всем пользователям, кроме пользователей определенной доменной и локальной группы, вход по SSH.

Повторюсь, что данное решение может вам не подойти, если нужно еще ограничить подключение через консоль.

Добавление разрешений привилегированного пользователя для доменной группы

Это довольно простой шаг. Нужно отредактировать файл sudoers:

visudo

Добавляем строчку:

%Linux\ Admins     ALL=(ALL:ALL) ALL

Сохраняем внесенные изменения.

Обратите внимание на знак “\”. Если в имени группы есть пробел, то его необходимо экранировать через этот знак.

Это команда позволяет группы (знак % означает, что это группа, а не пользователь) “Linux Admins” запускать любые команды (последний блок ALL) на всех хостах (первый блок ALL) от имени любого пользователя или группы (второй и третий блок ALL соответственно).

Настройка разрешения подключения по SSH только для определенных групп

Этот шаг немного длиннее.

1. Сначала я создал локальную группу для включения в неё тех локальных пользователей, которым будет нужен доступ по SSH:

sudo groupadd allow_ssh_access

2. Далее необходимо включить в эту группу тех локальных тех пользователей, которым нужен доступ по SSH и которые не включены в группу “astra-admin”. Правда, в моем случае таких пользователей нет. Следовательно, я пропущу этот шаг.

3. Теперь необходимо скорректировать параметры SSH сервера таким образом, чтобы разрешить доступ только определенным группам:

sudo nano /etc/ssh/sshd_config

В самом конце конфигурационного файла я добавлю следующую строку:

AllowGroups allow_ssh_access linux?admins linux?users astra-admins

Вот здесь есть ряд важных моментов и нюансов:
1. Если в имени группы есть пробел, то его необходимо заменить на знак “?”. Например, как преобразовывается имя группы “Linux Admins” -> “Linux?Admins”.
2. Продолжаем нормализоровать имена дальше. Если в имени группы есть заглавные буквы, то их необходимо преобразовать к строчным. Например, продолжает нормализовать имя группы из п1. – “Linux?Admins” -> “linux?admins”.

4. Последний шаг – перезапуск сервиса SSH:

systemctl restart sshd

Проверка

Сначала проверим доступ от имени доменного пользователя it\u1. Этот пользователь не включен в доменную группу “Linux Admins” или “Linux Users”. Соответственно он не должен иметь возможности подключиться по SSH:

ssh u1@10.10.10.22

Так и есть. Проверяем дальше. Доменный пользователь it\u3 включен в группу “Linux Users”, т.е. он должен подключаться по SSH, но не должен иметь привилегированных разрешений в системе. Проверяем:

ssh u3@10.10.10.22
roman@mintwks:~$ ssh u3@10.10.10.22
u3@10.10.10.22's password: 
Last login: Thu Jan 11 21:46:36 2024
u3@AS02:~$ sudo su
[sudo] пароль для u3: 
u3 is not in the sudoers file.  This incident will be reported.
u3@AS02:~$

Все правильно. Осталась последняя проверка. Пользователь домена it\u2 должен подключать по SSH и обладать разрешениями администратора:

ssh u2@10.10.10.22
roman@mintwks:~$ ssh u2@10.10.10.22
u2@10.10.10.22's password: 
Last login: Thu Jan 11 21:46:50 2024
u2@AS02:~$ sudo su
[sudo] пароль для u2: 
root@AS02:/home/u2@itproblog.ru#

Последняя проверка завершилась успешно. А это значит, что настройка ограничений аутентификации для доменных групп в Linux завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *