如何在Ubuntu18.04上安装Webmin
作为 Write for DOnations 计划的一部分,作者选择了 Tech Education Fund 来接受捐赠。
###介绍
Webmin 是一个基于 Web 的控制面板,适用于任何 Linux 机器,可让您通过基于 Web 的现代界面管理您的服务器。 使用 Webmin,您可以即时更改常用软件包的设置,包括 Web 服务器和数据库,以及管理用户、组和软件包。
在本教程中,您将在服务器上安装和配置 Webmin,并使用 Let's Encrypt 和 Apache 使用有效证书保护对界面的访问。 然后,您将使用 Webmin 添加新用户帐户,并从仪表板更新服务器上的所有包。
先决条件
要完成本教程,您需要:
- 按照Ubuntu 18.04初始服务器设置指南设置一台Ubuntu 18.04服务器,包括sudo非root用户和防火墙。
- 按照 How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 18.04 安装 Apache。 我们将使用 Apache 执行 Let's Encrypt 的域验证并充当 Webmin 的代理。 遵循本教程时,请确保通过防火墙配置对 Apache 的访问。
- 完全限定域名 (FQDN),带有指向服务器 IP 地址的 DNS A 记录。 要配置它,请按照教程 如何使用 DigitalOcean 设置主机名。
- 按照 How To Secure Apache with Let's Encrypt on Ubuntu 18.04 的步骤 1 安装 Certbot。 您将使用 Certbot 为 Webmin 生成 TLS/SSL 证书。
第 1 步 — 安装 Webmin
首先,我们需要添加 Webmin 存储库,以便我们可以使用包管理器轻松安装和更新 Webmin。 我们通过将存储库添加到 /etc/apt/sources.list
文件来做到这一点。
在编辑器中打开文件:
sudo nano /etc/apt/sources.list
然后将此行添加到文件底部以添加新存储库:
/etc/apt/sources.list
. . . deb http://download.webmin.com/download/repository sarge contrib
保存文件并退出编辑器。
接下来,添加 Webmin PGP 密钥,以便您的系统信任新的存储库:
wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc
接下来,更新软件包列表以包含 Webmin 存储库:
sudo apt update
然后安装 Webmin:
sudo apt install webmin
安装完成后,您将看到以下输出:
OutputWebmin install complete. You can now login to https://your_server_ip:10000 as root with your root password, or as any user who can use `sudo`.
现在,让我们通过将 Webmin 放在 Apache Web 服务器后面并添加有效的 TLS/SSL 证书来保护对 Webmin 的访问。
第 2 步 — 使用 Apache 和 Let's Encrypt 保护 Webmin
要访问 Webmin,您必须指定端口 10000
并确保该端口在防火墙上打开。 这很不方便,特别是如果您使用 webmin.your_domain
之类的 FQDN 访问 Webmin 我们将使用 Apache 虚拟主机将请求代理到在端口 10000
上运行的 Webmin 服务器。 然后,我们将使用 Let's Encrypt 的 TLS/SSL 证书保护虚拟主机。
首先,在 Apache 的配置目录下新建一个 Apache 虚拟主机文件:
sudo nano /etc/apache2/sites-available/your_domain.conf
将以下内容添加到文件中,将电子邮件地址和域替换为您自己的:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80> ServerAdmin your_email ServerName your_domain ProxyPass / http://localhost:10000/ ProxyPassReverse / http://localhost:10000/ </VirtualHost>
此配置告诉 Apache 将请求传递给 Webmin 服务器 http://localhost:10000
。 它还确保从 Webmin 生成的内部链接也将通过 Apache。
保存文件并退出编辑器。
接下来,我们需要告诉 Webmin 停止使用 TLS/SSL,因为 Apache 将为我们提供这一点。
在编辑器中打开文件 /etc/webmin/miniserv.conf
:
sudo nano /etc/webmin/miniserv.conf
找到以下行:
/etc/webmin/miniserv.conf
... ssl=1 ...
将 1
更改为 0
这将告诉 Webmin 停止使用 SSL。
接下来,我们会将我们的域添加到允许的域列表中,以便 Webmin 了解当我们从我们的域访问面板时,这不是恶意的,例如 跨站点脚本 (XSS) 攻击 。
在编辑器中打开文件 /etc/webmin/config
:
sudo nano /etc/webmin/config
将以下行添加到文件底部,将 your_domain
替换为您的完全限定域名。
/etc/webmin/config
. . . referers=your_domain
保存文件并退出编辑器。
接下来,重新启动 Webmin 以应用配置更改:
sudo systemctl restart webmin
然后启用 Apache 的 proxy_http
模块:
sudo a2enmod proxy_http
您将看到以下输出:
OutputConsidering dependency proxy for proxy_http: Enabling module proxy. Enabling module proxy_http. To activate the new configuration, you need to run: systemctl restart apache2
输出建议您重新启动 Apache,但首先,激活您创建的新 Apache 虚拟主机:
sudo a2ensite your_domain
您将看到以下输出,表明您的站点已启用:
OutputEnabling site your_domain. To activate the new configuration, you need to run: systemctl reload apache2
现在完全重启 Apache 以激活 proxy_http
模块和新的虚拟主机:
sudo systemctl restart apache2
注意:确保您允许在端口 80
和端口 443
上的 Web 服务器传入流量,如先决条件教程 如何安装 Linux、Apache、 Ubuntu 18.04 上的 MySQL、PHP (LAMP) 堆栈。 您可以使用命令 sudo ufw allow in "Apache Full"
执行此操作。
在浏览器中导航到 http://your_domain
,您将看到 Webmin 登录页面出现。
警告: 请勿登录 Webmin,因为我们尚未启用 SSL。 如果您现在登录,您的凭据将以明文形式发送到服务器。
现在让我们配置一个证书,以便在使用 Webmin 时加密您的连接。 为此,我们将使用 Let's Encrypt。
告诉 Certbot 为您的域生成 TLS/SSL 证书并配置 Apache 以将流量重定向到安全站点:
sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive
您将看到以下输出:
OutputSaving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for your_domain Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/your_domain.conf to ssl vhost in /etc/apache2/sites-available/your_domain-le-ssl.conf ------------------------------------------------------------------------------- Congratulations! You have successfully enabled https://your_domain You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=your_domain -------------------------------------------------------------------------------
输出表明证书已安装并且 Apache 配置为将请求从 http://your_domain
重定向到 https://your_domain
。
您现在已经设置了一个安全的 Webmin 工作实例。 让我们看看如何使用它。
第 3 步 – 使用 Webmin
Webmin 的模块可以控制从 BIND DNS 服务器到向系统添加用户这样简单的一切。 让我们看看如何创建新用户,然后探索如何使用 Webmin 更新软件包。
为了登录到 Webmin,导航到 http://your_domain
并使用 root 用户或具有 sudo 权限的用户登录。
管理用户和组
让我们管理服务器上的用户和组。
首先,单击系统选项卡,然后单击用户和组按钮。 您可以在此处添加用户、管理用户或添加或管理组。
让我们创建一个名为 deploy 的新用户,该用户可用于托管 Web 应用程序。 要添加用户,请单击位于 users 表顶部的 创建新用户 。 这将显示 创建用户 屏幕,您可以在其中提供用户名、密码、组和其他选项。 按照以下说明创建用户:
- 用
deploy
填写用户名。 - 为 用户 ID 选择 自动 。
- 在 Real Name 中填写描述性名称,如
Deployment user
。 - 对于主目录,选择自动。
- 对于 Shell,从下拉列表中选择 /bin/bash。
- 对于 Password,选择 Normal Password 并输入您选择的密码。
- 对于主组,选择与用户同名的新组。
- 对于Secondary Group,从All groups列表中选择sudo,然后按->按钮将该组添加到 ]在组列表中。
- 按 Create 创建这个新用户。
创建用户时,您可以设置密码到期、用户的 shell 或是否允许它们使用主目录的选项。
接下来,让我们看看如何为我们的系统安装更新。
更新包
Webmin 允许您通过其用户界面更新所有包。 要更新所有包,请单击 Dashboard 链接,然后找到 Package updates 字段。 如果有可用更新,您将看到一个链接,其中说明了可用更新的数量,如下图所示:
单击此链接,然后按更新选定的包开始更新。 您可能会被要求重新启动服务器,您也可以通过 Webmin 界面执行此操作。
结论
您现在拥有一个安全的 Webmin 工作实例,并且您已使用该界面创建用户和更新包。 Webmin 使您可以访问通常需要通过控制台访问的许多内容,并且它以直观的方式组织它们。 例如,如果您安装了 Apache,您会在 Servers 下找到它的配置选项卡,然后是 Apache。
进一步探索界面,或查看 Official Webmin wiki 以了解有关使用 Webmin 管理系统的更多信息。