Virtualmin — установка и настройка бесплатной панели хостинга

Virtualmin: установка и настройка панели хостинга Веб-приложения
Содержание
  1. Что такое Virtualmin?
  2. Возможности Virtualmin
  3. Virtualmin GPL и Virtualmin Pro
  4. Системные требования Virtualmin
  5. Установка Virtualmin
  6. Установка Virtualmin с Nginx (LEMP)
  7. Установка Virtualmin с Apache (LAMP)
  8. Данные для входа в Virtualmin
  9. Мастер настройки Virtualmin
  10. Использование памяти (Memory use)
  11. Использование антивируса ClamAV для электронной почты
  12. Фильтрация спама (Spam filtering)
  13. Серверы баз данных (Database servers)
  14. Пароль MariaDB
  15. Конфигурация DNS
  16. Настройки Virtualmin
  17. Русификация Webmin
  18. Добавление сайта
  19. Удаление сайта
  20. SSL-сертификат Let’s Encrypt для сайта
  21. Смена версии PHP
  22. Для Ubuntu
  23. Для Debian
  24. Настройка второй версии PHP в Virtualmin
  25. Установка phpMyAdmin
  26. Установка phpMyAdmin вручную на отдельном порту
  27. Обновление Virtualmin
  28. Настройки безопасности Webmin и phpMyAdmin
  29. Смена стандартного порта Webmin
  30. Смена пользователя root
  31. Двухфакторная аутентификация в Webmin
  32. Доступ к Webmin только с определённых IP
  33. Fail2Ban в Virtualmin
  34. Файрвол nftables в Virtualmin
  35. Резервное копирование в Virtualmin
  36. Virtualmin и другие панели хостинга
  37. Частые вопросы про Virtualmin

Что такое Virtualmin?

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

Статья обновлена в сентябре 2026 года для Virtualmin 8: новый список поддерживаемых систем и команда установки, настройка SSL Let’s Encrypt, phpMyAdmin из встроенных веб-приложений, Fail2Ban и файрвол nftables, двухфакторная аутентификация, резервные копии и сравнение с другими панелями.

Возможности Virtualmin

Основные возможности Virtualmin включают:

  1. Управление виртуальными хостингами: Virtualmin позволяет создавать, удалять и изменять виртуальные хостинги с помощью простого и интуитивно понятного интерфейса. Каждый виртуальный хостинг имеет отдельный каталог для файлов, базы данных и почтовые ящики.
  2. Управление доменами: Virtualmin позволяет создавать, удалять и изменять домены и поддомены. Кроме того, вы можете управлять DNS-записями и настраивать почтовые домены.
  3. Управление почтовыми ящиками: Virtualmin обеспечивает полный контроль над почтовыми ящиками, позволяя создавать, удалять и изменять их. Вы можете устанавливать ограничения на размер почтовых ящиков и сообщений, а также настраивать спам-фильтры и автоответчики.
  4. Управление базами данных: Virtualmin поддерживает множество СУБД, включая MariaDB (или MySQL) и PostgreSQL. Вы можете создавать, удалять и изменять базы данных, а также управлять пользователями баз данных.
  5. Управление SSL-сертификатами: Virtualmin позволяет установить и настроить SSL-сертификаты для каждого виртуального хостинга и домена.
  6. Отчетность и мониторинг: Virtualmin обеспечивает детальную отчетность о действиях пользователей, а также мониторинг системных ресурсов, таких как использование процессора и памяти.
  7. Система резервного копирования: Virtualmin позволяет создавать резервные копии файлов, баз данных и других компонентов веб-сервера.
  8. Управление FTP-аккаунтами: Virtualmin позволяет создавать, удалять и изменять FTP-аккаунты для каждого виртуального хостинга.

Кроме того, Virtualmin умеет выпускать бесплатные сертификаты Let’s Encrypt с автопродлением, ставить WordPress, phpMyAdmin и Roundcube в пару кликов, переключать версии PHP для каждого сайта и переносить сайты с cPanel, Plesk и DirectAdmin.

Virtualmin GPL и Virtualmin Pro

