# Webmin. Веб-интерфейс для управления сервером на Ubuntu

Стандартные средства управления сервером — ssh-подключение и работа через консоль — очень эффективны и позволяют получить доступ к любым функциям и возможностям сервера. Основной минус работы с консолью — порог вхождения. Чтобы изучить и освоить все команды управления, нужно потратить довольно много времени.

Ещё одним минусом работы в консоли можно считать ограниченные возможности визуализации.

Для решения этих проблем существует очень удобный и функциональный веб-интерфейс для полноценного управления сервером — Webmin.

В этой инструкции мы установим Webmin на наш сервер под управлением Ubuntu и познакомимся с основными возможностями его работы.

Для начала работы нам понадобится подготовленный к работе сервер, предустановленный веб-сервер Apache, домен, с которым будет работать наш сервер, и виртуальный хост для него.

# Установка Webmin

Устанавливать Webmin будем из официального репозитория разработчика. Чтобы добавить его в список поддерживаемых apt репозиториев, пропишем его напрямую:

sudo vim /etc/apt/source.list

В открывшийся список репозиториев добавим следующую строку:

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

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

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

После этого останется только обновить список доступных пакетов, и можно будет переходить непосредственно к установке:

sudo apt update

sudo apt install webmin

В конце установки на экран будет выведено сообщение:

# Output
…

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 установился, запустился и предлагает совершить первый вход от имени root-пользователя или от имени любого другого пользователя, добавленного в группу sudo.

По умолчанию Webmin работает на порту 10000. Не забудьте добавить его в список исключений фаервола, если он у вас запущен:

sudo ufw allow 10000

# Настройка подключения

После установки Webmin настроен на использование защищённого подключения. Если у вас ещё нет SSL-сертификата, подключите его к домену либо настройте Webmin на подключение без SSL-шифрования.

Подключить SSL-сертификат к своему домену можно будет через Webmin, поэтому сейчас настроим его для входа без шифрования.

Откроем для этого конфигурационный файл Webmin:

sudo vim /etc/webmin/miniserv.conf

В открывшемся файле найдём строку ssl=1 и укажем в значении параметра 0.

После этого перезапустим Webmin:

sudo systemctl restart webmin

Теперь можно заходить в панель управления вашим сервером через браузер по адресу yor_server_ip:10000.

«webmin_start»

# Начало работы

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

# SSL-сертификат

Сначала подключим безопасное соединение.

В разделе Webmin — Webmin configuration выберите пункт «SSL Encryption»:

«webmin_ssl»

В открывшемся окне есть несколько вариантов защиты SSL-соединения: от указания данных об уже имеющемся SSL-сертификате или получения бесплатного сертификата от Let’s Encrypt до создания самоподписного сертификата. Выберите тот пункт, который вас устраивает, и настройте шифрование.

# Создание нового пользователя

Новые пользователи и группы пользователей создаются в разделе System — Users and Groups. На вкладке «Local users» представлены все пользователи, имеющие доступ к серверу, указаны их ID, группы, к которым они принадлежат, их домашние директории и права на SSH-подключение.

Создать нового пользователя можно кнопкой Create a new user:

«webmin_user»

Открывшееся окно предоставляет полный набор характеристик создаваемого пользователя — от выбора ID до указания публичного ключа для SSH-подключения с аутентификацией.

На соседней вкладке «Local groups» представлена такая же информация о группах пользователей на сервере. В окне создания новой группы также представлены все необходимые операции по созданию новой группы пользователей, вплоть до возможности сразу же добавить в группу нужных пользователей:

«webmin_group»

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

Webmin позволяет в оперативном порядке отслеживать приложения, для которых доступна более поздняя версия. Список доступных для обновления пакетов представлен на вкладке с общей информацией о сервере «Dashboard»:

«webmin_dash»

В открывшемся окне представлен список пакетов, которые можно обновить, а также возможность управления обновлением (полное, выборочное и т.д.):

«webmin_upd»

# Ротация логов

Ещё одна важная функция Webmin — возможность настраивать ротацию логов. Обычно она настраивается для каждого приложения в отдельности, и период ротации прописывается в конфигурационных файлах приложения. Webmin же позволяет сделать это централизованно.

В разделе System — Log File Rotation представлены все лог-файлы, которые ведёт сервер.

Выбрав любой из них, можно настроить параметры его ротации: период ротации, максимальный размер лог-файла или задать условие по размеру лог-файла — очищать, если больше определённого размера, или не трогать, пока лог не достигнет нужного размера. Также вы можете настроить архивирование старых логов, выбрать директорию для хранения старых логов и настроить отправку логов на почту:

«webmin_logs»

# Мониторинг состояния сервера

С помощью Webmin можно легко и просто следить за нагрузкой на сервер. На вкладке «Dashboard» представлены общие сведения о нагрузке на сервер, используемых ресурсах и т.д.

Более детальные сведения об использовании ресурсов сервера приведены в разделе System. Здесь на вкладке «Running Processes» представлена детальная информация о том, какие процессы запущены, от имени какого пользователя, сколько системных ресурсов они потребляют и прочее:

«webmin_res»

# Работа с серверами

Помимо стандартных возможностей сервера под управлением Ubuntu, Webmin поддерживает работу и настройку приложений, установленных на сервере. Например, в разделе Servers представлены инструменты для полноценного управления любыми серверами, запущенными на нашей машине.

Это может быть Apache:

«webmin_apache»

А также почтовый сервер на Postfix:

«webmin_post»

Или встроенный SSH-сервер:

«webmin_ssh»

Каждый из них будет полностью функционален.

В Apache можно будет настраивать общую конфигурацию веб-сервера (подключать модули, настраивать сетевые параметры, исправлять конфигурационный файл), создавать новые виртуальные хосты и управлять уже существующими.

Раздел, отвечающий за почтовый сервер, позволит не только настроить все необходимые параметры сервера (от настроек SMTP-сервера до почтовых ящиков пользователей и их алиасов), но и протестировать созданную конфигурацию.

В разделе SSH-сервера будет представлена вся информация из конфигурационного файла в удобном и наглядном виде, с возможностью выбора простых чекбоксов.

# Фаервол

Настройки безопасности и ограничения доступа представлены в разделе Networking:

«webmin_fire»

Здесь представлены сведения о сетевых интерфейсах, правилах iptables и даже фильтрах и jail’ах Fail2ban.

В этом разделе можно посмотреть и исправить или настроить не только фильтры и jail’ы, но и правила iptables, на которые эти фильтры будут ссылаться.

# Командная строка

Те, кому всё же понадобится командная строка для выполнения определённых команд, смогут найти её в разделе Tools — Command Shell:

«webmin_shell»

В большинстве случаев универсальный инструмент Webmin способен служить полноценной заменой классическому управлению сервером через SSH-подключение и работу в командной строке.