如何在 Debian 10 上安装 Cockpit

作者选择了 自由和开源基金作为 写给捐款计划的一部分接受捐款。

介绍

Cockpit是一个服务器管理仪表板,允许您实时查看服务器的状态。它提供了关于CPU负载,文件系统统计,流程和其他信息的信息。Cockpit的优点之一是,当您未登录控制面板时,它不会消耗任何服务器资源 - 该服务只在您浏览控制面板时开始。

您可以使用 Cockpit 执行服务器管理任务,例如管理用户和解决网络问题. 您也可以从计算机或手机上的浏览器访问终端。 Cockpit 使用sudo来登录和管理系统的用户,以便升级特权。

在本教程中,您将在 Debian 10 服务器上部署一个安全的 Cockpit 服务器管理仪表板。

前提条件

在您开始本指南之前,您将需要以下内容:

  • 一个 Debian 10 服务器配置使用 Debian 10 初始服务器设置指南. 您应该根据指南所述配置和启用 UFW 防火墙。
  • 指向您的服务器的域名,您将使用它来访问 Cockpit。 如果您需要有关指向域名的信息,请参阅 Domains and DNS指南。 在本教程中,我们将使用示例域名 cockpit.your_domain

登录到您的服务器作为 sudo 启用的非根服务器开始。

步骤 1 - 安装驾驶舱

在此步骤中,您将安装Cockpit并打开Cockpit在您的防火墙中使用的端口。

首先,使用apt进行系统更新,以确保您的服务器具有最新的包,并在驾驶舱安装过程中避免任何错误:

1sudo apt update
2sudo apt upgrade

接下来,安装驾驶舱:

1sudo apt install cockpit

现在,用 mkdir 命令创建一个目录:

1sudo mkdir -p /usr/lib/x86_64-linux-gnu/udisks2/modules

您使用-p选项,以便mkdir以一个召唤来创建多个目录级别。

您创建了此目录,以阻止在您的驾驶舱实例中显示无害但引人注目的警告. 此警告会显示,因为 udisks2 实用程序无法找到 /usr/lib/x86_64-linux-gnu/udisks2/modules 目录,除非安装了额外的 udisks2,否则默认情况下不会创建。

最后,打开驾驶舱的访问端口9090和端口80,您将在下一步获得SSL证书:

1sudo ufw allow 9090
2sudo ufw allow 80

您现在已经安装了 Cockpit 并打开了已签名的 SSL 证书的端口,您将在下一步获得该证书。

第2步:获得SSL证书

在此步骤中,您将获得由 Let's Encrypt使用 Certbot实用程序发行的 SSL 证书。

Certbot以Ubuntu snap套件的形式分发,因此snap实用程序默认不安装在Debian 10上,因此您必须将其安装为snapd套件的一部分:

1sudo apt install snapd

接下来,运行以下两个命令,以确保您正在运行snap的最新版本:

1sudo snap install core
2sudo snap refresh core

现在,用以下命令安装Certbot snap:

1sudo snap install --classic certbot

这里的 - 经典选项安装了Certbot snap 在经典模式 - 这减少了限制,并允许访问更多的系统资源,这对于Certbot的正确运作是必要的。

接下来,从 /usr/bin/certbot 创建一个符号链接,以指向即时安装的 Certbot 二进制在 /snap/bin/certbot 上的 ln实用程序:

1sudo ln -s /snap/bin/certbot /usr/bin/certbot

你需要创建这个符号链接,因为在Linux上,并非所有实用程序都知道他们应该搜索/snap/bin/的程序文件;而/usr/bin/是用户安装的程序的标准位置。

<$>[注] 注: 一个符号链接在Linux上工作,就像在Windows上工作一样,它是从位置到文件的指针。

现在你已经安装了Certbot实用程序,你将使用它来注册和下载SSL证书,使用以下命令:

1sudo certbot certonly --standalone --agree-tos --email your_email -d cockpit.your_domain

你已经使用了以下选项:

  • certonly: 注册并下载 SSL 证书而不对系统进行其他更改。
  • --standalone: 使用 Certbot 内置的 Web 服务器来注册该证书。
  • --agree-tos: 自动同意服务条款(ToS)。
  • --email your_email: 使用您的电子邮件地址来注册该证书。