Virtualmin выпускается в двух редакциях. Бесплатная Virtualmin GPL не ограничивает число доменов и сайтов и закрывает задачи большинства владельцев VPS. Платная Virtualmin Pro добавляет:

  • реселлеров и более гибкие ограничения ресурсов для клиентов;
  • контейнеры Podman для каждого домена и WP Workbench для массового управления сайтами на WordPress;
  • расширенный каталог веб-приложений для установки в один клик;
  • шифрование резервных копий и дополнительные облачные хранилища;
  • другие ACME-провайдеры SSL помимо Let’s Encrypt;
  • техническую поддержку от разработчиков.

Для своих проектов и небольшого хостинга хватает GPL-версии — всё, что описано ниже, работает в ней.

Системные требования Virtualmin

Поддерживаемые системы (официальный список) — для них есть автоматический установщик и репозиторий обновлений:

  • Ubuntu 24.04 LTS и 26.04 LTS — i386, amd64, arm64;
  • Debian 12 и 13 — i386, amd64, arm64;
  • AlmaLinux и Rocky Linux 8, 9 и 10 — x86_64 и aarch64;
  • Red Hat Enterprise Linux 8, 9 и 10 — x86_64 и aarch64.

Ubuntu 20.04/22.04, Debian 10/11 и CentOS 7 из старой версии статьи больше не поддерживаются — для нового сервера берите свежий релиз из списка.

Рекомендуемые характеристики сервера:

  • минимальная установка (только веб, без почты и DNS) — 1 ядро и 1 ГБ оперативной памяти, установщик сам предложит добавить swap;
  • полная установка с почтой, антиспамом и антивирусом — от 2 ядер и 4 ГБ оперативной памяти, больше — лучше;
  • комфортно для нескольких сайтов без своей почты — 2 ядра и 2–4 ГБ оперативной памяти.

Хостинг:

В качестве хостинга я очень рекомендую VPS от alfahost.io с 10 гигабитной скоростью соединения и современными серверами Ryzen, Xeon под любые задачи. Для серверов в России — Timeweb Cloud.

Установка Virtualmin

Устанавливайте Virtualmin автоматическим скриптом virtualmin-install.sh на чистую поддерживаемую систему: без уже установленных веб-серверов, панелей и сторонних репозиториев. Репозитории вроде ondrej/php подключайте только после установки, если понадобится вторая версия PHP.

Для полной установки с почтой задайте серверу полное имя хоста (FQDN), например host.example.com, — но не домен, который будете размещать в панели. Для минимальной установки это не обязательно.

Обновите пакеты системы (Ubuntu и Debian):

apt update && apt -y upgrade

На AlmaLinux, Rocky Linux и RHEL — dnf -y upgrade.

Установка Virtualmin с Nginx (LEMP)

Скачайте установщик:

cd /tmp
curl -fsSL -o virtualmin-install.sh https://download.virtualmin.com/virtualmin-install.sh

Запустите минимальную установку со стеком Nginx и следуйте подсказкам скрипта:

sh /tmp/virtualmin-install.sh --bundle LEMP --type mini

Ключ --type mini пропускает локальную почту, антиспам и антивирус, DNS-сервер, FTP и Jailkit, но ставит полноценный веб-стек: Nginx, MariaDB, PHP-FPM, Let’s Encrypt, Fail2Ban и файрвол. Отключённые компоненты можно включить позже в «System Settings → Features and Plugins». Старый ключ --minimal по-прежнему работает, но в документации его заменил --type mini. Все параметры — в документации по установке.

После установки откройте адрес из итогов работы скрипта: https://IP_вашего_сервера:10000/.

Установщик сам запрашивает сертификат Let’s Encrypt для имени хоста. Если имя хоста указывает на сервер, откройте https://имя_хоста:10000/ — предупреждений не будет. Если DNS ещё не настроен, входите по IP: браузер предупредит о самоподписанном сертификате, это нормально, сертификат можно выпустить позже. Чтобы пропустить запрос сертификата при установке, добавьте ключ --no-hostname-ssl.

Установка Virtualmin с Apache (LAMP)

