Открыть сервис

Webmin

Webmin — это веб-ориентированная система администрирования Unix-подобных операционных систем, предоставляющая графический интерфейс для управления конфигурацией сервера, пользователями, службами и программным обеспечением. Webmin написан на языке Perl и использует собственный веб-сервер, работающий по протоколу HTTPS. Система распространяется на условиях лицензии BSD, является свободным программным обеспечением и поддерживает большинство дистрибутивов Linux, а также BSD-системы (FreeBSD, OpenBSD, NetBSD) и Solaris.

История

Webmin был создан в 1997 году австралийским разработчиком Джейми Кэмероном (Jamie Cameron). Первоначальная версия представляла собой простой Perl-скрипт для управления файлом /etc/passwd через веб-интерфейс. По мере добавления модулей для настройки Apache, Sendmail, BIND и других служб, проект быстро эволюционировал в полноценную панель управления.

В 2001 году вышла версия 0.90, которая включала модульную архитектуру и поддержку SSL. К 2005 году Webmin стал одним из самых популярных решений для удалённого администрирования серверов, особенно в среде хостинг-провайдеров и малого бизнеса.

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

На 2024 год актуальной стабильной версией является 2.111 (выпущена в феврале 2024 года). Проект продолжает активно развиваться, поддерживая новые версии дистрибутивов и обновления безопасности.

Архитектура и устройство

Ядро системы

Webmin состоит из нескольких ключевых компонентов:

  • miniserv.pl — встроенный веб-сервер, написанный на Perl. Он обрабатывает HTTP/HTTPS-запросы, управляет сессиями и аутентификацией. Сервер может работать на любом порту (по умолчанию 10000 для HTTPS).
  • Модульная система — каждый функциональный блок оформлен в виде отдельного модуля, расположенного в каталоге /usr/libexec/webmin/. Модули могут быть написаны на Perl, Shell или других языках.
  • База конфигурации — настройки хранятся в текстовых файлах в каталоге /etc/webmin/. Каждый модуль имеет собственный конфигурационный файл (например, apache/config, mysql/config).

Интерфейс

Webmin предоставляет веб-интерфейс, разделённый на категории:

  • Система — управление пользователями, группами, процессами, дисками, файловыми системами, временем, загрузчиком, ядром.
  • Серверы — настройка веб-серверов (Apache, Nginx), почтовых серверов (Postfix, Sendmail, Dovecot), DNS-серверов (BIND), баз данных (MySQL, MariaDB, PostgreSQL), FTP-серверов (ProFTPD, vsftpd).
  • Сеть — настройка сетевых интерфейсов, маршрутизации, брандмауэра (iptables, firewalld), VPN (OpenVPN, WireGuard), DHCP, DNS.
  • Оборудование — управление дисками, RAID-массивами, принтерами, мониторингом (SNMP, Munin).
  • Кластер — управление кластерными конфигурациями, репликацией баз данных, синхронизацией файлов.
  • Неиспользуемые модули — модули, которые не активны, но могут быть установлены.

Аутентификация и безопасность

Webmin поддерживает несколько методов аутентификации:

  • Локальные пользователиаутентификация через PAM (Pluggable Authentication Modules) или системные файлы /etc/passwd и /etc/shadow.
  • LDAP/Active Directory — интеграция с корпоративными каталогами.
  • Двухфакторная аутентификация — поддержка TOTP (Time-based One-Time Password) через Google Authenticator или аналоги.
  • SSL/TLS — по умолчанию используется самоподписанный сертификат, но поддерживается Let’s Encrypt, а также загрузка собственных сертификатов.

Доступ к Webmin может быть ограничен по IP-адресам, а также по времени суток. Все действия логируются в файл /var/log/webmin/.

Функциональные возможности

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

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

Настройка веб-серверов

Модуль Apache позволяет управлять виртуальными хостами, настраивать модули (mod_rewrite, mod_ssl, mod_proxy), управлять SSL-сертификатами, задавать директории и права доступа. Для Nginx доступен аналогичный модуль, хотя он менее функционален.

Управление базами данных

Webmin включает модули для MySQL/MariaDB, PostgreSQL и SQLite. Через веб-интерфейс можно создавать базы данных, пользователей, выполнять SQL-запросы, импортировать и экспортировать дампы, управлять репликацией.

Мониторинг и логи

Система предоставляет:

  • Мониторинг процессов — просмотр активных процессов, их завершение, изменение приоритета.
  • Мониторинг дисков — отображение занятого места, inode, файловых систем.
  • Системные логи — просмотр логов syslog, auth.log, mail.log, а также логов веб-сервера и базы данных.
  • Уведомления — настройка отправки email-уведомлений при определённых событиях (например, заполнение диска, падение службы).

