在Ubuntu 18.04上安装Webmin的方法

news/2024/10/8 14:59:09/

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

Webmin 是一个基于 Web 的控制面板,适用于任何 Linux 机器,它可以让你通过现代化的 Web 界面管理服务器。使用 Webmin,你可以即时更改常见软件包的设置,包括 Web 服务器和数据库,以及管理用户、组和软件包。

在本教程中,你将在服务器上安装和配置 Webmin,并使用 Let’s Encrypt 和 Apache 来为界面添加有效证书以确保安全访问。然后,你将使用 Webmin 添加新用户账户,并从仪表板上更新服务器上的所有软件包。

先决条件

要完成本教程,你需要:

  • 一个 Ubuntu 18.04 服务器,按照 Ubuntu 18.04 初始服务器设置指南进行设置,包括一个 sudo 非根用户和防火墙。
  • 通过按照在 Ubuntu 18.04 上安装 Linux、Apache、MySQL、PHP(LAMP)堆栈教程进行安装的 Apache。我们将使用 Apache 来执行 Let’s Encrypt 的域验证,并作为 Webmin 的代理。在按照本教程进行操作时,请确保通过防火墙配置对 Apache 的访问。
  • 一个完全合格的域名(FQDN),并且有一个 DNS A 记录指向你的服务器的 IP 地址。要进行配置,请按照教程 How To Set Up a Host Name with DigitalOcean 进行操作。
  • 通过按照在 Ubuntu 18.04 上使用 Let’s Encrypt 安全 Apache 的第一步进行安装的 Certbot。你将使用 Certbot 为 Webmin 生成 TLS/SSL 证书。

步骤 1 — 安装 Webmin

首先,我们需要添加 Webmin 存储库,以便我们可以使用软件包管理器轻松安装和更新 Webmin。我们通过将存储库添加到 /etc/apt/sources.list 文件中来实现这一点。

在编辑器中打开文件:

sudo nano /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 

安装完成后,将显示以下输出:

Webmin 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`.

现在,让我们通过将其置于 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

将以下内容添加到文件中,用你自己的电子邮件地址和域名替换:

<VirtualHost *:80>ServerAdmin your_emailServerName your_domainProxyPass / http://localhost:10000/ProxyPassReverse / http://localhost:10000/
</VirtualHost>

此配置告诉 Apache 将请求传递到 http://localhost:10000,即 Webmin 服务器。它还确保从 Webmin 生成的内部链接也会通过 Apache。

保存文件并退出编辑器。

接下来,我们需要告诉 Webmin 停止使用 TLS/SSL,因为 Apache 将为我们提供这个功能。

在编辑器中打开文件 /etc/webmin/miniserv.conf

sudo nano /etc/webmin/miniserv.conf

找到以下行:

...
ssl=1
...

1 更改为 0,这将告诉 Webmin 停止使用 SSL。

接下来,我们将把我们的域添加到允许的域列表中,以便 Webmin 理解当我们从我们的域访问面板时,这不是一种恶意行为,比如跨站脚本(XSS)攻击。

在编辑器中打开文件 /etc/webmin/config

sudo nano /etc/webmin/config

在文件底部添加以下行,用你的完全合格的域名替换 your_domain

. . . 
referers=your_domain

保存文件并退出编辑器。

接下来,重新启动 Webmin 以应用配置更改:

sudo systemctl restart webmin

然后启用 Apache 的 proxy_http 模块:

sudo a2enmod proxy_http

你将看到以下输出:

Considering 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

你将看到以下输出,指示你的站点已启用:

Enabling site your_domain.
To activate the new configuration, you need to run:systemctl reload apache2

现在完全重新启动 Apache 以激活 proxy_http 模块和新的虚拟主机:

sudo systemctl restart apache2

在浏览器中导航到 http://your_domain,你将看到 Webmin 登录页面出现。

现在让我们配置一个证书,以便在使用 Webmin 时加密你的连接。为了做到这一点,我们将使用 Let’s Encrypt。

告诉 Certbot 为你的域生成 TLS/SSL 证书,并配置 Apache 重定向流量到安全站点:

sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive

你将看到以下输出:

Saving 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_domainYou should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain
-------------------------------------------------------------------------------

输出表明证书已安装,并且 Apache 配置为将请求从 http://your_domain 重定向到 https://your_domain

现在,你已经设置了一个安全的、可工作的 Webmin 实例。让我们看看如何使用它。

第三步 – 使用 Webmin

Webmin具有可以控制从BIND DNS服务器到简单添加系统用户等所有内容的模块。让我们看看如何创建一个新用户,然后探索如何使用Webmin更新软件包。

要登录Webmin,导航至 http://your_domain 并使用 root 用户或具有sudo特权的用户登录。

管理用户和组

让我们管理服务器上的用户和组。

首先,点击 System 选项卡,然后点击 Users and Groups 按钮。在这里,您可以添加用户、管理用户或添加/管理组。

让我们创建一个名为 deploy 的新用户,该用户可用于托管Web应用程序。要添加用户,请点击位于用户表顶部的 Create a new user。这将显示 Create User 屏幕,您可以在此处提供用户名、密码、组和其他选项。按照以下说明创建用户:

  1. Username 中填写 deploy
  2. 选择 Automatic 作为 User ID
  3. Real Name 中填写描述性名称,如 Deployment user
  4. 对于 Home Directory,选择 Automatic
  5. 对于 Shell,从下拉列表中选择 /bin/bash
  6. 对于 Password,选择 Normal Password 并输入您选择的密码。
  7. 对于 Primary Group,选择 New group with same name as user
  8. 对于 Secondary Group,从 All groups 列表中选择 sudo,然后点击 -> 按钮将该组添加到 in groups 列表中。
  9. 点击 Create 创建此新用户。

创建用户时,您可以设置密码过期、用户的shell或是否允许他们有主目录等选项。

接下来,让我们看看如何安装系统更新。

更新软件包

Webmin允许您通过其用户界面更新所有软件包。要更新所有软件包,点击 Dashboard 链接,然后找到 Package updates 区域。如果有可用的更新,您将看到一个链接,指示可用更新的数量,如下图所示:

!Webmin显示可用的软件包更新数量

点击此链接,然后点击 Update selected packages 开始更新。您可能会被要求重新启动服务器,您也可以通过Webmin界面执行此操作。

结论

您现在拥有一个安全、可工作的Webmin实例,并且已经使用界面创建了一个用户并更新了软件包。Webmin让您可以访问许多通常需要通过控制台访问的内容,并以直观的方式组织它们。例如,如果您安装了Apache,您将在 Servers 下找到其配置选项卡,然后是 Apache

进一步探索界面,或查看官方Webmin wiki,了解更多关于使用Webmin管理系统的信息。


http://www.ppmy.cn/news/1536181.html

相关文章

解锁空间距离计算的多种方式-含前端、空间数据库、后端

目录 前言 一、空间数据库求解 1、PostGIS实现 二、GIS前端组件求解 1、Leaflet.js距离测算 2、Turf.js前端计算 三、后台距离计算生成 1、欧式距离 2、Haversice球面距离 3、GeoTools距离计算 4、Gdal距离生成 5、geodesy距离计算 四、成果与生成对比 1、Java不…

深度学习-20-深入理解基于Streamlit和minimind小模型开发本地聊天工具

文章目录 1 Streamlit开发聊天工具1.1 初始化聊天信息1.2 渲染历史信息1.3 接收用户输入1.4 模拟调用LLM1.5 整体代码2 使用minimind2.1 下载模型2.2 使用模型3 Streamlit与minimind3.1 Streamlit相关知识点3.2 示例代码4 参考附录1 Streamlit开发聊天工具 Streamlit是一个开源…

FPGA时序分析和约束学习笔记(1、FPGA基本原理)

FPGA时序分析和约束学习笔记-&#xff08;1、FPGA基本原理&#xff09; Field现场Programmable可编程Gate门Array阵列 1、FPGA基本资源组成 可编程逻辑功能块&#xff08;logic elements &#xff0c;缩写LE&#xff09; 片内互联线&#xff08;interconnect&#xff0c;缩写…

Nginx的核心架构和设计原理

Nginx 是一个免费的、开源的、高性能 Http 服务器和反向代理。Nginx 的架构设计是为了提供高性能、稳定性和可扩展性。 Nginx 的主要架构组件和工作原理&#xff1a; 1、Master 进程&#xff1a;Nginx 的运行始于一个 master 进程&#xff0c;它负责管理所有的工作进程。mast…

基于少样本(小样本)的图像分割

在少样本学习&#xff08;尤其是少样本分割&#xff09;中&#xff0c;query branch 和 support branch 分别承担不同的任务&#xff0c;目的是通过少量标注的样本来实现对新图像的分割。它们的具体作用如下&#xff1a; Support Branch&#xff08;支持分支&#xff09;&#…

低代码可视化-UniApp二维码可视化-代码生成器

市面上提供了各种各样的二维码组件&#xff0c;做了一简单的uniapp二维码组件&#xff0c;二维码实现依赖davidshimjs/qrcodejs。 组件特点 跨浏览器支持&#xff1a;利用Canvas元素实现二维码的跨浏览器兼容性&#xff0c;兼容微信小程序、h5、app。 无依赖性&#xff1a;QR…

【PyTorch】图像分割

图像分割是什么 Image Segmentation 将图像每一个像素分类 图像分割分类 超像素分割&#xff1a;少量超像素代替大量像素&#xff0c;常用于图像预处理语义分割&#xff1a;逐像素分类&#xff0c;无法区分个体实例分割&#xff1a;对个体目标进行分割全景分割&#xff1a;…

Observability:使用 OpenTelemetry 自动检测 Go 应用程序

作者&#xff1a;来自 Elastic Damien Mathieu 使用 OpenTelemetry 检测 Go 应用程序可以深入了解应用程序的性能、依赖项和错误。我们将向你展示如何使用 Docker 自动检测 Go 应用程序&#xff0c;而无需更改应用程序代码。 在快节奏的软件开发领域&#xff0c;尤其是在云原生…