Apache и Nginx одновременно в Virtualmin не устанавливаются — выберите один стек. Если вы уже поставили вариант с Nginx, этот шаг не нужен. Apache (LAMP) — стек по умолчанию, поэтому ключ --bundle можно не указывать:

cd /tmp
curl -fsSL -o virtualmin-install.sh https://download.virtualmin.com/virtualmin-install.sh
sh /tmp/virtualmin-install.sh --type mini

Чтобы получить полный набор с почтовым сервером, DNS и FTP, запустите скрипт без --type mini. Размер swap можно задать ключом --swap 2G или отказаться от него ключом --no-swap. Дальше всё так же, как при установке с Nginx: откройте https://IP_вашего_сервера:10000/.

Данные для входа в Virtualmin

После того как вы завершите установку Virtualmin, его панель управления будет использовать адрес https://ip_вашего_сервера:10000/

Данные для входа по умолчанию будут следующими:

Имя пользователя: root или любой пользователь с правами sudo

Пароль: пароль этого пользователя в системе. На облачных VPS со входом по SSH-ключу у root часто нет пароля — задайте его командой sudo passwd root или входите пользователем с sudo.

Мастер настройки Virtualmin

После установки и авторизации в панели управления Virtualmin вам будет необходимо осуществить его базовую настройку в мастер настройки.

Вы можете принять стандартные настройки нажав кнопку «Cancel» или осуществить детальную настройку под вашу систему кнопкой «Next»

Мастер настройки Virtualmin — скриншот

Далее я буду описывать настройку после нажатия кнопки «Next» и предложу перевод интерфейса мастера установки с моими комментариями.

Скриншоты сделаны на полной установке с почтой, поэтому шагов на них больше. При установке с --type mini вопросов про почту, ClamAV и SpamAssassin может не быть.

Использование памяти (Memory use)

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

Virtualmin можно настроить для повышения производительности пользовательского интерфейса и обработки электронной почты, но за счет увеличения использования памяти. Лучший выбор зависит от того, как будет использоваться ваша система.

Предварительно загрузить библиотеки Virtualmin?

  • Да, более быстрый пользовательский интерфейс с использованием большего объема оперативной памяти (≈40 МБ)
  • Нет, более медленный пользовательский интерфейс с меньшим использованием оперативной памяти, но большей загрузкой процессор

Я всегда выбираю ответ Да на этот вопрос чтобы получить более быстрый интерфейс панели управления.

Запустить сервер поиска почтового домена?

  • Да, более быстрая обработка почты с использованием большего объема оперативной памяти (≈70M)
  • Нет, более медленная обработка почты с меньшим использованием оперативной памяти, но большей загрузкой процессора

Выбираем ответ в зависимости от того будете ли вы использовать собственный почтовый сервер на вашем VPS. Я обычно выбираю нет, так как преимущественно использую сторонние почтовые сервисы для сайтов.

Использование памяти (Memory use) — скриншот

Использование антивируса ClamAV для электронной почты

Если в вашей системе будут размещаться домены, которые будут получать большое количество электронной почты, сканирование входящих сообщений на наличие вирусов может привести к высокой нагрузке на ЦП. Поскольку сканирование выполняется с помощью сервера сканирования ClamAV, он будет потреблять оперативную память, даже если не обрабатывает электронную почту. Если в вашей системе не будет размещаться электронная почта, сканирование на вирусы можно отключить.

Включить поиск вирусов с помощью ClamAV?

  • Да, использует до 2 ГБ оперативной памяти
  • Нет, электронная почта не будет фильтроваться

Я выбираю Нет, так как не использую собственный почтовый сервер в Virtualmin.

Использование антивируса ClamAV для электронной почты — скриншот

Фильтрация спама (Spam filtering)

Если в вашей системе будут размещаться домены, которые будут получать большое количество электронной почты, фильтрация входящих сообщений на наличие спама может привести к значительной нагрузке на ЦП. Это связано с использованием ЦП почтовым фильтром SpamAssassin при его запуске, чего можно избежать, запустив spamd сервера фильтрации SpamAssassin в фоновом режиме. Это потребляет ОЗУ, но снижает нагрузку на ЦП и ускоряет обработку почты.

