Глава 47. Пользователи и их права
PVE поддерживает несколько источников аутентификации, например, Linux PAM, интегрированный сервер аутентификации PVE, LDAP, Active Directory и OpenID Connect:
Используя основанное на ролях управление пользователями и разрешениями для всех объектов (ВМ, хранилищ, узлов и т. д.), можно определить многоуровневый доступ.
PVE хранит данные пользователей в файле
/etc/pve/user.cfg
:
# cat /etc/pve/user.cfg
user:root@pam:1:0::::::
user:test@pve:1:0::::::
user:testuser@pve:1:0::::Just a test::
user:user@pam:1:0::::::
group:admin:user@pam::
group:testgroup:test@pve::
Пользователя часто внутренне идентифицируют по его имени и области аутентификации в форме <user>@<realm>.
После установки PVE существует один пользователь root@pam, который соответствует суперпользователю ОС. Этого пользователя нельзя удалить, все системные письма будут отправляться на адрес электронной почты, назначенный этому пользователю. Суперпользователь имеет неограниченные права, поэтому рекомендуется добавить других пользователей с меньшими правами.
Каждый пользователь может быть членом нескольких групп.
47.1. Области аутентификации
Доступны следующие области (методы) аутентификации:
— общесистемная аутентификация пользователей;
— пользователи полностью управляются PVE и могут менять свои пароли через графический интерфейс. Этот метод аутентификации удобен для небольших (или даже средних) установок, где пользователям не нужен доступ ни к чему, кроме PVE;
— позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP);
— позволяет аутентифицировать пользователей через AD. Поддерживает LDAP в качестве протокола аутентификации;
— уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации.
Настройки области аутентификации хранятся в файле /etc/pve/domains.cfg
.
47.1.1. Стандартная аутентификация Linux PAM
При использовании аутентификации Linux PAM системный пользователь должен существовать (должен быть создан, например, с помощью команды adduser
) на всех узлах, на которых пользователю разрешено войти в систему. Если пользователи PAM существуют в хост-системе PVE, соответствующие записи могут быть добавлены в PVE, чтобы эти пользователи могли входить в систему, используя свое системное имя и пароль.
Область Linux PAM создается по умолчанию и не может быть удалена. Администратор может включить двухфакторную аутентификацию для пользователей данной области (Требовать двухфакторную проверку подлинности) и установить её в качестве области по умолчанию для входа в систему (По умолчанию):
Для добавления нового пользователя необходимо в окне → → нажать кнопку Добавить.
Создание нового пользователя с использованием PAM аутентификации (системный пользователь user должен существовать, в качестве пароля будет использоваться пароль для входа в систему):
47.1.2. Сервер аутентификации PVE
Область аутентификации PVE представляет собой хранилище паролей в стиле Unix (/etc/pve/priv/shadow.cfg
). Пароль шифруется с использованием метода хеширования SHA-256.
Область создается по умолчанию. Администратор может включить двухфакторную аутентификацию для пользователей данной области (Требовать двухфакторную проверку подлинности) и установить её в качестве области по умолчанию для входа в систему (По умолчанию):
Создание нового пользователя с использованием PVE аутентификации:
Примеры использования командной строки для управления пользователями PVE:
создать пользователя:
# pveum useradd testuser@pve -comment "Just a test"
задать или изменить пароль:
# pveum passwd testuser@pve
отключить пользователя:
# pveum usermod testuser@pve -enable 0
создать новую группу:
# pveum groupadd testgroup
создать новую роль:
# pveum roleadd PVE_Power-only -privs "VM.PowerMgmt VM.Console"
47.1.3. LDAP аутентификация
В данном разделе приведён пример настройки аутентификации LDAP для аутентификации на сервере FreeIPA. В примере используются следующие исходные данные:
ipa.example.test, 192.168.0.113 — сервер FreeIPA;
admin@example.test — учётная запись с правами чтения LDAP;
pve — группа, пользователи которой имеют право аутентифицироваться в PVE.
Для настройки LDAP аутентификации необходимо выполнить следующие шаги:
Создать область аутентификации LDAP. Для этого в разделе → → нажать кнопку → :
На вкладке
Общее указать следующие данные:
Сфера — идентификатор области;
Имя основного домена (base_dn) — каталог, в котором выполняется поиск пользователей (dc=example,dc=test);
Имя пользовательского атрибута (user_attr) — атрибут LDAP, содержащий имя пользователя, с которым пользователи будут входить в систему (uid);
По умолчанию — установить область в качестве области по умолчанию для входа в систему;
Сервер — IP-адрес или имя FreeIPA-сервера (ipa.example.test или 192.168.0.113);
Резервный сервер (опционально) — адрес резервного сервера на случай, если основной сервер недоступен;
Порт — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl);
SSL — использовать ssl;
Требовать двухфакторную проверку подлинности — включить двухфакторную аутентификацию.
На вкладке
Параметры синхронизации заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
Пользователь (bind) — имя пользователя (uid=admin,cn=users,cn=accounts,dc=example,dc=test);
Пароль (bind) — пароль пользователя;
Атрибут электронной почты (опционально);
Аттр. имени группы — атрибут имени группы (cn);
Классы пользователей — класс пользователей LDAP (person);
Классы групп — класс групп LDAP (posixGroup);
Фильтр пользователей — фильтр пользователей (memberOf=cn=pve,cn=groups,cn=accounts,dc=example,dc=test);
Фильтр групп — фильтр групп ((|(cn=*pve*)(dc=ipa)(dc=example)(dc=test)));
Нажать кнопку Добавить.
Выбрать добавленную область и нажать кнопку Синхронизировать:
Указать, если необходимо, параметры синхронизации и нажать кнопку Синхронизировать:
В результате синхронизации пользователи и группы PVE будут синхронизированы с сервером FreeIPA LDAP. Сведения о пользователях и группах можно проверить на вкладках Пользователи и Группы.
Настроить разрешения для группы/пользователя на вкладке Разрешения.
Команда синхронизации пользователей и групп:
# pveum realm sync example.test
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.
47.1.4. AD аутентификация
В данном разделе приведён пример настройки аутентификации AD. В примере используются следующие исходные данные:
dc.test.alt, 192.168.0.122 — сервер AD;
administrator@test.alt — учётная запись администратора (для большей безопасности рекомендуется создать отдельную учетную запись с доступом только для чтения к объектам домена и не использовать учётную запись администратора);
office — группа, пользователи которой имеют право аутентифицироваться в PVE.
Для настройки AD аутентификации необходимо выполнить следующие шаги:
Создать область аутентификации AD (в разделе → → нажать кнопку → ):
На вкладке
Общее указать следующие данные:
Сфера — идентификатор области;
Домен — домен AD (test.alt);
По умолчанию — установить область в качестве области по умолчанию для входа в систему;
Сервер — IP-адрес или имя сервера AD (dc.test.alt или 192.168.0.122);
Резервный сервер (опционально) — адрес резервного сервера на случай, если основной сервер недоступен;
Порт — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl);
SSL — использовать ssl;
Требовать двухфакторную проверку подлинности — включить двухфакторную аутентификацию.
На вкладке
Параметры синхронизации заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
Пользователь (bind) — имя пользователя (cn=Administrator,cn=Users,dc=test,dc=alt);
Пароль (bind) — пароль пользователя;
Атрибут электронной почты (опционально);
Аттр. имени группы — атрибут имени группы (cn);
Классы пользователей — класс пользователей AD;
Классы групп — класс групп AD;
Фильтр пользователей — фильтр пользователей ((&(objectclass=user)(samaccountname=*)(MemberOf=CN=office,ou=OU,dc=TEST,dc=ALT)));
Фильтр групп — фильтр групп ((|(cn=*office*)(dc=dc)(dc=test)(dc=alt)));
Нажать кнопку Добавить.
Выбрать добавленную область и нажать кнопку Синхронизировать.
Указать, если необходимо, параметры синхронизации и нажать кнопку Синхронизировать:
В результате синхронизации пользователи и группы PVE будут синхронизированы с сервером AD. Сведения о пользователях и группах можно проверить на вкладках Пользователи и Группы.
Настроить разрешения для группы/пользователя на вкладке Разрешения.
Команда синхронизации пользователей и групп:
# pveum realm sync test.alt
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.