ServerAID
Найти гайд, команду, тег… ⌘ K
Сервер

Установка Webmin на Ubuntu Server: веб-панель управления и её безопасность

Webmin даёт браузерный интерфейс к настройкам сервера: пользователи, сервисы, фаервол, cron, диски. Ставим его из официального репозитория, закрываем доступ к порту 10000 и разбираем главное — панель работает с правами root, поэтому вопрос её защиты важнее вопроса установки.

Webmin — веб-панель, через которую сервером управляют из браузера: заводят пользователей, правят конфиги, перезапускают сервисы, смотрят логи и настраивают фаервол. Полезна, когда с сервером работают люди без опыта в терминале или когда нужно быстро что-то посмотреть с телефона. Ставится за пять минут, но требует внимания к безопасности — панель выполняет команды от имени root.

Прежде чем ставить

Webmin — это, по сути, веб-интерфейс с правами суперпользователя. Всё, что можно сделать в терминале под sudo, можно сделать и через панель. Отсюда простое следствие: получивший доступ к Webmin получает сервер целиком.

Поэтому вопрос «как поставить» второстепенен по сравнению с вопросом «кто сможет достучаться до порта». Правильная схема — панель доступна только из доверенной сети или через SSH-туннель, а не выставлена в интернет.

Если задача — просто перезапускать пару сервисов, безопаснее обойтись без панели: выдать пользователю точечные права через sudoers. Как это делается, разобрано в статье про настройку сервера после установки.

Устанавливаем

У Webmin есть официальный репозиторий и скрипт для его подключения:

sudo apt update
sudo apt install -y curl
curl -fsSL https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh -o webmin-setup-repo.sh

Скрипт скачан, но не выполнен — перед запуском стоит посмотреть, что внутри:

less webmin-setup-repo.sh

Это общее правило для любого curl | sh из интернета: сначала читаем, потом запускаем. Дальше подключаем репозиторий и ставим пакет:

sudo sh webmin-setup-repo.sh
sudo apt install -y webmin --install-recommends

Установка подтянет модули Perl и займёт пару минут. По завершении служба запускается сама:

systemctl is-active webmin
sudo ss -tulpn | grep 10000

Панель слушает порт 10000 по HTTPS с самоподписанным сертификатом — браузер предупредит о недоверенном соединении, это ожидаемо.

Закрываем доступ

Сразу после установки порт открыт для всех интерфейсов. Первым делом ограничиваем его.

Разрешаем только свою подсеть через UFW:

sudo ufw allow from 192.168.1.0/24 to any port 10000 proto tcp
sudo ufw status verbose

Дублируем ограничение на уровне самого Webmin — в /etc/webmin/miniserv.conf:

allow=127.0.0.1 192.168.1.0/24
sudo systemctl restart webmin

Два уровня защиты лучше одного: если фаервол однажды окажется выключен, Webmin всё равно откажет чужому адресу.

Самый надёжный вариант — не открывать порт вообще. Привязываем панель только к localhost, добавив в тот же файл:

bind=127.0.0.1

и подключаемся через SSH-туннель:

ssh -N -L 10000:localhost:10000 user@server

После этого панель открывается на https://localhost:10000 вашей машины, а снаружи порт закрыт полностью. Про ключи для SSH — в статье про SSH-ключи.

Первый вход

Открываем https://адрес-сервера:10000 и входим под системным пользователем с правами sudo — теми же логином и паролем, что и по SSH. Отдельной учётной записи Webmin не создаёт.

Если вход по паролю в системе отключён (а на защищённом сервере он обычно отключён), пароль пользователя всё равно должен существовать — Webmin проверяет его через PAM. Задать:

sudo passwd deploy

При неудачных попытках входа Webmin временно блокирует адрес — это встроенная защита от перебора, её параметры настраиваются в «Webmin → Webmin Configuration → Authentication».

Включаем двухфакторную аутентификацию

Панель с правами root заслуживает второго фактора. Настраивается в «Webmin → Webmin Configuration → Two-Factor Authentication»: выбираем провайдера TOTP, сохраняем, затем каждый пользователь включает 2FA у себя в «Webmin → Webmin Users → выбрать пользователя → Two-Factor Authentication» и сканирует QR-код приложением-аутентификатором.

Отдельно стоит выключить неиспользуемые модули: чем меньше кода доступно из браузера, тем меньше поверхность атаки. Делается в «Webmin → Webmin Configuration → Webmin Modules».

Нормальный сертификат вместо самоподписанного

Постоянные предупреждения браузера — не только неудобство: к ним привыкают и перестают отличать настоящую ошибку сертификата от подделки. Если у сервера есть домен, панель проще выпустить наружу через nginx как reverse proxy с сертификатом Let's Encrypt.

Привязываем Webmin к localhost и отключаем его собственный SSL в /etc/webmin/miniserv.conf:

bind=127.0.0.1
ssl=0
sudo systemctl restart webmin

Конфиг nginx:

server {
    listen 443 ssl http2;
    server_name panel.example.com;

    # ограничение по адресам — панель не для всего интернета
    allow 192.168.1.0/24;
    deny all;

    location / {
        proxy_pass http://127.0.0.1:10000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
sudo nginx -t && sudo systemctl reload nginx

Теперь панель доступна по https://panel.example.com с валидным сертификатом, а её собственный порт наружу не выставлен. Блок allow/deny оставляет доступ только доверенной сети — без него вы просто перенесли проблему с порта 10000 на 443.

Что умеет панель

Основные разделы, ради которых Webmin обычно и ставят:

Раздел Что делает
System → Users and Groups Пользователи, группы, пароли
System → Software Packages Установка и удаление пакетов
System → Bootup and Shutdown Управление systemd-юнитами
System → Scheduled Cron Jobs Задания cron через форму
System → System Logs Просмотр журналов
Networking → Linux Firewall Правила iptables
Hardware → Partitions on Local Disks Разделы и файловые системы
Others → File Manager Файловый менеджер
Others → Command Shell Выполнение команд

Полезно понимать, что панель не заменяет знание системы, а лишь показывает те же настройки в формах. Правки через Webmin ложатся в те же конфиги: задание cron окажется в crontab (см. статью про cron), а перезапуск сервиса — обычный вызов systemd, разобранный в статье про systemctl enable.

Отдельно существует Usermin — облегчённая панель для обычных пользователей без прав root, и Virtualmin — надстройка для хостинга с виртуальными хостами и почтой.

Обновление и удаление

Панель обновляется вместе с системой, репозиторий уже подключён:

sudo apt update && sudo apt upgrade

Обновления Webmin стоит ставить без задержек: уязвимость в панели с правами root — это компрометация всего сервера.

Если панель не пригодилась, снимаем её вместе с конфигами:

sudo apt purge -y webmin
sudo rm -rf /etc/webmin
sudo ufw delete allow 10000/tcp

Проверяем, что порт больше не слушается:

sudo ss -tulpn | grep 10000

Пустой вывод означает, что панели на сервере не осталось.

Частые вопросы

На каком порту работает Webmin?

По умолчанию 10000, по HTTPS с самоподписанным сертификатом — поэтому браузер показывает предупреждение о недоверенном соединении.

Порт меняется параметром port в /etc/webmin/miniserv.conf. Смена порта сама по себе защитой не является: сканеры находят панель на любом порту, ограничивать доступ нужно фаерволом.

Безопасно ли открывать Webmin в интернет?

Нет. Панель работает с правами root, и получивший к ней доступ получает сервер целиком. Порт 10000 постоянно сканируют.

Правильные варианты: ограничить доступ доверенной подсетью через UFW и allow в miniserv.conf, либо привязать панель к 127.0.0.1 и ходить через SSH-туннель. Если доступ снаружи необходим, ставьте перед ней nginx с TLS, ограничением по IP и включайте двухфакторную аутентификацию.

Какой логин и пароль у Webmin?

Своих учётных записей Webmin не создаёт — вход выполняется под системным пользователем с правами sudo, тем же логином и паролем, что и по SSH.

Если пароль пользователя не задан (вход только по ключу), Webmin не пустит: задайте пароль командой sudo passwd имя_пользователя.

Чем Webmin отличается от cPanel и ISPmanager?

Webmin — бесплатная панель системного администрирования: пользователи, сервисы, диски, фаервол. Она не заточена под хостинг и не управляет клиентскими аккаунтами.

cPanel и ISPmanager — коммерческие хостинг-панели с биллингом, почтой и виртуальными хостами. Ближайший аналог из мира Webmin — Virtualmin, надстройка для хостинговых задач.

Заменяет ли Webmin работу в терминале?

Нет. Панель показывает те же настройки в формах и записывает изменения в те же конфиги, но диагностика нештатных ситуаций всё равно идёт через логи и командную строку.

Практично рассматривать Webmin как дополнение: рутинные операции — через браузер, разбор проблем — через SSH и journalctl.

Что запомнить

  • Webmin выполняет команды с правами root: вопрос ограничения доступа важнее вопроса установки.
  • Порт 10000 закрывают на двух уровнях — правилом UFW и параметром allow в miniserv.conf.
  • Надёжнее всего bind=127.0.0.1 плюс SSH-туннель: снаружи порт не виден вообще.
  • Для доступа по домену используйте nginx с сертификатом Let's Encrypt и ограничением по IP, а не самоподписанный сертификат панели.
  • Обновления Webmin ставьте сразу: уязвимость в панели равна компрометации сервера.

Похожие материалы

Сервер

Установка Zabbix на Ubuntu Server: сервер, PostgreSQL, веб-интерфейс и агент

Разворачиваем систему мониторинга Zabbix на Ubuntu Server 24.04: официальный репозиторий, база PostgreSQL, фронтенд на nginx, первый вход и подключение агентов. Отдельно — почему zabbix-server не стартует после установки и как читать его лог, когда мониторинг сам требует диагностики.

Редакция
Сервер

Ubuntu Server в VirtualBox: создание виртуальной машины и настройка сети

Разворачиваем Ubuntu Server в VirtualBox для учёбы и тестов: параметры виртуальной машины, установка без графики, разбор сетевых режимов NAT и «сетевой мост», проброс порта для SSH с хоста и снапшоты, которые позволяют ломать систему без последствий.

Редакция
Сервер

Что сделать после установки Ubuntu Server: чек-лист первых шагов

Инсталлятор отработал, вы вошли в систему — дальше идут пятнадцать минут, которые определяют, насколько удобно будет жить с этим сервером. Собрали чек-лист: имя хоста и часовой пояс, пользователи и sudo, автообновления безопасности, swap, синхронизация времени и проверка, что всё это применилось.

Редакция
Сервер

Графический интерфейс на Ubuntu Server: какую оболочку ставить и стоит ли

Ubuntu Server ставится без графики, но её можно добавить одной командой. Разбираем, чем отличаются варианты оболочек по потреблению памяти, как поставить лёгкий XFCE вместо полного GNOME, как включать графику только по требованию и почему на боевом сервере чаще правильнее обойтись веб-панелью или X11-форвардингом.

Редакция