Запустить фильтр сервера SpamAssassin?

  • Да, более быстрая обработка почты с использованием большего объема оперативной памяти (≈30M) и отсутствие настроек для каждого домена
  • Нет, более медленная обработка почты с меньшим использованием оперативной памяти

Я выбираю Нет, так как не использую собственный почтовый сервер в Virtualmin.

Фильтрация спама (Spam filtering) — скриншот

Серверы баз данных (Database servers)

Virtualmin поддерживает серверы баз данных как MariaDB, так и PostgreSQL, но вы можете запустить только один сервер одновременно (или ни один из них) в своей системе. Каждый из них потребляет оперативную память при работе, даже если они не используются.

В зависимости от веб-сайтов и приложений, которые вы планируете размещать, может быть достаточно запуска только MariaDB, поскольку большинство веб-приложений не поддерживают или не требуют PostgreSQL. Если ваша система будет использоваться только для почты или DNS-хостинга, запускать базу данных вообще не нужно.

Запустить сервер базы данных MariaDB?

  • Да
  • Нет

Запустить сервер базы данных PostgreSQL?

  • Да
  • Нет

Обычно я запускаю только базу данных MariaDB (более производительный форк чем mysql). PostgreSQL не использую для хостинга сайтов

Серверы баз данных (Database servers) — скриншот

Пароль MariaDB

Чтобы другие пользователи вашей системы не могли управлять базой данных MariaDB, необходимо установить пароль для пользователя root при входе в MariaDB. В настоящее время пароль MariaDB не установлен, что крайне небезопасно.

Установить пароль MariaDB (будет использоваться при входе в phpmyadmin)

Пароль MariaDB — скриншот

Конфигурация DNS

Чтобы DNS-зоны, созданные Virtualmin, можно было разрешить, для записи первичного сервера имен для каждой зоны должно быть задано значение, которое само по себе может быть разрешено другими системами в Интернете.

Основной сервер имен
Пропустить проверку на разрешимость
Вторичные серверы имен (необязательно)

Конфигурация DNS — скриншот 1

Мастер настройки завершил работу. Нажимаем «Return to Virtualmin» и осуществляем дальнейшие настройки самостоятельно.

Конфигурация DNS — скриншот 2

Настройки Virtualmin

Русификация Webmin

Нажмите Webmin -> Change Language and Theme.

Выберете пункт Personal choice и укажите в нем русский язык выбрав его из выпадающего списка. Затем нажмите «Make Changes» и обновите страницу

Будет применена частичная русификация, так как переведется только часть с Webmin, а Virtualmin перевода не имеет.

Добавление сайта

Нажмите на кнопку «Create Virtual Server» в левой панели Virtualmin

Введите имя вашего домена и пароль для ftp доступа к папке сайта. Если вам не нужна почта для сайта на вашем сервере, то снимите галки «Принять почту для домена» и «Setup spam filtering»

Затем нажмите кнопку создания сервера. Если на ней написано «Добавить $1» — это ошибка перевода в русском интерфейсе, на результат она не влияет.

Дождитесь применения настроек.

Удаление сайта

Нажмите на кнопку «Disable and Delete» в левой панели Virtualmin

Затем подтвердите удаление нажатием кнопки «Да, удалить» в центре появившегося окна.

Дождитесь завершения удаления и нажмите кнопку «Вернуться к списку виртуальных серверов»

SSL-сертификат Let’s Encrypt для сайта

Сначала направьте A-запись домена (и AAAA, если есть IPv6) на IP сервера и дождитесь обновления DNS. Затем:

  1. Выберите сайт в списке слева и откройте «Manage Virtual Server → Setup SSL Certificate».
  2. Перейдите на вкладку SSL Providers и проверьте список доменов — обычно это домен и www.
  3. Провайдер — Let’s Encrypt, включите «Automatically renew certificate» и «Check connectivity first».
  4. Нажмите Request Certificate и дождитесь выпуска.
  5. Включите перенаправление HTTP на HTTPS в «Web Configuration → Website Options».

