如何在Ubuntu 18.04上安装Webmin

介绍

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

在本教程中,您将在服务器上安装和配置Webmin,并使用Let的Encrypt和Apache 使用有效证书保护对接口的访问。然后,您将使用Webmin添加新用户帐户,并从仪表板更新服务器上的所有软件包。如果您用的是CentOS系统,可以参考腾讯云社区安装教程

准备

要完成本教程,您需要:

  • 一个Ubuntu 18.04服务器已经设置好一个可以使用sudo命令的非root用户,并且已经开启防火墙。
  • 安装了Apache Web服务器。如果没有安装,可以参考这个在腾讯云CVM上安装Apache
  • 完全限定域名(FQDN),DNS A记录指向服务器的IP地址。
  • 安装Certbot

第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 

安装完成后,您将看到以下输出:

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和SSl保护Webmin

要访问Webmin,您必须指定端口10000并确保端口在防火墙上打开。这很不方便,特别是如果您使用FQDN访问Webmin,我们将使用Apache虚拟主机代理对端口上运行的Webmin服务器的请求。然后,我们将使用Let's Encrypt中的TLS / SSL证书保护虚拟主机。webmin.your_domain``10000

首先,在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将请求传递给http://localhost:10000,这是Webmin服务器的本地地址。它还确保从Webmin生成的内部链接也将通过Apache。

保存并退出。

接下来,我们需要告诉Webmin停止使用TLS / SSL,因为Apache将为我们提供这样的服务。

打开/etc/webmin/miniserv.conf文件:

sudo nano /etc/webmin/miniserv.conf

找到以下行:

/etc/webmin/miniserv.conf

...
ssl=1
...

更改10,这将告诉Webmin停止使用SSL。

接下来,我们将域名添加到允许的域列表中,以便Webmin了解当我们从域中访问面板时,它不是恶意的。

打开/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

您将看到以下输出:

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,因为我们尚未启用SSL。如果您现在登录,您的凭据将以明文形式发送到服务器。

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

告诉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_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有一些模块可以控制,如从绑定DNS服务器到简单到向系统添加用户。让我们看看如何创建一个新用户,然后研究如何使用Webmin更新软件包。

要登录Webmin,请访问http://your_domain,并使用root用户或具有sudo权限的用户并登录。

管理用户和组

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

首先,单击“ 系统”选项卡,然后单击“ 用户和组”按钮。您可以在此处添加用户,管理用户或添加或管理组。

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

  1. 填写用户名deploy
  2. 选择自动用户ID
  3. 使用类似于Deployment user描述性名称填写真实姓名
  4. 对于主目录,请选择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维基以了解有关使用Webmin管理系统的更多信息。


参考文献:《How to Organize Your Teamwork with ONLYOFFICE on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏网络

一步步带你了解前后端分离利器之JWT

一、HTTP的无状态性 HTTP 是无状态协议,它不对之前发送过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的 ...

3175
来自专栏北京马哥教育

批量管理自动化运维100台小规模服务器

---- 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命...

1.9K15
来自专栏FreeBuf

文件上传限制绕过技巧

文件上传漏洞是web安全中经常利用到的一种漏洞形式。一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意...

2982
来自专栏惨绿少年

SSH服务详解

第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Wo...

3380
来自专栏赵俊的Java专栏

搭建一个自己的私有云 + 离线下载站

3.3K4
来自专栏云计算教程系列

如何在Debian 9上安装和保护phpMyAdmin

虽然许多用户需要像MariaDB这样的数据库管理系统的功能,但他们可能不会仅仅通过MariaDB提示与系统进行交互。

2111
来自专栏运维一切

sentry部署整理 原

sentry是python开发的一个应用,使用python uWSG框架运行,所有安装完sentry要记得在nginx的代理上禁用掉/admin路径,不然uws...

1911
来自专栏云计算教程系列

如何在Ubuntu 16.04上为用户目录设置vsftpd

FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多休闲网民希望直接用ht...

2210
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Stunnel加密流量到Redis

Redis是一个开源键值数据存储,使用内存存储模型和可选的磁盘写入来实现持久性。它具有事务,发布/订阅消息传递模式以及其他功能之间的自动故障转移功能。Redis...

2704
来自专栏Java帮帮-微信公众号-技术文章全总结

Centos6.5安装配置nginx

出现如下代码: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is...

1103

扫码关注云+社区

领取腾讯云代金券