Установка Webmin на сервер Ubuntu 18.04

Webmin – это веб-консоль для управления машинами Linux. Webmin позволяет быстро менять настройки основных пакетов (веб-серверов, баз данніх и т.д.), а также управлять пользователями, группами и программным обеспечением.

Данный мануал поможет установить и настроить Webmin на сервере Ubuntu,  защитить консоль с помощью сертификата Let’s Encrypt, добавить через Webmin новую учётную запись и обновить пакеты сервера.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Веб-сервер Apache (инструкции по установке можно найти здесь). Apache будет использоваться для проверки домена сервисом Let’s Encrypt и в качестве прокси для Webmin. Убедитесь, что вы открыли доступ к Apache в брандмауэре.
  • FQDN и запись A, указывающая на IP-адрес сервера. Читайте мануал Как настроить имя хоста.
  • Установленный клиент Certbot (инструкции можно найти в первом разделе мануала Создание сертификата Let’s Encrypt для Apache в Ubuntu 18.04).

1: Установка Webmin

Добавьте репозиторий Webmin, с помощью которого можно установить и в дальнейшем обновлять консоль. Его нужно добавить в файл /etc/apt/sources.list.

sudo nano /etc/apt/sources.list

В конец файла добавьте новый репозиторий:

. . .
deb http://download.webmin.com/download/repository sarge contrib

Сохраните и закройте файл.

Добавьте PGP-ключ Webmin, чтобы система знала, что новому репозиторию можно доверять.

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Обновите индекс пакетов, чтобы добавить в него репозиторий Webmin.

sudo apt update

Установите Webmin:

sudo apt install webmin

После окончания установки вы увидите:

Webmin install complete. You can now login to
https://your_server_ip:10000 as root with your
root password, or as any user who can use `sudo`.

Теперь нужно защитить Webmin с помощью TLS/SSL-сертификата для Apache.

2: Защита Webmin с помощью сертификата Let’s Encrypt

Для доступа к Webmin вам необходимо указать порт 10000 и убедиться, что этот порт открыт в брандмауэре. Это неудобно, особенно если вы обращаетесь к Webmin, используя FQDN, например webmin.your_domain. Виртуальный хост Apache можно использовать для проксирования запросов на сервер Webmin, работающий по порту 10000. Затем можно защитить виртуальный хост, используя SSL-сертификат от Let’s Encrypt.

Для начала создайте новый виртуальный хост:

sudo nano /etc/apache2/sites-available/your_domain.conf

Добавьте в файл следующие строки (указав свои данные):

<VirtualHost *:80>
ServerAdmin your_email
ServerName your_domain
ProxyPass / http://localhost:10000/
ProxyPassReverse / http://localhost:10000/
</VirtualHost>

С помощью этого файла Apache будет передавать запросы на http://localhost:10000, сервер Webmin. Также внутренние ссылки, созданные Webmin, будут проходить через Apache.

Сохраните файл и выйдите из редактора.

Затем нужно отключить в Webmin встроенную поддержку TLS/SSL, поскольку эта функция скоро перейдет к Apache.

Откройте файл:

sudo nano /etc/webmin/miniserv.conf

В нем найдите строку:

...
ssl=1
...

Замените значение 1 на 0, чтобы Webmin перестал использовать SSL.

Затем нужно добавить домен в список разрешенных доменов, чтобы Webmin понимал, что ваш домен не является вредоносным (например, не используется для межсайтового скриптинга (XSS)).

Откройте файл /etc/webmin/conf в редакторе:

sudo nano /etc/webmin/config

В конец файла поместите следующую строку, заменив your_domain на ваше полное доменное имя:

. . .
referers=your_domain

Сохраните и закройте файл.

Перезапустите Webmin:

sudo systemctl restart webmin

Включите модуль proxy_http:

sudo a2enmod proxy_http

Вы увидите такой вывод:

Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
To activate the new configuration, you need to run:
systemctl restart apache2

Вывод предлагает вам перезапустить Apache, но прежде чем сделать это, вы должны активировать виртуальный хост:

sudo a2ensite your_domain

Вы увидите:

Enabling site your_domain.
To activate the new configuration, you need to run:
systemctl reload apache2

Перезапустите Apache, чтобы обновить настройки:

sudo systemctl restart apache2

Примечание: Убедитесь, что веб-сервер поддерживает входящий трафик по порту 80 и 443, как показано в мануале Установка стека LAMP в Ubuntu 18.04. Вы можете сделать это с помощью команды

sudo ufw allow in "Apache Full"

Перейдите по ссылке http://your_domain в своем браузере, и вы увидите страницу входа в Webmin.

Предупреждение: Не подключайтесь к Webmin, пока не включили SSL. Если вы войдете сейчас, ваши учетные данные будут отправлены на сервер в виде чистого текста.

Теперь нужно создать сертификат, чтобы зашифровать соединения Webmin. Для этого можно использовать Let’s Encrypt.

С помощью Certbot сгенерируйте TLS/SSL-сертификат для вашего домена и настройте Apache для перенаправления трафика на безопасные соединения.

sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive

Команда выведет:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for your_domain
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/your_domain.conf to ssl vhost in /etc/apache2/sites-available/your_domain-le-ssl.conf
-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://your_domain
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain
-------------------------------------------------------------------------------

Вывод значит, что сертификат был успешно установлен и Apache теперь перенаправляет соединения с http://your_domain на https://your_domain.

3: Использование Webmin

Webmin предлагает множество модулей, с помощью которых можно управлять сервером и выполнять почти любые операции: от настройки BIND DNS сервера до добавления пользователей в систему. Попробуйте создать нового пользователя и обновить пакеты системы с помощью Webmin.

Чтобы открыть панель Webmin, перейдите оп ссылке http://your_domain и укажите учетные данные пользователя root или sudo.

Управление пользователями и группами

Откройте вкладку System и нажмите кнопку Users and Groups. В появившемся окне можно управлять пользователями и группами системы.

Создайте нового пользователя (например, deploy), с помощью которого можно будет развернуть приложение. Нажмите Create a new user в верхней части страницы. Это откроет экран Create User; укажите имя пользователя, пароль, группу и другие данные о пользователе.

  • В Username введите имя: deploy.
  • Выберите Automatic в поле User ID.
  • В Real Name укажите описание пользователя (например, Deployment user).
  • В Home Directory выберите Automatic.
  • В выпадающем списке Shell выберите /bin/bash.
  • В поле Password выберите Normal Password и введите пароль.
  • В Primary Group выберите New group with same name as user.
  • В Secondary Group выберите sudo в списке All groups. Затем нажмите кнопку →, чтобы добавить группу в список in groups.
  • Нажмите Create.

Как видите, Webmin позволяет настраивать оболочку пользователя, поддержку домашних каталогов и многое другое.

Обновление пакетов

Webmin может обновить все пакеты системы. Для этого перейдите по ссылке Dashboard и найдите поле Package updates. Если консоль обнаружит доступные обновления, вы увидите в этом поле количество обновлений и ссылку на них.

Кликните по ссылке, а затем нажмите Update selected packages. Webmin обновит все пакеты. Возможно, при этом вам будет предложено перезапустить сервер (это тоже можно сделать через консоль).

Заключение

Теперь у вас есть удобная консоль для управления сервером, защищённая доверенным сертификатом. Интуитивно понятный интерфейс Webmin предоставляет множество полезных функций и модулей.

Ознакомьтесь с функциями Webmin самостоятельно. Больше полезной информации можно найти в официальной вики Webmin.

Tags: , , ,