如何在 CentOS 8/RHEL 8 服务器上安装 Webmin

[ad_1]

网络管理员 是一个免费的开源控制面板,用于管理 Unix/Linux 服务器。 本教程将向您展示如何在 CentOS 8/RHEL 8 服务器上安装 Webmin。

Webmin 为用户提供基于 Web 的图形用户界面来配置常见的系统任务和设置。 如果您不喜欢使用命令行来管理服务器的想法,那么 Webmin 是一个很好的图形替代方案。 以下是 Webmin 提供的功能列表。

  • BIND DNS 解析器和权威 DNS 服务器
  • 桑巴服务器
  • FTP服务器
  • Postfix SMTP 服务器和 Dovecot IMAP/POP3 服务器。
  • 文件系统备份
  • 配置日志文件轮换。
  • 编辑软件包存储库、安排自动软件更新并通过电子邮件接收更新报告。
  • 管理用户和组
  • 安排 Cron 作业。
  • 配置iptables防火墙
  • 还有很多。

从 Webmin 存储库在 CentOS 8/RHEL 8 上安装 Webmin

Webmin 自 1997 年以来一直存在。在撰写本文时,可用的最新稳定版本是 1.970,该版本于 2021 年 1 月 6 日发布。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

Save 和 close 文件。 要将文件保存在 Nano 文本编辑器中,请按 CTRL+O,然后按 Enter 确认。 到 close 文件,按 CTRL+X . 接下来,我们需要运行以下命令来下载并导入 Webmin PGP 签名密钥,以便包管理器可以验证从 Webmin 存储库下载的包的完整性。

wget https://www.webmin.com/jcameron-key.asc

然后使用以下命令导入它:

sudo rpm --import jcameron-key.asc

现在我们可以更新存储库并安装 Webmin。

sudo dnf update -y

sudo dnf install webmin -y

安装后,Wemin 内置 Web 服务器将自动启动,通过运行下面的 systemctl 命令可以看到:

systemctl status webmin

输出:

install-webmin-on-centos8-rhel8

暗示: 如果上面的命令没有立即退出,可以按 获得终端控制权的关键。

如果它没有运行,您可以使用以下命令启动它:

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

现在您可以通过以下方式访问基于 Web 的控制面板

https://your-server-ip:10000

因为它在 HTTPS 模式下运行并使用自签名 TLS 证书,所以浏览器会告诉您连接不安全。

webmin ssl 模式

但是您知道这是您自己的服务器,因此只需单击 Advanced Firefox 中的选项卡并添加例外。 如果您使用的是谷歌浏览器,您可以点击 Advanced -> Proceed.

现在您将看到 Webmin 登录屏幕。 你需要使用 root 要登录的帐户。

webmin-centos-rhel-安装

如果您不喜欢导航菜单上的默认颜色,可以通过单击 theme configuration 导航菜单底部的图标,

webmin-theme-configuration-centos8-rhel8

然后选择导航菜单选项并设置调色板。 例如,我选择了午夜蓝。

webmin 导航菜单颜色

Save 改变。

设置反向代理

如果您在生产服务器上安装 Webmin,您可能需要设置反向代理 Apache 或者Nginx,这样就可以不用指定端口号(10000)就可以使用域名访问Webmin界面。 这还允许您为 Webmin 获取并安装有效的 Let’s Encrypt TLS 证书。

如果您没有真正的域名,我建议您去 NameCheap 购买一个。 价格低廉,他们终身免费提供whois隐私保护。

Apache

如果您更喜欢使用 Apache web 服务器,然后按照以下说明设置反向代理。

安装 Apache 网络服务器。

sudo dnf install httpd

然后为 Webmin 创建一个虚拟主机文件。

sudo nano /etc/httpd/conf.d/webmin.conf

将以下文本添加到文件中。 代替 webmin.your-domain.com 使用您的实际域名,不要忘记为其创建 DNS A 记录。

<VirtualHost *:80>
    ServerName webmin.your-domain.com

    ProxyPass / https://127.0.0.1:10000/
    ProxyPassReverse / https://127.0.0.1:10000/
</VirtualHost>

Save 和 close 文件。 重新加载 Apache 以使更改生效。

sudo systemctl reload httpd