当您运行此命令时,Certbot 会询问您是否希望与电子边境基金会(https://www.eff.org/)(Certbot 实用程序的开发者)共享电子邮件地址,以便发送非必需的电子邮件。

当 Certbot 实用程序完成注册时,它将将您的证书文件保存到 /etc/letsencrypt/live/cockpit.your_domain

Cockpit 对使用 SSL 证书有几个要求:

  1. 证书文件必须包含在同一文件中的证书和私钥。 2 此证书和密钥文件必须位于 /etc/cockpit/ws-certs.d 目录,并在 .cert. 中结束。

因此,您需要使用您注册的SSL证书创建证书和密钥文件,以便在Cockpit中使用它。

首先,使用以下命令创建组合证书和密钥文件:

1sudo bash -c "cat /etc/letsencrypt/live/cockpit.your_domain/fullchain.pem /etc/letsencrypt/live/cockpit.your_domain/privkey.pem >/etc/cockpit/ws-certs.d/cockpit.your_domain.cert"

你在这里使用sudo bash -c,因为没有它,命令将失败,这是因为>重定向发生在与具有sudo权限的壳中。

cat命令将证书和密钥文件的内容打印到标准输出中,然后将此内容重定向到一个新的文件中。

接下来,您将创建Certbot运行的更新后脚本,该脚本将与更新后的证书重新创建证书和密钥文件,并重新启动驾驶舱服务,以便它开始使用它。

/etc/cockpit/certificate-renewal.sh 打开脚本,使用文本编辑器:

1sudo nano /etc/cockpit/certificate-renewal.sh

将以下代码添加到此文件中:

1[label certificate-renewal.sh]
2#!/usr/bin/env bash
3
4echo "Recreating Cockpit SSL Certificate"
5cat /etc/letsencrypt/live/cockpit.your_domain/fullchain.pem /etc/letsencrypt/live/cockpit.your_domain/privkey.pem > /etc/cockpit/ws-certs.d/cockpit.your_domain.cert
6
7echo "Restarting Cockpit"
8systemctl restart cockpit.socket

你已经明确了以下几点:

  • # !/usr/bin/env bash: 這是 shebang,並告訴Linux使用哪個程式執行脚本. 在這種情況下,你規定了 GNU Bash shell.
  • echo:這項命令打印了下列訊息。當你測試證書更新時,你會收到此訊息。
  • cat:這是你在教程中先前執行的同一命令來創建認證和鍵檔案。
  • systemctl 重新啟動 cockpit.socket: 這次重新啟動Cockpit以便使用新證書。

通过使用 chmod更改其权限来执行此证书:

1sudo chmod 755 /etc/cockpit/certificate-renewal.sh

如果您对 Linux 文件权限不确定,请参阅 An Introduction to Linux Permissions以获取更多信息。

接下来,您将配置 Certbot 运行此脚本,当它更新 SSL 证书时,将一个行添加到 /etc/letsencrypt/renewal/cockpit.your_domain.conf

使用文本编辑器打开此文件:

1sudo nano /etc/letsencrypt/renewal/cockpit.your_domain.conf

[renewalparams]部分的末尾添加下列行:

1[label cockpit.your_domain.conf]
2post_hook = /etc/cockpit/certificate-renewal.sh

接下来,测试新配置是否使用以下命令:

1sudo certbot renew --dry-run

选项告诉Certbot进行证书更新,但不会对您的证书进行任何更改,您将在输出底部收到以下行:

1[secondary_label Output]
2Running post-hook command: /etc/cockpit/certificate-renewal.sh
3Output from post-hook command certificate-renewal.sh:
4Recreating Cockpit SSL Certificate
5Restarting Cockpit

这会告诉你更新脚本过程在SSL证书更新发生时是正确的。

最后,重新启动驾驶舱来加载SSL证书:

1sudo systemctl restart cockpit.socket

您现在已经完全配置了 Cockpit 实例,您已经准备好登录。

步骤 3 – 访问驾驶舱

您已配置 Cockpit 接口以便在端口 9090 上聆听,因此您需要在您输入浏览器的 URL 末尾指定该端口。

1[secondary_label Cockpit Login URL]
2https://cockpit.your_domain:9090

Cockpit 不会保留单独的用户列表,而是使用系统的用户. 这些是您用adduser命令创建的用户。

您可以与您在初始设置指南中创建的用户登录,或按照相同的程序创建新的用户。

登录表格有一个标记为 重复使用我的密码特权任务 的检查框。

Image showing the Cockpit log in fields

如果您检查此选项,您将能够在驾驶舱内运行需要sudo的命令,只要用户有sudo访问权限。

驾驶舱接口有三个主要区域. 第一是实时系统信息页面. 通过找到左侧导航面板并点击计时图标来浏览此页面。

Image showing the meter icon in the left-hand navigation panel

点击此处将带您到实时图表,显示您的服务器的CPU、内存、网络和磁盘I/O。

下一个部分是详细信息和管理部分,请点击左侧导航面板中的服务器图标来导航。

Image highlighting the detailed administration icon

这个部分的驾驶舱提供有关您的系统的许多方面的详细信息,如日志和系统文件. 您还可以管理您的服务器的一些部分,如添加和删除用户和管理系统的存储。

要编辑用户的驾驶舱设置,请点击用户图标在界面顶部,然后选择 帐户设置 . 在这里,您可以更改界面语言,密码和电子邮件地址。

Image showing the account setting panel

您现在已经从您的浏览器访问了您的 Cockpit 实例。

结论

在本教程中,您安装了Cockpit,并通过您的域的SSL证书来保护您的连接,现在您可以使用您的浏览器查看实时资源使用,管理和访问您的服务器从命令提示。

您可以阅读更多关于使用 官方文档扩展您的驾驶员实例的信息。

Published At
Categories with 技术
comments powered by Disqus