Управление пользователями pfSense - локальные, LDAP, RADIUS
User Manager (System > User Manager) - централизованная система управления учётными записями pfSense. Через него создаются локальные пользователи, формируются группы с определёнными привилегиями и настраиваются подключения к внешним серверам аутентификации. Учётные записи используются не только для доступа к веб-интерфейсу, но и для аутентификации в VPN-сервисах, Captive Portal и при SSH-подключении к консоли межсетевого экрана.
Учётная запись администратора
При установке pfSense создаётся учётная запись admin с полными привилегиями доступа ко всем функциям системы. Эта учётная запись не может быть удалена и всегда сохраняет полный набор привилегий.
Рекомендации по безопасности учётной записи admin
| Рекомендация | Описание |
|---|---|
| Сменить пароль по умолчанию | Первое действие после установки - изменение пароля admin |
| Использовать сложный пароль | Минимум 12 символов, включая буквы, цифры и специальные символы |
| Создать именные учётные записи | Для повседневной работы использовать персональные учётные записи |
| Ограничить доступ к GUI | Настроить правила файрвола для ограничения доступа к веб-интерфейсу по IP-адресам |
Внимание:
Использование общей учётной записи admin несколькими администраторами затрудняет аудит действий. Необходимо создавать именные учётные записи для каждого администратора.
Создание локальных пользователей
Локальная база пользователей хранится в конфигурации pfSense (config.xml) и не зависит от внешних серверов аутентификации.
Процедура создания пользователя
- Перейти в System > User Manager, вкладка Users
- Нажать Add для создания нового пользователя
- Заполнить параметры:
| Параметр | Описание |
|---|---|
| Disabled | Отключить учётную запись без удаления |
| Username | Имя пользователя (латинские буквы, цифры, дефис, точка) |
| Password | Пароль учётной записи |
| Full name | Полное имя пользователя для идентификации |
| Expiration date | Дата автоматической деактивации учётной записи |
| Custom Settings | Индивидуальные настройки интерфейса (тема, язык) |
| Group membership | Принадлежность к группам |
| Certificate | Привязка пользовательского сертификата |
| Authorized keys | SSH-ключи для аутентификации при консольном доступе |
| IPsec Pre-Shared Key | Предварительно согласованный ключ для IPsec VPN |
- Нажать Save
Дата истечения учётной записи
Поле Expiration date позволяет автоматически деактивировать учётную запись по истечении заданного срока. Это полезно для:
- Временных учётных записей подрядчиков
- Учётных записей с ограниченным сроком действия (стажёры, аудиторы)
- Обеспечения соответствия политикам безопасности, требующим периодической ревалидации доступа
После истечения срока действия пользователь не сможет аутентифицироваться ни в одном сервисе pfSense, использующем локальную базу.
Группы и привилегии
Группы объединяют пользователей с одинаковыми правами доступа. Привилегии назначаются на уровне группы и наследуются всеми её участниками. Дополнительные привилегии могут быть назначены индивидуально конкретному пользователю.
Предустановленная группа admins
pfSense содержит предустановленную группу admins, которой назначена привилегия WebCfg - All pages. Все пользователи этой группы получают полный доступ к веб-интерфейсу. Учётная запись admin автоматически включена в эту группу.
Создание группы
- Перейти в System > User Manager, вкладка Groups
- Нажать Add
- Заполнить параметры:
| Параметр | Описание |
|---|---|
| Group name | Имя группы (латинские буквы, цифры) |
| Scope | Local (для локальных групп) или Remote (для групп из LDAP/RADIUS) |
| Description | Описание назначения группы |
| Group membership | Пользователи, входящие в группу |
- Нажать Save
- Открыть группу для редактирования
- В секции Assigned Privileges нажать Add
- Выбрать необходимые привилегии
- Нажать Save
Типовые схемы привилегий
| Роль | Привилегии | Назначение |
|---|---|---|
| Полный администратор | WebCfg - All pages | Полный доступ ко всем страницам веб-интерфейса |
| Оператор мониторинга | WebCfg - Dashboard, WebCfg - Status: * | Просмотр состояния системы без возможности изменений |
| VPN-администратор | WebCfg - OpenVPN: *, WebCfg - IPsec: * | Управление VPN-подключениями |
| Администратор файрвола | WebCfg - Firewall: *, WebCfg - Diagnostics: * | Управление правилами файрвола и диагностика |
| Пользователь VPN | User - VPN: IPsec/OpenVPN | Только подключение через VPN |
Принцип наименьших привилегий
При назначении привилегий следует придерживаться следующих правил:
- Каждый пользователь получает только те привилегии, которые необходимы для выполнения его задач
- Привилегии назначаются через группы, а не индивидуально (за исключением особых случаев)
- Регулярно проводить аудит привилегий и удалять неиспользуемые
- Документировать обоснование для назначения каждой привилегии
Серверы аутентификации
pfSense поддерживает интеграцию с внешними серверами аутентификации для централизованного управления учётными записями.
LDAP и Active Directory
LDAP-интеграция позволяет аутентифицировать пользователей через корпоративный каталог Active Directory или OpenLDAP.
Настройка LDAP-сервера
- Перейти в System > User Manager, вкладка Authentication Servers
- Нажать Add
- Заполнить параметры:
| Параметр | Значение | Описание |
|---|---|---|
| Descriptive name | Corporate-AD | Имя для идентификации |
| Type | LDAP | Тип сервера |
| Hostname or IP | dc.example.com | Адрес контроллера домена |
| Port | 389 (LDAP) / 636 (LDAPS) | Порт подключения |
| Transport | TCP - Standard / SSL/TLS | Протокол транспорта |
| Peer Certificate Authority | AD-CA | CA для проверки сертификата сервера (при LDAPS) |
| Protocol version | 3 | Версия протокола LDAP |
| Search scope | Entire Subtree | Область поиска |
| Base DN | DC=example,DC=com | Базовый DN для поиска |
| Authentication containers | OU=Users,DC=example,DC=com | Контейнеры для поиска пользователей |
| Bind credentials | CN=ldap-reader,OU=Service,DC=example,DC=com | Учётная запись для поиска (bind DN) |
| User naming attribute | samAccountName | Атрибут имени пользователя (AD) |
| Group naming attribute | cn | Атрибут имени группы |
| Group member attribute | memberOf | Атрибут членства в группах |
- Нажать Save
Требования к учётной записи bind
Для поиска пользователей в каталоге pfSense необходима служебная учётная запись (bind account) с правами чтения. Требования к этой учётной записи:
- Минимальные привилегии - только чтение атрибутов пользователей и групп
- Пароль не должен истекать (или необходимо обеспечить своевременную ротацию в pfSense)
- Учётная запись не должна быть заблокирована политиками безопасности AD
Внимание:
Не следует использовать доменного администратора в качестве bind-аккаунта. Компрометация этой учётной записи даст атакующему чрезмерные привилегии в домене.
RADIUS
RADIUS-интеграция обеспечивает аутентификацию через централизованный RADIUS-сервер (FreeRADIUS, Microsoft NPS, Cisco ISE и др.).
Настройка RADIUS-сервера
- Перейти в System > User Manager, вкладка Authentication Servers
- Нажать Add
- Заполнить параметры:
| Параметр | Значение | Описание |
|---|---|---|
| Descriptive name | Corporate-RADIUS | Имя для идентификации |
| Type | RADIUS | Тип сервера |
| Hostname or IP | radius.example.com | Адрес RADIUS-сервера |
| Shared Secret | ************ | Общий секрет для связи с сервером |
| Services offered | Authentication and Accounting | Предоставляемые сервисы |
| Authentication port | 1812 | Порт аутентификации |
| Accounting port | 1813 | Порт учёта |
| Authentication Timeout | 5 | Таймаут ожидания ответа (секунды) |
| RADIUS NAS IP Attribute | LAN IP | IP-адрес pfSense для идентификации на RADIUS-сервере |
- Нажать Save
Маппинг групп RADIUS
Для назначения привилегий пользователям, аутентифицированным через RADIUS, необходимо создать локальные группы с областью действия Remote и настроить на RADIUS-сервере возврат атрибута, содержащего имя группы. Имя группы в RADIUS-атрибуте должно точно совпадать с именем локальной группы в pfSense.
Тестирование аутентификации
После настройки сервера аутентификации необходимо проверить корректность подключения:
- Перейти в Diagnostics > Authentication
- Выбрать сервер аутентификации
- Ввести имя пользователя и пароль
- Нажать Test
Результат отображает статус аутентификации и список групп, к которым принадлежит пользователь. При неудачной аутентификации следует проверить:
- Доступность сервера по сети (ping, traceroute)
- Корректность bind-credentials (для LDAP)
- Корректность shared secret (для RADIUS)
- Правильность Base DN и Authentication containers (для LDAP)
Настройка источника аутентификации по умолчанию
Для изменения источника аутентификации, используемого при входе в веб-интерфейс:
- Перейти в System > User Manager, вкладка Settings
- В поле Authentication Server выбрать нужный сервер
- Нажать Save
Внимание:
При переключении на внешний сервер аутентификации необходимо убедиться, что локальная учётная запись admin остаётся работоспособной. В случае недоступности внешнего сервера она останется единственным способом входа в систему.
Доступ к консоли и SSH
SSH-доступ
pfSense поддерживает SSH-доступ для администрирования через командную строку.
- Включить SSH: System > Advanced, вкладка Admin Access, секция Secure Shell
- Установить флажок Enable Secure Shell
- Указать порт SSH (по умолчанию 22)
- Выбрать метод аутентификации:
| Метод | Описание |
|---|---|
| Password | Аутентификация по паролю (менее безопасно) |
| Public Key Only | Только по SSH-ключу (рекомендуется) |
| Both | Пароль и ключ |
Для SSH-аутентификации по ключу необходимо добавить публичный ключ в поле Authorized keys учётной записи пользователя.
Shell-доступ
По умолчанию пользователи с SSH-доступом получают меню pfSense console. Для предоставления полного shell-доступа (tcsh) необходимо:
- Назначить пользователю привилегию User - System: Shell account access
- Этот доступ предоставляет полные возможности командной строки FreeBSD
Внимание:
Shell-доступ предоставляет неограниченные возможности модификации системы, включая прямое редактирование конфигурации. Следует предоставлять его только доверенным администраторам.
Sudo-доступ
pfSense поддерживает sudo через установку пакета sudo:
- Установить пакет sudo через System > Package Manager
- Настроить правила sudo в System > sudo
- Определить, какие команды доступны для каждого пользователя или группы
Многофакторная аутентификация
pfSense поддерживает многофакторную аутентификацию (MFA) через интеграцию с RADIUS-серверами, поддерживающими TOTP/HOTP (например, FreeRADIUS с модулем Google Authenticator или privacyIDEA).
Схема работы MFA
- Пользователь вводит имя и пароль в форме входа pfSense
- pfSense передаёт учётные данные на RADIUS-сервер
- RADIUS-сервер проверяет пароль и запрашивает OTP (или принимает OTP, объединённый с паролем)
- При успешной проверке RADIUS возвращает Access-Accept
Интеграция с TOTP
Для реализации TOTP (Time-based One-Time Password) необходимо:
- Настроить RADIUS-сервер с поддержкой TOTP
- Добавить RADIUS-сервер в pfSense как описано выше
- Настроить пользователей на RADIUS-сервере с привязкой TOTP-секрета
- Пользователи вводят пароль, конкатенированный с OTP-кодом (формат зависит от конфигурации RADIUS)
Устранение неполадок
Не удаётся войти в веб-интерфейс
Возможные причины и решения:
| Причина | Решение |
|---|---|
| Забыт пароль admin | Сбросить пароль через консоль (опция 3 в меню) |
| Внешний сервер аутентификации недоступен | Войти с локальной учётной записью admin |
| Учётная запись заблокирована | Проверить дату истечения и статус учётной записи |
| Браузер не принимает сертификат | Проверить настройки сертификатов |
LDAP bind не работает
- Проверить доступность LDAP-сервера: Diagnostics > Ping или Diagnostics > Test Port
- Убедиться в корректности формата bind DN (для AD: CN=user,OU=container,DC=domain,DC=com)
- Проверить, не заблокирована ли служебная учётная запись политиками AD
- При использовании LDAPS - убедиться, что CA-сертификат импортирован в pfSense
- Использовать Diagnostics > Authentication для тестирования
Группы LDAP/RADIUS не маппятся на привилегии
- Создать локальную группу с областью действия Remote
- Убедиться, что имя локальной группы точно совпадает с именем группы в каталоге
- Для LDAP: проверить атрибут Group member attribute (memberOf для AD)
- Для RADIUS: проверить, что RADIUS-сервер возвращает атрибут с именем группы
- Использовать Diagnostics > Authentication для проверки списка групп пользователя
Пользователь VPN не может подключиться
- Убедиться, что учётная запись не деактивирована и не истекла
- Проверить, что учётная запись имеет привилегию VPN-доступа
- Для сертификатной аутентификации - проверить привязку сертификата к пользователю
- Проверить логи VPN в Status > System Logs
Примечания по миграции
При миграции конфигурации pfSense между устройствами локальная база пользователей переносится автоматически в составе config.xml. Следует учитывать:
- Все локальные пользователи, группы и привилегии сохраняются в резервной копии
- Настройки внешних серверов аутентификации (LDAP, RADIUS) переносятся, но подключение необходимо проверить после миграции
- SSH-ключи пользователей сохраняются в конфигурации
- Пользовательские сертификаты переносятся вместе с основной конфигурацией
Связанные разделы
- Управление сертификатами - создание клиентских сертификатов для VPN-аутентификации
- VPN - OpenVPN - настройка VPN с пользовательской аутентификацией
- Правила файрвола - ограничение доступа к веб-интерфейсу по IP-адресам