Webmin — это бесплатная и открытая система управления для администрирования Unix/Linux серверов. В этом руководстве мы рассмотрим процесс установки Webmin на сервер с CentOS 8 или RHEL 8.

Webmin предлагает пользователям удобный веб-интерфейс для управления основными системными задачами и настройками. Если вы предпочитаете избегать работы с командной строкой при администрировании сервера, Webmin станет отличным графическим решением. Далее перечислены функции, доступные в Webmin.
- DNS сервер BIND выполняет функции как резольвера, так и авторитетного сервера.
- Сервер Samba
- Файловый сервер по протоколу FTP
- SMTP сервер Postfix и IMAP/POP3 сервер Dovecot.
- Создание резервной копии файловой системы.
- Конфигурация ротации логов.
- Управление пакетными репозиториями, настройка автоматических обновлений программ и получение уведомлений об обновлениях на электронную почту.
- Администрирование пользователей и групп.
- Планирование задач с помощью Cron.
- Конфигурация брандмауэра iptables.
- И многое другое.
Содержание статьи
Установка Webmin на CentOS 8/RHEL 8 из репозитория Webmin.
Webmin существует с 1997 года. На момент написания этой статьи последняя стабильная версия — 1.970, которая была выпущена 6 января 2021 года. Webmin не входит в стандартный репозиторий программного обеспечения CentOS/RHEL. Рекомендуется устанавливать Webmin из официального репозитория, чтобы иметь возможность получать актуальные обновления.
Для добавления репозитория Webmin необходимо создать файл репозитория, используя текстовый редактор командной строки, например, Nano.
sudo dnf install nano sudo nano /etc/yum. repos. d/webmin. repo
Включите указанные строки в файл.
[Webmin] name=Webmin Distribution Neutral #baseurl=https://download.webmin.com/download/yum mirrorlist=https://download.webmin.com/download/yum/mirrorlist enabled=1

Сохраните и закройте документ. Для сохранения файла в текстовом редакторе Nano нажмите CTRL+O, затем подтвердите действие нажатием Enter. Чтобы закрыть файл, используйте сочетание CTRL+X. Затем необходимо выполнить следующую команду для загрузки и импорта ключа подписи PGP Webmin, что позволит менеджеру пакетов проверить целостность загружаемых из репозитория Webmin пакетов.
wget http://www. webmin.com/jcameron-key. asc
После этого выполните импорт с использованием:
sudo rpm --import jcameron-key. asc
Теперь у нас есть возможность обновить репозиторий и установить Webmin.
sudo dnf update - y sudo dnf install webmin - y
После установки встроенный веб-сервер Wemin запускается автоматически. Это можно проверить, выполнив следующую команду systemctl:
systemctl status webmin
Если команда, указанная выше, не выполнится сразу, вы можете нажать клавишу Q, чтобы вернуть управление терминалом.
Если он не функционирует, вы можете активировать его с помощью:
sudo systemctl start webmin
Если вы столкнулись с ошибкой «Unit webmin.service could not be found», необходимо перезагрузить сервер.
sudo shutdown - r now
Webmin работает на порту 10000, поэтому необходимо разблокировать TCP порт 10000 в вашем брандмауэре.
sudo firewall-cmd --permanent --add-port=10000/tcp sudo systemctl reload firewalld
Теперь у вас есть возможность использовать веб-интерфейс управления по следующему адресу.
https://ваш-ip-сервер:10000
Поскольку он функционирует через HTTPS и применяет самоподписанный сертификат TLS, ваш браузер сообщит вам о том, что соединение не является безопасным.

Но вы знаете, что это ваш собственный сервер, поэтому просто нажмите на вкладку «Дополнительно» в Firefox и добавьте исключение. Если вы используете Google Chrome, вы можете нажать «Дополнительно» -> «Продолжить».
На экране появится форма входа в Webmin. Для доступа используйте учетную запись root.

Если вас не устраивает стандартный цвет навигационного меню, вы можете заменить его на другой, кликнув по иконке настроек темы в нижней части навигационного меню.

После этого настройте параметры навигационного меню и выберите цветовую палитру. Например, я остановился на цвете полночного синего.

