介绍
当您首次创建新的Debian 11服务器时,作为基本设置的一部分,您应该进行一些配置步骤。这将增加服务器的安全性和可用性,并为后续操作奠定坚实的基础。
在本教程中,我们将学习如何以root用户身份登录到服务器,创建具有管理员特权的新用户,并设置基本防火墙。
第1步 — 以Root身份登录
要登录到您的服务器,您需要知道您的服务器的公共IP地址。您还需要密码或者如果您安装了用于身份验证的SSH密钥,则需要root用户帐户的私钥。如果您尚未登录到服务器,可能需要参考我们的指南如何使用SSH连接到您的Droplet,该指南详细介绍了此过程。
如果您尚未连接到服务器,请使用以下命令以root用户身份登录(用您的服务器的公共IP地址替换命令中的突出显示部分):
如果出现关于主机真实性的警告,请接受。如果您正在使用密码验证,请提供您的root密码以登录。如果您正在使用受密码保护的SSH密钥,可能会在每个会话的第一次使用密钥时提示您输入密码。如果这是您首次使用密码登录服务器,您可能还会被提示更改root密码。
关于 Root
root用户是在Linux环境中具有非常广泛特权的管理员用户。由于root账户的特权增加,强烈建议您不要经常使用它。这是因为root账户所具有的部分权力包括即使是意外地进行非常具有破坏性的更改的能力。
下一步是设置一个具有日常工作范围限制的替代用户账户。稍后,我们将解释如何在需要时获得增加的特权。
步骤 2 — 创建新用户
一旦您以root身份登录,我们就准备好添加新的用户账户,从现在开始我们将使用该账户登录。
这个例子创建一个名为sammy的新用户,但你可以用你喜欢的用户名替换它:
接下来会问你一些问题,首先是账户密码。
输入一个强密码,并且可以选择填写任何你想要的额外信息。这不是必须的,你可以在任何你想跳过的字段中只按下ENTER
。
接下来,我们将为这个新用户设置管理员权限。
第三步 —— 授予管理员权限
现在,我们已经创建了一个具有常规账户权限的新用户。然而,有时我们可能需要使用它来执行管理任务。
为了避免必须注销我们的普通用户,然后以root账户重新登录,我们可以设置我们普通账户的超级用户或root权限。这将允许我们的普通用户在命令前加上sudo
单词以具有管理员权限运行命令。
要为我们的新用户添加这些权限,我们需要将新用户添加到sudo组中。在Debian 11上,默认情况下,属于sudo组的用户被允许使用sudo
命令。
作为root,运行此命令将你的新用户添加到sudo组(将突出显示的单词替换为你的新用户):
现在,当以常规用户身份登录时,您可以在命令前键入sudo
以使用超级用户权限运行命令。
第 4 步 — 设置基本防火墙
Debian 服务器可以使用防火墙确保仅允许对特定服务的特定连接。在本指南中,我们将安装并使用 UFW 防火墙来帮助设置防火墙策略并管理异常。
我们可以使用apt
软件包管理器来安装 UFW。更新本地索引以检索有关可用软件包的最新信息,然后通过键入以下命令安装 UFW 防火墙软件:
注意:如果您的服务器运行在 DigitalOcean 上,您可以选择使用DigitalOcean 云防火墙而不是 UFW 防火墙。我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。
防火墙配置文件允许 UFW 管理已安装应用程序的命名防火墙规则集。一些常见软件的配置文件默认与 UFW 捆绑在一起,安装过程中软件包可以向 UFW 注册附加配置文件。OpenSSH,允许我们连接到服务器的服务,有一个我们可以使用的防火墙配置文件。
您可以通过键入以下命令列出所有可用的应用程序配置文件:
OutputAvailable applications:
. . .
OpenSSH
. . .
我们需要确保防火墙允许SSH连接,以便我们下次可以登录。我们可以通过输入以下命令来允许这些连接:
之后,我们可以通过输入以下命令来启用防火墙:
输入y
并按ENTER
继续。您可以通过输入以下命令来查看SSH连接仍然被允许:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
由于防火墙当前正在阻止除SSH之外的所有连接,如果您安装和配置其他服务,则需要调整防火墙设置以允许可接受的流量。您可以在我们的UFW基础指南中学习一些常见的UFW操作。
第5步 — 为您的常规用户启用外部访问
现在我们有了一个供日常使用的常规用户,我们需要确保可以直接通过SSH登录到该账户。
注意:在验证您可以使用新用户登录并使用sudo
之前,我们建议保持以root用户登录。这样,如果出现问题,您可以作为root进行故障排除并进行任何必要的更改。如果您正在使用DigitalOcean Droplet并且遇到root SSH连接问题,您也可以通过DigitalOcean控制台登录到Droplet。
配置新用户的SSH访问权限的过程取决于您的服务器root帐户是使用密码还是SSH密钥进行身份验证。
如果Root帐户使用密码身份验证
如果您使用密码登录到您的root帐户,则SSH已启用密码身份验证。您可以通过打开新的终端会话并使用新用户名进行SSH登录:
输入您的常规用户密码后,您将登录。请记住,如果您需要以管理员权限运行命令,请像这样在命令之前输入sudo
:
每次会话第一次使用sudo
时(以及之后的某些时候),系统将提示您输入常规用户密码。
为了增强服务器的安全性,我们强烈建议设置SSH密钥而不是使用密码认证。按照我们的指南 在Debian 11上设置SSH密钥 来学习如何配置基于密钥的认证。
如果根账户使用SSH密钥认证
如果您使用SSH密钥登录您的 root 账户,则SSH的密码认证已 禁用。您需要将本地公钥的副本添加到新用户的 ~/.ssh/authorized_keys
文件中才能成功登录。
由于您的公钥已经在服务器上的 root 账户的 ~/.ssh/authorized_keys
文件中,我们可以使用 cp
命令将该文件和目录结构复制到我们现有会话中的新用户账户。然后,我们可以使用 chown
命令调整文件的所有权。
确保更改下面命令中突出显示的部分以匹配您的常规用户名:
cp -r
命令将整个目录复制到新用户的主目录,并且 chown -R
命令将该目录(以及其中的所有内容)的所有者更改为指定的 用户名:组名
(Debian 默认创建与您用户名相同的组)。
现在,打开一个新的终端会话,并通过 SSH 使用您的新用户名登录:
您应该已经以新用户帐户登录,无需使用密码。请记住,如果您需要以管理员权限运行命令,请在命令前输入 sudo
,如下所示:
在每个会话的首次使用 sudo
时(以及之后的定期使用),系统将提示您输入常规用户密码。
接下来怎么办?
此时,您的服务器已经有了一个坚实的基础。您现在可以在服务器上安装所需的任何软件。
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-11