默认情况下,SELinux 禁止 Apache 向其他服务器发出网络请求,但稍后 Apache 需要将 HTTP 请求转发到 127.0.0.1:10000,所以我们需要告诉 SELinux 允许 Apache 使用以下命令。

sudo setsebool -P httpd_can_network_connect 1

现在你可以通过输入域名远程访问Webmin(webmin.your-domain.com ) 在浏览器地址栏中。

nginx

如果您更喜欢使用 Nginx Web 服务器,请按照以下说明设置反向代理。

在 CentOS/RHEL 上安装 Nginx。

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.com;

       access_log /var/log/nginx/webmin.access;
       error_log /var/log/nginx/webmin.error;

       location / {
              proxy_pass https://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;
        }
}

Save 和 close 文件。 然后测试 Nginx 配置。

sudo nginx -t

如果测试成功,请重新加载 Nginx。

sudo systemctl reload nginx

默认情况下,SELinux 禁止 Nginx 向其他服务器发出网络请求,但后来 Nginx 需要将 HTTP 请求转发到 127.0.0.1:10000,所以我们需要使用以下命令告诉 SELinux 允许 Nginx。

sudo setsebool -P httpd_can_network_connect 1

现在您可以通过以下方式访问 Webmin Web 界面 webmin.your-domain.com.

启用 HTTPS

为了在您访问 Webmin Web 界面时加密 HTTP 流量,我们可以通过安装 Let’s Encrypt 颁发的免费 TLS 证书来启用 HTTPS。 运行以下命令在 CentOS/RHEL 上安装 Let’s Encrypt 客户端(certbot)。

sudo dnf install certbot

如果你使用 Apache,那么你需要安装Certbot Apache 插入。

sudo dnf install python3-certbot-apache

接下来,运行以下命令获取并安装 TLS 证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com

如果你使用 Nginx,那么你需要安装 Certbot Nginx 插件。

sudo dnf install python3-certbot-nginx

接下来,运行以下命令获取并安装 TLS 证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com

在哪里:

  • --apache: 使用 Apache 插入。
  • --nginx: 使用nginx插件。
  • --agree-tos: 同意服务条款。
  • --redirect: 通过 301 重定向强制使用 HTTPS。
  • --hsts:将 Strict-Transport-Security 标头添加到每个 HTTP 响应。 强制浏览器始终对域使用 TLS。 防御 SSL/TLS 剥离。
  • --staple-ocsp:启用 OCSP 装订。 有效的 OCSP 响应被装订到服务器在 TLS 期间提供的证书。

现在应该获得并自动安装证书。 您将能够通过安全的 HTTPS 连接访问 Webmin Web 界面。

webmin-ssl-证书-centos-rhel

添加受信任的推荐人

因为 Webmin 本身运行在 HTTP 模式下,我们启用了 HTTPS Apache/Nginx,Webmin 会认为 https://webmin.your-domain.com 在 Webmin 服务器之外。 所以我们需要添加受信任的referrer。

编辑 Webmin 配置文件。

sudo nano /etc/webmin/config

在最后添加以下行。

referers=webmin.your-domain.com

Save 和 close 文件。 然后重启Webmin。

sudo systemctl restart webmin

在 Webmin 中禁用 HTTPS 模式

现在 TLS 连接终止于 Apache/Nginx,我们需要在Webmin的内置Web服务器中禁用HTTPS模式。 编辑 Webmin 配置文件。

sudo nano /etc/webmin/miniserv.conf

找到以下行。

ssl=1

将其更改为以下内容以禁用 Webmin 中的 HTTPS 模式。

ssl=0

我们还可以在此文件中添加以下行,以便内置 Web 服务器只允许从 localhost 访问。 游客使用 https://public-ip:10000 计划将被禁止。

allow=127.0.0.1

Save 和 close 文件。 然后重启Webmin。

sudo systemctl restart webmin

故障排除

如果您看到任何错误,您可以查看 Webmin 错误日志 (/var/webmin/miniserv.error) 进行故障排除。

包起来

我希望本教程可以帮助您在 CentOS 8/RHEL 8 上安装 Webmin。一如既往,如果您觉得这篇文章有用,请订阅我们的免费时事通讯以获取更多提示和技巧?

[ad_2]

Related Posts