Инструкция по установке Webmin на сервере CentOS 8/RHEL 8

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

Установка 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

Чтобы добавить репозиторий Webmin в CentOS 8 или RHEL 8, выполните следующие действия.

Сохраните и закройте документ. Для сохранения файла в текстовом редакторе 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:

Читайте также:  Backup установленной системы Linux

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, ваш браузер сообщит вам о том, что соединение не является безопасным.

SSL-режим для Webmin

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

На экране появится форма входа в Webmin. Для доступа используйте учетную запись root.

webmin-centos-rhel-install

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

webmin-theme-configuration-centos8-rhel8

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

Цвет навигационного меню Webmin

Запишите изменения.

Конфигурация обратного прокси-сервера

Если вы развернули 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 для него.

Читайте также:  Как удалить пробелы из строки в JavaScript

ServerName webmin. your-domain.comПрямая передача запросов по адресу http://127.0.0.1:10000/ через ProxyPass и обратная передача ответов через ProxyPassReverse.

Сохраните файл и закройте его. Перезапустите 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-сертификата.

Читайте также:  Ошибка #1064 в MySQL

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-ssl-certificate-centos-rhel

Добавить надежные источники ссылок.

Поскольку 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. Если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.