Не включайте перенаправление на HTTPS до выпуска сертификата: Let’s Encrypt проверяет домен по HTTP. Сертификат для самой панели включается в «System Settings → Virtualmin Configuration → SSL settings». Подробнее — в документации Virtualmin по SSL.

Смена версии PHP

Официальная инструкция — Configuring Multiple PHP Versions.

Если у вас установлено несколько версий PHP, Virtualmin позволяет вам выбрать режим выполнения и версию PHP, используемую для данного домена. Доступные режимы выполнения: FPM (рекомендуется) и CGI/FCGId. Последний режим позволяет вам устанавливать разные версии PHP для каждого каталога.

То есть вам необходимо дополнительно установить необходимую версию PHP.

Для Ubuntu

Добавьте репозиторий от ondrej/php:

env LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && apt-get update

Установите нужную версию PHP с расширениями — вместо php8.4 укажите свою:

apt-get install php8.4-{cgi,cli,fpm,gd,mbstring,mysql,opcache,curl,intl,xml,zip}

Для Debian

Добавьте репозиторий от sury/php:

apt-get -y install lsb-release ca-certificates curl
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb
sh -c 'echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update

Установите нужную версию PHP с расширениями — вместо php8.4 укажите свою:

apt-get install php8.4-{cgi,cli,fpm,gd,mbstring,mysql,opcache,curl,intl,xml,zip}

На AlmaLinux, Rocky Linux и RHEL дополнительные версии PHP ставятся из репозитория Remi — команды есть в документации Virtualmin.

Настройка второй версии PHP в Virtualmin

После того, как вы завершили установку второй версии PHP на свой сервер, вы можете убедиться, что Virtualmin видит ее, войдя в Virtualmin и нажав в левой панели «System Settings» → «Re-Check Configuration». Вы должны увидеть что-то вроде этого:

The following PHP versions are available : 8.3.6 (/usr/bin/php-cgi8.3), 8.4.12 (/usr/bin/php-cgi8.4)
The following PHP-FPM versions are available : 8.3.6 (php8.3-fpm), 8.4.12 (php8.4-fpm)

Вы можете настроить, какая из этих версий PHP будет использоваться по умолчанию на новых виртуальных серверах. По умолчанию используется самая новая из доступных. Вы можете изменить это значение по умолчанию в разделе «System Settings» → «Server Templates» → «PHP Options».

Настройка PHP для отдельных сайтов (виртуальных серверов)

Вы можете настроить версию PHP, используемую для определенного виртуального сервера, выбрав «Web Configuration» → «PHP Options».

Настройка второй версии PHP в Virtualmin — скриншот

Установка phpMyAdmin

Проще всего поставить phpMyAdmin встроенным установщиком веб-приложений — он есть и в бесплатной версии:

  1. Выберите сайт, на котором будет работать phpMyAdmin, и откройте «Manage Web Apps».
  2. На вкладке доступных приложений выберите phpMyAdmin, укажите путь (например, /pma) и нажмите «Install».
  3. Откройте https://ваш-домен/pma/ и войдите пользователем базы данных.

Так phpMyAdmin обновляется из панели и работает через HTTPS сайта. Ниже — ручной вариант на отдельном порту, если хотите отделить phpMyAdmin от сайтов.

Установка phpMyAdmin вручную на отдельном порту

Скачиваем архив с установочными файлами с официального сайта phpmyadmin.net

Установка phpMyAdmin — скриншот 1

Распаковываем скачанный архив в папку /var/www/pma

Установка phpMyAdmin — скриншот 2

Создаем /etc/nginx/sites-available/pma.conf для нового виртуального хоста nginx

Установка phpMyAdmin — скриншот 3

Содержимое файла /etc/nginx/sites-available/pma.conf должно быть таким:

server {
    listen ip_servera:10050 ssl default_server;
    server_name _;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    root /var/www/pma;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Вместо ip_servera укажите внешний IP вашего VPS, а в fastcgi_pass — сокет своей версии PHP: список есть в /run/php/ (на Ubuntu 24.04 по умолчанию PHP 8.3, на Debian 12 — 8.2, на Debian 13 — 8.4). Порт 10050 входит в диапазон 10000–10100, который файрвол Virtualmin открывает по умолчанию.

Создаём самоподписные сертификаты в /etc/nginx/ssl/:

mkdir /etc/nginx/ssl && cd /etc/nginx/ssl && openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt

Проверяем конфигурации nginx на ошибки:

nginx -t

Если ошибок нет, то перезагружаем nginx:

systemctl reload nginx

Phpmyadmin должен быть доступен по адресу: https://ip_servera:10050/

Вместо ip_servera укажите непосредственно внешний ip вашего VPS сервера.

Обновление Virtualmin

Нажмите на кнопку «Панель» в левой панели Virtualmin, затем нажмите рядом с «Обновления пакетов»

Из консоли Virtualmin обновляется вместе с системой: apt update && apt upgrade на Ubuntu и Debian или dnf upgrade на AlmaLinux, Rocky Linux и RHEL.

Настройки безопасности Webmin и phpMyAdmin

Настройки безопасности для Webmin, phpMyAdmin и Nginx могут варьироваться в зависимости от требований конкретного проекта, но вот некоторые общие рекомендации:

  1. Webmin
  • Включите двухфакторную аутентификацию для входа в Webmin.
  • Ограничьте доступ к панели своими IP-адресами или подсетью VPN.
  • Не входите под root — создайте отдельного администратора.
  • Смените стандартный порт 10000, чтобы уменьшить число автоматических атак.
  • Следите, чтобы Fail2Ban и файрвол были включены.
  1. phpMyAdmin
  • Измените имя входа на что-то отличное от «admin» или «root»;
  • Установите сложный пароль для входа в phpMyAdmin;
  • Запретите доступ к phpMyAdmin извне, например, с помощью фаервола;
  • Используйте HTTPS для шифрования трафика между браузером и сервером;
  • Ограничьте доступ к phpMyAdmin только с определенных IP-адресов;
  • Обновляйте phpMyAdmin до последней версии и следите за обновлениями безопасности.

Эти рекомендации могут быть расширены в зависимости от конкретных требований безопасности вашего проекта.

Смена стандартного порта Webmin

Чтобы изменить порт Webmin через веб-интерфейс, выполните следующие шаги:

  1. Войдите в систему под учетной записью, имеющей права администратора, и откройте Webmin в вашем веб-браузере.
  2. В левой панели выберите раздел «Webmin» и затем выберите «Настройка Webmin».
  3. В меню «Настройка Webmin» выберите «Порт и адрес».
  4. Найдите опцию «Слушать на IP-адресах и портах» и выберите «Указанный port..» (если она не выбрана).
  5. Введите новый номер порта в поле «Указанный port..», например, «8080».
  6. Также измените порт на новый в поле «Слушать широковещательные запросы по UDP порту»
  7. Нажмите кнопку «Сохранить» для сохранения изменений.
  8. Перезапустите службу Webmin, чтобы применить изменения. Для этого выберите «Webmin» в левой панели, затем «Настройка Webmin» и нажмите «Перезапустить Webmin».

После сохранения панель откроется на новом порту. Файрвол Virtualmin по умолчанию открывает диапазон 10000–10100; если выбрали порт вне его, сначала откройте порт в модуле «Linux Firewall» (см. ниже), иначе потеряете доступ к панели.

Смена пользователя root

Для смены пользователя root на нового в Webmin необходимо выполнить следующие шаги:

  1. Войдите в Webmin под учетной записью, имеющей права администратора.
  2. В левой панели выберите раздел «Webmin» и затем выберите «Пользователи Webmin».
  3. Найдите учетную запись «root» в списке пользователей и нажмите на ее имя.
  4. В настройках учетной записи «root» выберите пункт «Копировать».
  5. Введите новое имя пользователя в поле «Имя пользователя».
  6. Установите новый пароль для нового пользователя в поле «Пароль».
  7. Установите необходимые разрешения для нового пользователя, выбрав соответствующие опции в списке «Доступные модули Webmin».
  8. Нажмите кнопку «Создать» для создания новой учетной записи.
  9. Выходите из Webmin и заново входите под учетной записью нового пользователя, чтобы убедиться, что все работает корректно.
  10. Вернитесь в раздел «Пользователи Webmin» из п.2 и удалите пользователя «root».

После выполнения этих шагов вы сможете использовать новую учетную запись вместо учетной записи «root» для доступа к Webmin. Обратите внимание, что новый пользователь должен иметь достаточные права для управления вашей системой.

Двухфакторная аутентификация в Webmin

  1. Откройте «Webmin → Webmin Configuration → Two-Factor Authentication», выберите провайдера Google Authenticator (подходит любое TOTP-приложение: Aegis, 2FAS, Google Authenticator) и сохраните. Если Webmin попросит установить Perl-модуль, согласитесь.
  2. Перейдите в «Webmin → Webmin Users», откройте вкладку «Two-Factor Authentication» и зарегистрируйте своего пользователя: отсканируйте QR-код приложением.
  3. Выйдите и войдите снова — теперь Webmin спросит одноразовый код.

Доступ к Webmin только с определённых IP

Самый простой способ не зависит от файрвола: откройте «Webmin → Webmin Configuration → IP Access Control», выберите «Only allow from listed addresses» и перечислите свои адреса или подсети. Например, чтобы пускать в панель только из домашней сети WireGuard, укажите 10.2.0.0/24. Обязательно добавьте адрес, с которого работаете сейчас, иначе после сохранения потеряете доступ.

Fail2Ban в Virtualmin

Отдельно ставить Fail2Ban не нужно: установщик Virtualmin 8 сам устанавливает и настраивает его. В /etc/fail2ban/jail.local включены защиты SSH, входа в Webmin, Postfix и Dovecot, а при полной установке ещё ProFTPD и Usermin. Логи читаются из systemd-журнала, а блокировки выполняются через nftables.

Проверьте, какие защиты работают:

fail2ban-client status
fail2ban-client status sshd

В Webmin управлять Fail2Ban можно в модуле «Fail2Ban Intrusion Detector» — ищите его в разделе «Сеть» или «Неиспользуемые модули».

Не перезаписывайте jail.local, созданный Virtualmin: его настройки рассчитаны на systemd-журнал и nftables. Чтобы ужесточить блокировки, создайте отдельный файл:

nano /etc/fail2ban/jail.d/custom.local
[DEFAULT]
# 3 попытки за 3 часа — бан на сутки
maxretry = 3
findtime = 3h
bantime = 1d
# свои адреса, которые никогда не блокировать
ignoreip = 127.0.0.1/8 ::1 10.2.0.0/24

Вместо 10.2.0.0/24 укажите свою подсеть VPN или домашний IP. Примените настройки и проверьте, что служба запустилась без ошибок:

systemctl restart fail2ban
systemctl status fail2ban

Старый вариант конфигурации из этой статьи с фильтром sshd-ddos и действием ufw для современных систем не подходит: в новых версиях Fail2Ban фильтра sshd-ddos нет, и служба с ним не запускается.

Файрвол nftables в Virtualmin

Virtualmin 8 настраивает файрвол на nftables: установщик создаёт профиль для хостинга с открытыми портами SSH, веба, почты, DNS, FTP и Webmin (10000–10100), а FirewallD, iptables и UFW останавливает и отключает, чтобы правила не конфликтовали.

  • Правила редактируются в Webmin: «Сеть → Linux Firewall». Там можно закрыть ненужные порты — например, почтовые и FTP, если ставили --type mini, — и заблокировать IP или подсеть.
  • Проверить текущие правила из консоли: nft list ruleset.
  • Не ставьте UFW поверх nftables-профиля Virtualmin: два набора правил начнут конфликтовать, и можно потерять доступ к серверу.
  • На серверах, установленных до Virtualmin 8, по умолчанию работает FirewallD — им управляют в модуле Webmin «FirewallD». Совмещать его с UFW тоже не стоит.

Чтобы спрятать панель от интернета целиком, удобнее всего подключаться к серверу через VPN и разрешить вход в Webmin только из подсети VPN через «IP Access Control» (см. выше).

Резервное копирование в Virtualmin

Virtualmin делает резервные копии сайтов целиком: файлы, базы данных, настройки веб-сервера, DNS и почты. Настройте их по расписанию:

  1. Откройте «Backup and Restore → Scheduled Backups» и добавьте новое расписание.
  2. Выберите сайты (или все) и компоненты для копирования.
  3. Укажите место хранения: локальный каталог, другой сервер по SSH или FTP либо облачное хранилище вроде S3-совместимого.
  4. В пути можно использовать дату, например /backup/%Y-%m-%d, чтобы хранить копии за несколько дней, и настроить удаление старых.
  5. Выберите расписание — например, ежедневно в полночь — и сохраните.

Храните копии не только на том же сервере: если VPS выйдет из строя, локальные копии пропадут вместе с ним. Для больших сайтов пригодятся дифференциальные копии — полная раз в неделю и изменения каждую ночь. Восстановление — в «Backup and Restore → Restore Virtual Servers», подробнее в документации Virtualmin.

Virtualmin и другие панели хостинга

Коротко о том, чем Virtualmin отличается от популярных альтернатив:

ПанельЛицензияВеб-серверПочта и DNSКому подойдёт
Virtualminбесплатная GPL, есть ProApache или Nginxдатем, кому нужен полный контроль и много функций
HestiaCPбесплатнаяNginx + Apache или PHP-FPMдатем, кому нужен простой интерфейс; только Debian и Ubuntu
CloudPanelбесплатнаяNginxнетдля сайтов на PHP, Node.js и Python без своей почты
aaPanelбесплатная основа, платные плагиныNginx, Apache, OpenLiteSpeedчерез плагинытем, кто любит магазин приложений в панели
ISPmanagerплатнаяApache и Nginxдатем, кому нужен русский интерфейс и коммерческая поддержка

Virtualmin сложнее остальных на первый взгляд, зато поддерживает больше систем, умеет почти всё из коробки и полностью бесплатен в GPL-версии без ограничений на число сайтов.

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

Virtualmin бесплатный?

Да. Virtualmin GPL бесплатен и не ограничивает число доменов и сайтов. Платная Virtualmin Pro добавляет реселлеров, контейнеры Podman, WP Workbench, расширенный каталог веб-приложений, шифрование резервных копий и поддержку разработчиков.

На какие системы можно установить Virtualmin?

Официально поддерживаются Ubuntu 24.04 и 26.04 LTS, Debian 12 и 13, AlmaLinux, Rocky Linux и RHEL 8, 9 и 10, в том числе на ARM. Ставить нужно на чистую систему.

Сколько памяти нужно для Virtualmin?

Для минимальной установки без почты хватает 1 ГБ оперативной памяти со swap. Для полной установки с почтой, антиспамом и антивирусом разработчики рекомендуют от 4 ГБ.

Чем отличается установка с —type mini?

Минимальная установка пропускает локальную почту, антиспам и антивирус, DNS-сервер, FTP и Jailkit, но ставит полноценный веб-стек. Компоненты можно включить позже в System Settings → Features and Plugins.

Как получить бесплатный SSL в Virtualmin?

Выберите сайт, откройте Manage Virtual Server → Setup SSL Certificate → SSL Providers, выберите Let’s Encrypt с автопродлением и нажмите Request Certificate. Домен должен уже указывать на IP сервера.

Можно ли сменить Apache на Nginx после установки?

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

Подписаться на новые статьи (RSS)

Без почты и трекеров — только лента обновлений.

Также есть английская лента

Оцените статью
Добавить комментарий

  1. Аватар kiberlis
    kiberlis автор

    Сам я использую панель управления сайтами FastPanel https://openode.ru/topic/350-fastpanel-neveroyatno-bystraya-i-nadezhnaya-panel-upravleniya-saytami-rekomenduem/

    VIrtualmin конечно очень хорош и функционален, но отнимает уйму в времени в освоении LEMP и LAMP, потому перешел на FastPanel которая чрезвычайно быстра и стабильна

    Ответить