Установка и настройка Webmin (Ubuntu/Debian) 列印

  • webmin, ubuntu, debian, панель управления
  • 0

Подготовка сервера

sudo apt update && sudo apt -y full-upgrade
sudo apt -y install curl gnupg ca-certificates ufw
hostnamectl set-hostname panel.example.com

1) Добавляем репозиторий и ставим Webmin

Работает одинаково для Ubuntu 22.04/24.04 и Debian 12/13.

# 1) Ключ репозитория
curl -fsSL https://download.webmin.com/jcameron-key.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/webmin.gpg

# 2) Источник APT
echo "deb [signed-by=/usr/share/keyrings/webmin.gpg] https://download.webmin.com/download/repository sarge contrib" \
| sudo tee /etc/apt/sources.list.d/webmin.list >/dev/null

# 3) Установка
sudo apt update
sudo apt -y install webmin

Служба запустится автоматически: панель слушает TCP 10000 (HTTPS с самоподписанным сертификатом).

2) Файрвол и первый вход

sudo ufw allow 10000/tcp comment 'Webmin panel'
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw --force enable

Откройте браузер: https://203.0.113.10:10000/ → логин root (или ваш sudo-пользователь).

Советы по доступу: на бою лучше ограничить порт 10000 по IP (см. ниже).

3) Базовая безопасность (miniserv.conf)

Файл конфигурации веб-сервера Webmin: /etc/webmin/miniserv.conf.

# ОГРАНИЧИТЬ доступ к панели (пример: только ваш офисный IP и подсеть VPN)
sudo sed -i 's/^#\?allow=.*/allow=198.51.100.25 10.66.66.0\/24/' /etc/webmin/miniserv.conf

# (Опционально) Сменить порт панели (например, 10443)
sudo sed -i 's/^port=.*/port=10443/' /etc/webmin/miniserv.conf
sudo ufw allow 10443/tcp comment 'Webmin custom port'
sudo ufw delete allow 10000/tcp 2>/dev/null || true

# Перезапуск
sudo systemctl restart webmin

Двухфакторная аутентификация (TOTP)

sudo apt -y install libpam-google-authenticator
# В Webmin: Webmin Configuration → Two-Factor Authentication → TOTP (включить для root/админов)

4) SSL от Let’s Encrypt для Webmin-панели

Привяжем реальный домен panel.example.com и выпустим сертификат.

# Открыть HTTP для валидации
sudo ufw allow 80/tcp

# Остановить Webmin на время standalone-валидации
sudo systemctl stop webmin

# Установить и выпустить сертификат
sudo apt -y install certbot
sudo certbot certonly --standalone -d panel.example.com -m [email protected] --agree-tos -n

# Подключить сертификаты к Webmin
sudo bash -c 'cat >>/etc/webmin/miniserv.conf <<EOF
ssl=1
certfile=/etc/letsencrypt/live/panel.example.com/fullchain.pem
keyfile=/etc/letsencrypt/live/panel.example.com/privkey.pem
EOF'

# Хук на автообновление сертификата (перезапускать Webmin после renew)
sudo tee /etc/letsencrypt/renewal-hooks/deploy/00-reload-webmin.sh >/dev/null <<'SH'
#!/usr/bin/env bash
systemctl restart webmin
SH
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/00-reload-webmin.sh

sudo systemctl start webmin

Теперь панель доступна по https://panel.example.com:10443/ (или по вашему порту).

5) Пользователи и доступ

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

# Создать отдельного админа без shell-доступа
sudo useradd -m -s /usr/sbin/nologin webadmin
sudo passwd webadmin
# Дать права в Webmin: Webmin → Webmin Users → создать пользователя webadmin и назначить модули

Для обычных задач достаточно модулей: System, Servers, Networking, Webmin Configuration, Others (Scheduled Cron, File Manager).

6) Типичные «настройки Webmin» под прод

Локаль, время, обновления

sudo timedatectl set-timezone Europe/Amsterdam
sudo apt -y install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

В панели: System → Software Package Updates (проверка апдейтов), System → Scheduled Cron (планирование).

Nginx/Apache, PHP, базы

В Webmin включите нужные модули (они видны, если пакеты стоят):

# Примеры пакетов
sudo apt -y install nginx php-fpm mariadb-server
# Затем в Webmin: Servers → Nginx Webserver / Apache Webserver / MySQL Database Server

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

System → Filesystem Backup (или Backup Configuration Files) — настроить регулярный бэкап конфигов/каталогов на локальный/удалённый ресурс.

Мониторинг

System and Server Status — добавьте проверки служб (nginx, php-fpm, mariadb) и e-mail-уведомления.

7) Ограничение по IP (дублируем в UFW)

# Разрешить доступ к панели только офисному IP и VPN-подсети
sudo ufw deny 10443/tcp
sudo ufw allow from 198.51.100.25 to any port 10443 proto tcp
sudo ufw allow from 10.66.66.0/24 to any port 10443 proto tcp
sudo ufw status numbered

8) Обновление и удаление Webmin

# Апдейты Webmin прилетают через APT вместе с системой
sudo apt update && sudo apt -y upgrade

# Удаление (если понадобится)
sudo apt -y purge webmin
sudo rm -f /etc/apt/sources.list.d/webmin.list /usr/share/keyrings/webmin.gpg
sudo apt -y autoremove


Webmin аналоги (что выбрать, если не Webmin)

HestiaCP — лёгкая панель для веб-хостинга (веб-сайты, почта, DNS).
ISPConfig — полнофункциональная хостинг-панель с тонкими ролями.
Cockpit — современный «дашборд» для серверов (службы, контейнеры, обновления).
Ajenti — минималистичная админ-панель (веб/службы).
Virtualmin — надстройка над Webmin для веб-хостинга (вирт-хосты, почта, DNS).

Если сомневаетесь, с какой панели стартовать под ваши задачи — напишите нам. Под реальную нагрузку подберём стек и развернём «под ключ».

Мы установим и настроим Webmin бесплатно при заказе VPS/Dedicated в HSTQ: домен и SSL для панели, ограничение доступа по IP, модули (Nginx/Apache/PHP/MySQL), автообновления и бэкапы, мониторинг и 2FA. Нужно больше — добавим панели HestiaCP/ISPConfig, настроим почту, DNS и резервирование.


這篇文章有幫助嗎?

« 返回

Powered by WHMCompleteSolution


知識庫