Управление пакетами

Webmin поддерживает работу с пакетными менеджерами: APT (Debian/Ubuntu), YUM/DNF (RHEL/CentOS/Fedora), Zypper (openSUSE), Pacman (Arch Linux). Через интерфейс можно обновлять систему, устанавливать и удалять пакеты, искать пакеты по репозиториям.

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

Встроенный модуль Backup позволяет создавать резервные копии конфигурационных файлов, баз данных и пользовательских данных. Поддерживается расписание, сжатие, шифрование и отправка на удалённый сервер по FTP, SFTP или SCP.

Производные проекты

Usermin

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

Virtualmin

Virtualmin — надстройка над Webmin, специализирующаяся на управлении веб-хостингом. Она автоматизирует создание виртуальных хостов, управление базами данных, почтовыми ящиками, DNS-зонами и SSL-сертификатами. Virtualmin существует в двух редакциях: бесплатной (GPL) и коммерческой (Virtualmin Professional). Проект был основан Джейми Кэмероном в 2005 году.

Cloudmin

Cloudmin — ещё одна надстройка, предназначенная для управления облачными инфраструктурами. Она позволяет создавать и управлять виртуальными машинами (KVM, Xen, OpenVZ), управлять образами, сетями и хранилищами. Cloudmin также существует в бесплатной и коммерческой версиях.

Критика и ограничения

Безопасность

Webmin неоднократно подвергался критике за уязвимости. В 2019 году была обнаружена критическая уязвимость (CVE-2019-15107), позволявшая выполнить произвольный код без аутентификации через параметр password_change.cgi. Уязвимость затрагивала версии 1.890–1.920. Разработчики оперативно выпустили исправление, но инцидент подорвал доверие к системе.

Другие известные уязвимости:

  • CVE-2020-35606 — SQL-инъекция в модуле MySQL.
  • CVE-2021-31760 — межсайтовый скриптинг (XSS) в модуле File Manager.
  • CVE-2022-36434 — локальное повышение привилегий через неправильные права доступа к файлам конфигурации.

Производительность

Webmin использует Perl-интерпретатор, который может быть медленнее, чем аналоги на C или Go (например, CWP, HestiaCP). При большом количестве одновременных запросов (например, при массовом создании пользователей) возможны задержки.

Ограниченная поддержка современных технологий

Некоторые модули Webmin устарели и не поддерживают новые версии программного обеспечения. Например, модуль для Nginx не поддерживает все директивы, доступные в последних версиях. Модуль для Docker отсутствует в официальном репозитории, хотя существуют сторонние разработки.

Альтернативы

На рынке панелей управления серверами существуют следующие альтернативы Webmin:

  • Cockpit — веб-консоль для управления серверами Linux, разработанная Red Hat. Написана на C и JavaScript, использует systemd. Легче и быстрее Webmin, но имеет меньше модулей.
  • Ajenti — панель на Python, поддерживает плагины. Менее популярна, чем Webmin.
  • ISPConfig — панель для хостинга, поддерживает несколько серверов. Бесплатна, но сложнее в настройке.
  • CWP (CentOS Web Panel) — коммерческая панель для CentOS/AlmaLinux/Rocky Linux. Имеет бесплатную версию с ограничениями.
  • HestiaCP — форк VestaCP, поддерживает Debian и Ubuntu. Легковесная, но с ограниченным функционалом.
  • Plesk и cPanel — коммерческие панели, популярные в хостинг-индустрии. Имеют широкий функционал, но платные.

Интересные факты

  • Webmin является одним из старейших активно развивающихся проектов в области веб-администрирования — его первая версия вышла на 4 года раньше cPanel (2001).
  • Исходный код Webmin доступен на GitHub, где проект имеет более 2,5 тысяч звёзд.
  • Webmin поддерживает более 100 языков, включая русский, хотя качество перевода некоторых модулей оставляет желать лучшего.
  • В 2020 году Webmin был включён в репозитории большинства дистрибутивов Linux, что упростило его установку через пакетные менеджеры.

Источники

  • Официальная документация Webmin (webmin.com/docs)
  • Репозиторий Webmin на GitHub (github.com/webmin/webmin)
  • База данных уязвимостей CVE (cve.mitre.org)
  • Статья «Webmin» на сайте Wikipedia (английская версия)
  • Книга «Webmin Administrator's Guide» by Jamie Cameron (Packt Publishing, 2005)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →