Product SiteDocumentation Site

Глава 47. Пользователи и их права

47.1. Области аутентификации
47.1.1. Стандартная аутентификация Linux PAM
47.1.2. Сервер аутентификации PVE
47.1.3. LDAP аутентификация
47.1.4. AD аутентификация
47.2. Двухфакторная аутентификация
47.3. Управление доступом
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. Области аутентификации

Доступны следующие области (методы) аутентификации:
  • Стандартная аутентификация Linux PAM — общесистемная аутентификация пользователей;
  • Сервер аутентификации PVE — пользователи полностью управляются PVE и могут менять свои пароли через графический интерфейс. Этот метод аутентификации удобен для небольших (или даже средних) установок, где пользователям не нужен доступ ни к чему, кроме PVE;
  • Сервер LDAP — позволяет использовать внешний LDAP-сервер для аутентификации пользователей (например, OpenLDAP);
  • Сервер Active Directory — позволяет аутентифицировать пользователей через AD. Поддерживает LDAP в качестве протокола аутентификации;
  • Сервер OpenID Connect — уровень идентификации поверх протокола OATH 2.0. Позволяет аутентифицировать пользователей на основе аутентификации, выполняемой внешним сервером авторизации.
Настройки области аутентификации хранятся в файле /etc/pve/domains.cfg.

47.1.1. Стандартная аутентификация Linux PAM

При использовании аутентификации Linux PAM системный пользователь должен существовать (должен быть создан, например, с помощью команды adduser) на всех узлах, на которых пользователю разрешено войти в систему. Если пользователи PAM существуют в хост-системе PVE, соответствующие записи могут быть добавлены в PVE, чтобы эти пользователи могли входить в систему, используя свое системное имя и пароль.
Область Linux PAM создается по умолчанию и не может быть удалена. Администратор может включить двухфакторную аутентификацию для пользователей данной области (Требовать двухфакторную проверку подлинности) и установить её в качестве области по умолчанию для входа в систему (По умолчанию):
Конфигурация PAM аутентификации
Для добавления нового пользователя необходимо в окне Центр обработки данныхРазрешенияПользователи нажать кнопку Добавить.
Создание нового пользователя с использованием PAM аутентификации (системный пользователь user должен существовать, в качестве пароля будет использоваться пароль для входа в систему):
Создание нового пользователя с использованием PAM аутентификации

47.1.2. Сервер аутентификации PVE

Область аутентификации PVE представляет собой хранилище паролей в стиле Unix (/etc/pve/priv/shadow.cfg). Пароль шифруется с использованием метода хеширования SHA-256.
Область создается по умолчанию. Администратор может включить двухфакторную аутентификацию для пользователей данной области (Требовать двухфакторную проверку подлинности) и установить её в качестве области по умолчанию для входа в систему (По умолчанию):
Конфигурация PVE аутентификации
Создание нового пользователя с использованием PVE аутентификации:
Создание нового пользователя с использованием 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 аутентификации необходимо выполнить следующие шаги:
  1. Создать область аутентификации LDAP. Для этого в разделе Центр обработки данныхРазрешенияСферы нажать кнопку ДобавитьСервер LDAP:
    Создать область аутентификации LDAP
  2. На вкладке Общее указать следующие данные:
    • Сфера — идентификатор области;
    • Имя основного домена (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;
    • Требовать двухфакторную проверку подлинности — включить двухфакторную аутентификацию.
    Настройка аутентификации FreeIPA (вкладка Общее)
  3. На вкладке Параметры синхронизации заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
    • Пользователь (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)));
    Настройка аутентификации FreeIPA (вкладка Параметры синхронизации)
  4. Нажать кнопку Добавить.
  5. Выбрать добавленную область и нажать кнопку Синхронизировать:
    Кнопка Sync
  6. Указать, если необходимо, параметры синхронизации и нажать кнопку Синхронизировать:
    Параметры синхронизации области аутентификации
    В результате синхронизации пользователи и группы PVE будут синхронизированы с сервером FreeIPA LDAP. Сведения о пользователях и группах можно проверить на вкладках Пользователи и Группы.
  7. Настроить разрешения для группы/пользователя на вкладке Разрешения.

Примечание

Команда синхронизации пользователей и групп:
# pveum realm sync example.test
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.

47.1.4. AD аутентификация

В данном разделе приведён пример настройки аутентификации AD. В примере используются следующие исходные данные:
  • dc.test.alt, 192.168.0.122 — сервер AD;
  • administrator@test.alt — учётная запись администратора (для большей безопасности рекомендуется создать отдельную учетную запись с доступом только для чтения к объектам домена и не использовать учётную запись администратора);
  • office — группа, пользователи которой имеют право аутентифицироваться в PVE.
Для настройки AD аутентификации необходимо выполнить следующие шаги:
  1. Создать область аутентификации AD (в разделе Центр обработки данныхРазрешенияСферы нажать кнопку ДобавитьСервер Active Directory):
    Создать область аутентификации AD
  2. На вкладке Общее указать следующие данные:
    • Сфера — идентификатор области;
    • Домен — домен AD (test.alt);
    • По умолчанию — установить область в качестве области по умолчанию для входа в систему;
    • Сервер — IP-адрес или имя сервера AD (dc.test.alt или 192.168.0.122);
    • Резервный сервер (опционально) — адрес резервного сервера на случай, если основной сервер недоступен;
    • Порт — порт, который прослушивает сервер LDAP (обычно 389 без ssl, 636 с ssl);
    • SSL — использовать ssl;
    • Требовать двухфакторную проверку подлинности — включить двухфакторную аутентификацию.
    Настройка аутентификации AD (вкладка Общее)
  3. На вкладке Параметры синхронизации заполнить следующие поля (в скобках указаны значения, используемые в данном примере):
    • Пользователь (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)));
    Настройка аутентификации AD (вкладка Параметры синхронизации)
  4. Нажать кнопку Добавить.
  5. Выбрать добавленную область и нажать кнопку Синхронизировать.
  6. Указать, если необходимо, параметры синхронизации и нажать кнопку Синхронизировать:
    Параметры синхронизации области аутентификации
    В результате синхронизации пользователи и группы PVE будут синхронизированы с сервером AD. Сведения о пользователях и группах можно проверить на вкладках Пользователи и Группы.
  7. Настроить разрешения для группы/пользователя на вкладке Разрешения.

Примечание

Команда синхронизации пользователей и групп:
# pveum realm sync test.alt
Для автоматической синхронизации пользователей и групп можно добавить команду синхронизации в планировщик задач.