Пользователи

запланированоЗапланировано в WardPane 2.2. Этой возможности нет в текущей версии; страница описывает, как она должна работать. Планы

В WardPane 2.2 пользователи будут устроены как в ISPmanager. Люди входят в панель со своей учётной записью Linux на сервере, и каждый видит только свои сайты и те разделы, которые ему открыл root. На одном сервере можно держать сайты команды, клиентов или разных проектов, и чужих сайтов никто не увидит.

Вход

В панель входят с именем и паролем своей учётной записи в операционной системе сервера. Отдельного пароля от панели нет: сменили пароль на сервере, и он сменился для панели.

Сама панель никогда не работает от root и не может читать /etc/shadow. Пароли проверяет небольшой root-помощник через unix_chkpwd, ту же программу, что использует PAM, и пароли нигде не записываются и в журналы не попадают. После нескольких неверных паролей вход замедляется, а затем блокируется, с теми же ограничениями, что и при любом другом входе в панель (см. замечания о безопасности ниже).

Что видит пользователь

Обычный пользователь видит:

  • сайты, которыми он владеет, и ничего из сайтов других пользователей;
  • те разделы панели, к которым ему дал доступ root (права задаются root для каждого пользователя);
  • свои базы данных и почту, если root это разрешает.

Новые пользователи начинают в простом режиме: дополнительные поля скрыты, настройки объяснены простыми словами. Любой пользователь может переключиться в экспертный режим, и сервер запомнит выбор.

Администраторы

Администраторы это root и участники группы sudo. Они видят все сайты и все разделы, управляют пользователями и их правами и меняют настройки панели.

Администратор может войти от имени пользователя, не зная его пароля. Панель тогда выглядит ровно так, как её видит этот пользователь, и с его сайтом проще помочь или проверить, что ему доступно.

Владельцы и сайты

Каждый сайт, созданный в 2.0, принадлежит владельцу, то есть пользователю Linux. Файлы сайта лежат в домашней папке владельца:

/var/www/<owner>/data/www/<domain>

По умолчанию владелец www-root, пользователь Linux, которого создаёт WardPane. Если вы на сервере один, все сайты могут принадлежать www-root. Root может создавать других владельцев и давать каждому свои сайты.

PHP и Node.js работают от имени владельца сайта, поэтому владелец может управлять файлами и приложениями своих сайтов из своего терминала (например, pm2 list и pm2 restart <domain> для приложений Node.js). См. Терминал в браузере и Node.js.

Сайты, созданные до 2.0

Сайты, созданные до 2.0 (включая сайты из Small Web Panel 1.x), сохраняют старую структуру в /var/www/<domain>, а их PHP работает от отдельного для каждого сайта пользователя Linux с именем wp_<id> и комментарием «WardPane site». Эти учётные записи служебные для WardPane, ни для чего другого их не используйте. В одном из следующих выпусков появится действие, которое переносит такие сайты на новую структуру по одному.

Аварийный вход

Кроме учётных записей сервера, у панели есть собственный вход из /opt/wardpane/.env (PANEL_USER и PANEL_PASSWORD). В 2.0 это обычный способ войти. С версии 2.2 он станет аварийным и по умолчанию будет выключен: он нужен на случай, когда вход с учётными записями сервера не работает.

Если доступа к панели нет, по SSH остаются такие инструменты:

sudo node /opt/wardpane/bin/unlock-login.js                  # немедленно снять все блокировки входа
sudo node /opt/wardpane/bin/unlock-login.js --reset-access   # снова взять имя, пароль, PANEL_ALLOW_IPS и ROOT_LOGIN из .env
sudo systemctl restart wardpane

--reset-access удаляет эти значения из сохранённых настроек панели (предыдущий файл сохраняется как settings.json.before-reset-<time>), восстанавливает нечитаемый файл настроек и снимает блокировки входа. Для пароля в .env должен быть задан PANEL_PASSWORD. Можно сбросить только что-то одно, например --reset-access=allow-ips.

Замечания о безопасности

  • Панель доступна из интернета, поэтому пароли сервера, с которыми можно в неё войти, должны быть длинными и случайными. Кроме того, доступ к панели можно ограничить по адресам через PANEL_ALLOW_IPS (в Настройки > Доступ к панели или в .env), и с других адресов страницу входа даже не будет видно.
  • Попытки входа ограничены: по умолчанию адрес (для IPv6 его /64) блокируется на 15 минут после 5 неудач, а волна неудач со многих адресов закрывает вход для адресов, которые раньше не входили.
  • Сессия в панели длится не больше 12 часов и завершается после 2 часов бездействия (SESSION_HOURS, SESSION_IDLE_MINUTES).