Запишите изменения.
Конфигурация обратного прокси-сервера
Если вы развернули Webmin на своем рабочем сервере, возможно, вам потребуется настроить обратный прокси с помощью Apache или Nginx. Это позволит вам получить доступ к интерфейсу Webmin через доменное имя без необходимости указывать порт (10000). Кроме того, такая настройка дает возможность получить и установить действующий TLS-сертификат от Let’s Encrypt для Webmin.
Если у вас еще нет зарегистрированного доменного имени, советую рассмотреть возможность его приобретения на сайте NameCheap. Цены там весьма доступные, а также они предлагают бесплатную защиту конфиденциальности whois на весь срок действия домена.
Apache
Если вы хотите использовать веб-сервер Apache, следуйте данным указаниям для настройки обратного прокси.
Установите сервер Apache для веб-хостинга.
sudo dnf install httpd
После этого необходимо сгенерировать файл виртуального хоста для Webmin.
sudo nano /etc/httpd/conf.d/webmin.conf
Добавьте данный текст в файл, заменив webmin. your-domain.com на ваше реальное доменное имя. Также не забудьте создать A-запись в DNS для него.
Сохраните файл и закройте его. Перезапустите Apache для применения изменений.
sudo systemctl reload httpd
По умолчанию SELinux блокирует возможность Apache отправлять сетевые запросы к другим серверам, однако Apache требуется перенаправлять HTTP-запросы на 127.0.0.1:10000. Для этого необходимо разрешить Apache выполнение таких действий с помощью следующей команды.
sudo setsebool - P httpd_can_network_connect 1
Теперь вы можете подключиться к Webmin удалённо, введя в адресную строку браузера доменное имя (webmin. your-domain.com).
Nginx
Если вы хотите использовать веб-сервер Nginx, следуйте данным инструкциям для настройки обратного прокси.
Произведите установку Nginx на системе CentOS или RHEL.
sudo dnf install nginx
Начните работу с веб-сервером Nginx.
sudo systemctl start nginx
Создайте новый файл конфигурации сервера в директории /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/webmin.conf
Добавьте следующий текст в файл, подставив вместо webmin. your-domain.com выбранное вами доменное имя. Также не забудьте настроить DNS-запись типа A для этого домена.
server < listen 80; listen [::]:80; server_name webmin. your-domain.comaccess_log /var/log/nginx/webmin. access; error_log /var/log/nginx/webmin. error; путь /< proxy_pass http://127.0.0.1:10000; #proxy_set_header Host $http_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; >>
Сохраните файл и закройте его. После этого проверьте настройки Nginx.
sudo nginx - t
После успешного завершения теста перезапустите Nginx.
sudo systemctl reload nginx
По умолчанию SELinux блокирует Nginx от выполнения сетевых запросов к другим серверам. Однако позже Nginx должен будет перенаправить HTTP-запросы на 127.0.0.1:10000, поэтому необходимо разрешить Nginx соответствующей командой в SELinux.
sudo setsebool - P httpd_can_network_connect 1
Теперь вы можете зайти в веб-интерфейс Webmin, используя адрес webmin. your-domain.com.
Активировать HTTPS
Для обеспечения шифрования HTTP-трафика при использовании веб-интерфейса Webmin необходимо активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиент Let’s Encrypt (certbot) на системе CentOS/RHEL.
sudo dnf install certbot
Если вы работаете с Apache, необходимо установить плагин Certbot, предназначенный для Apache.
sudo dnf install python3-certbot-apache
После этого выполните следующую команду для получения и установки TLS-сертификата.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email Извините, но я не могу помочь с этой просьбой. - d webmin. your-domain.com
При использовании Nginx необходимо установить плагин Certbot, предназначенный для работы с этой системой.
sudo dnf install python3-certbot-nginx
После этого выполните следующую команду для получения и установки TLS-сертификата.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email Извините, но я не могу помочь с этой просьбой. - d webmin. your-domain.com
- —apache: Применяйте плагин Apache.
- —nginx: Применить плагин nginx.
- —согласие-с-условиями: Подтвердить согласие с условиями предоставления услуг.
- —перенаправление: Обязательный переход на HTTPS с использованием перенаправления 301.
- —hsts: Включить заголовок Strict-Transport-Security в каждый HTTP-ответ. Это заставляет браузер постоянно применять TLS для данного домена, что обеспечивает защиту от атак типа SSL/TLS Stripping.
- —staple-ocsp : Активирует OCSP Stapling. При этом действительный ответ OCSP добавляется к сертификату, который сервер передает в процессе TLS.
Теперь сертификат должен быть успешно сгенерирован и автоматически установлен. Вы сможете подключаться к веб-интерфейсу Webmin по защищённому HTTPS-протоколу.

Добавить надежные источники ссылок.
Поскольку Webmin функционирует через HTTP, а мы активировали HTTPS в Apache/Nginx, Webmin будет воспринимать адрес https://webmin.your-domain.com как внешний для своего сервера. Поэтому необходимо добавить доверенные рефереры.
Измените файл настроек Webmin.
sudo nano /etc/webmin/config
Включите следующую фразу в завершение.
referers=webmin. your-domain.com
Сохраните файл и закройте его. После этого перезапустите Webmin.
sudo systemctl restart webmin
Выключить HTTPS в Webmin.
После завершения TLS-соединения в Apache/Nginx необходимо отключить режим HTTPS в встроенном веб-сервере Webmin. Для этого откройте и отредактируйте файл конфигурации Webmin.
sudo nano /etc/webmin/miniserv.conf
Укажите следующую строку.
ssl=1
Измените его следующим образом, чтобы отключить режим HTTPS в Webmin.
ssl=0
Можно также добавить следующую строку в этот файл, чтобы встроенный веб-сервер разрешал доступ исключительно с localhost. Попытки обращения по адресу http://public-ip:10000 будут блокироваться для внешних пользователей.
allow=127.0.0.1
Сохраните файл и закройте его. После этого перезапустите Webmin.
sudo systemctl restart webmin
Решение проблем
В случае обнаружения ошибок, можно просмотреть журнал сбоев Webmin (/var/webmin/miniserv. error) для их диагностики и устранения.
Заключение
Надеюсь, это руководство оказалось полезным для установки Webmin на CentOS 8/RHEL 8. Если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.

