作者选择技术教育基金作为Write for DOnations计划的一部分,获得100美元的捐赠。
介绍
Webmin是任何Linux机器的基于Web的控制面板,可让您通过现代的基于Web的界面管理您的服务器。 使用Webmin,您可以随时更改常用软件包的设置,包括Web服务器和数据库,以及管理用户,组和软件包。
在本教程中,您将在您的服务器上安装并配置Webmin,并使用Let's Encrypt和Apache来确保使用有效证书访问界面。 然后,您将使用Webmin添加新的用户帐户,并从仪表板更新服务器上的所有软件包。
先决条件
要完成本教程,您需要:
- 遵循Ubuntu 18.04初始服务器设置指南设置的一台Ubuntu 18.04服务器,包括sudo非root用户和防火墙。
- 通过以下方法安装Apache,在Ubuntu 18.04上安装Linux,Apache,MySQL,PHP(LAMP) 。 我们将使用Apache执行Let's Encrypt的域验证,并充当Webmin的代理。 遵循本教程,确保您通过防火墙配置了对Apache的访问。
- 一个完全合格的域名(FQDN),DNS A记录指向您服务器的IP地址。 要配置此功能,请按照教程如何使用DigitalOcean设置主机名 。
- Certbot按照如何使用Ubuntu 18.04加密Apache的第1步安装。 您将使用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
安装完成后,您将看到以下输出:
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保护Webmin并让我们加密
要访问Webmin,您必须指定端口10000
并确保防火墙上的端口处于打开状态。 这很不方便,特别是如果您使用webmin. your_domain
FQDN访问Webmin webmin. your_domain
webmin. your_domain
我们将使用一个Apache虚拟主机来代理对在端口10000
上运行的Webmin服务器的请求。 然后,我们将使用Let's Encrypt的TLS / SSL证书来保护虚拟主机。
首先,在Apache的配置目录中创建一个新的Apache虚拟主机文件:
sudo nano /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
找到以下行:
...
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
您将看到以下输出:
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
上允许传入网络服务器的流量,如先决条件教程如何在Ubuntu 18.04上安装Linux,Apache,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应用程序。 要添加用户,请单击创建位于用户表顶部的新用户。 这将显示“ 创建用户”屏幕,您可以在其中提供用户名,密码,组和其他选项。 按照以下说明创建用户:
- 用
deploy
填写用户名 。 - 为用户标识选择自动 。
- 使用
Deployment user
等描述性名称填写真实姓名 。 - 对于主目录 ,选择自动 。
- 对于Shell ,从下拉列表中选择/ bin / bash 。
- 对于密码 ,请选择普通密码并输入您选择的密码。
- 对于主群组 ,请选择与用户名称相同的新群组 。
- 对于辅助组 ,从所有组列表中选择sudo ,然后按- >按钮将组添加到组列表中。
- 按创建来创建这个新用户。
创建用户时,您可以设置密码过期选项,用户的shell,或者它们是否被允许设置主目录。
接下来,让我们看看如何安装更新到我们的系统。
更新软件包
Webmin允许你通过它的用户界面更新你的所有软件包。 要更新所有软件包,请单击仪表板链接,然后找到软件包更新字段。 如果有更新可用,您将看到一个链接,指出可用更新的数量,如下图所示:
单击此链接,然后按更新选定的软件包以开始更新。 您可能会被要求重新启动服务器,您也可以通过Webmin界面执行此操作。
结论
您现在拥有Webmin的安全工作实例,并且您已使用该界面创建用户并更新软件包。 Webmin使您可以访问许多通常需要通过控制台访问的内容,并以直观的方式组织它们。 例如,如果您安装了Apache,则可以在Servers下找到它的配置选项卡,然后在Apache中找到它。
进一步探索界面,或查看官方Webmin wiki ,了解更多关于使用Webmin管理系统的信息。