使用 Debian 11 进行初始服务器设置

介绍

当您首次创建一个新的 Debian 11 服务器时,有几个配置步骤,您应该提前采取作为基本设置的一部分,这将增加您的服务器的安全性和可用性,并为后续操作提供坚实的基础。

在本教程中,我们将学习如何作为 root用户登录我们的服务器,创建具有管理权限的新用户,并设置基本的防火墙。

步骤 1 - 登录作为根

要登录您的服务器,您需要知道您的服务器的公共IP地址**.您还需要密码或,如果您安装了SSH密钥进行身份验证,则需要对您的用户帐户的私钥 root. 如果您尚未登录到您的服务器,您可能需要遵循我们关于如何通过SSH连接到您的Droplet(https://www.digitalocean.com/docs/droplets/how-to/connect-with-ssh/)的指南,该指南详细介绍了这个过程。

如果您尚未连接到您的服务器,请继续使用以下命令作为 root 用户登录(将命令的突出部分替换为服务器的公共 IP 地址):

1[environment local]
2ssh root@your_server_ip

如果您正在使用密码身份验证,请提供您的 root密码登录. 如果您正在使用一个受密码保护的 SSH 密钥,您可能会被要求在每次使用密钥时首次输入密码。

关于根

root 用户是 Linux 环境中具有非常广泛的权限的管理用户.由于 root 帐户的权限增加,您被 discouraged 不定期使用它。

下一步是创建一个替代的用户帐户,对日常工作影响范围减少,随后我们将解释如何在您需要时获得增加的特权。

步骤二:创建新用户

一旦您登录为 root,我们准备添加新的用户帐户,我们将从现在开始使用它来登录。

此示例创建一个名为 sammy的新用户,但您应该用您喜欢的用户名更换它:

1adduser sammy

您将被问到几个问题,从帐户密码开始。

输入一个强大的密码,并可选地填写您想要的任何额外信息. 这不需要,您可以在任何您想要跳过的字段中点击ENTER

接下来,我们将设置这个新的用户与管理员权限。

第三步:授予行政特权

现在,我们已经创建了一个新的用户帐户,具有常规帐户权限,但有时我们可能需要执行管理任务。

为了避免需要退出我们的正常用户并作为 root帐户再次登录,我们可以为我们的正常帐户设置被称为 superuserroot 特权。

要将这些权限添加到我们的新用户中,我们需要将新用户添加到 sudo组中。

作为 root,运行此命令,将您的新用户添加到 sudo组(以您的新用户代替突出的单词):

1usermod -aG sudo sammy

现在,当您作为常规用户登录时,您可以在命令前键入sudo,以使用超级用户权限运行命令。

步骤4:设置基本防火墙

Debian 服务器可以使用防火墙来确保只允许某些特定服务的连接. 在本指南中,我们将安装和使用 UFW 防火墙来帮助设置防火墙策略和管理例外。

我们可以使用apt包管理器来安装 UFW. 更新本地索引以获取有关可用的包的最新信息,然后通过键入:

1apt update
2apt install ufw

<$>[info] 注: 如果您的服务器运行在DigitalOcean上,您可以选择使用DigitalOcean Cloud Firewalls而不是UFW防火墙。

防火墙配置文件允许 UFW 管理已安装的应用程序的命名防火墙规则集. 某些常见软件的配置文件默认情况下与 UFW 结合,并可在安装过程中与 UFW 注册额外的配置文件。

您可以通过键入列出所有可用的应用程序配置文件:

1ufw app list
1[secondary_label Output]
2Available applications:
3 . . .
4 OpenSSH
5 . . .

我们需要确保防火墙允许SSH连接,这样我们可以下次登录,我们可以通过键入允许这些连接:

1ufw allow OpenSSH

之后,我们可以通过键入启用防火墙:

1ufw enable

输入y并按ENTER来继续,您可以看到通过键入:

1ufw status
1[secondary_label Output]
2Status: active
3
4To Action From
5--             ------   ----
6OpenSSH ALLOW Anywhere
7OpenSSH (v6)     ALLOW Anywhere (v6)

由于防火墙目前阻止除了SSH之外的所有连接,如果您安装和配置其他服务,则需要调整防火墙设置以允许可接受的流量。

步骤 5 – 允许外部访问您的常规用户

现在我们有一个日常使用的常规用户,我们需要确保我们可以直接 SSH 到帐户。

<$>[info] ** 注意:** 在验证你可以登录并使用你的新用户的sudo之前,我们建议保持登录为 root. 这样,如果你有问题,你可以解决问题,并做任何必要的更改作为 root. 如果你正在使用DigitalOcean Droplet并遇到问题与你的 root SSH连接,你也可以使用DigitalOcean Console登录到Droplet。

配置新用户 SSH 访问的过程取决于您的服务器的 root 帐户是否使用密码或 SSH 密钥进行身份验证。

如果 root 帐户使用密码身份验证

如果您已登录您的 root帐户 使用密码,那么 SSH 将启用密码身份验证。

1[environment local]
2ssh sammy@your_server_ip

输入您的常规用户密码后,您将被登录. 请记住,如果您需要运行具有管理权限的命令,请在此之前输入sudo:

1sudo command_to_run

您将被要求在每次使用sudo时首次使用您的常规用户密码(随后定期使用)。

为了提高您的服务器的安全性,我们强烈建议设置 SSH 密钥,而不是使用密码身份验证**. 遵循我们在 Debian 11 上设置 SSH 密钥(https://andsky.com/tech/tutorials/how-to-set-up-ssh-keys-on-debian-11)的指南,了解如何配置基于密钥的身份验证。

如果 root 帐户使用 SSH 密钥身份验证

如果您已登录您的 root 帐户 _ using SSH keys_,那么对 SSH 的密码身份验证是 disabled. 您需要将本地公共密钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件才能成功登录。

由于您的公共密钥已经在服务器上的 root帐户的 ~/.ssh/authorized_keys 文件中,我们可以使用 cp 命令将该文件和目录结构复制到我们现有的会话中的新用户帐户中。

请确保更改下面的命令中的突出部分,以匹配您的常规用户名:

1cp -r ~/.ssh /home/sammy
2chown -R sammy:sammy /home/sammy/.ssh

cp -r命令将整个目录复制到新用户的主目录,而chown -R命令将该目录的所有者(以及其中的所有物)更改为指定的username:groupname(Debian 会创建与您的用户名相同的组)。

现在,打开一个新的终端会话并通过SSH登录你的新用户名:

1[environment local]
2ssh sammy@your_server_ip

您应该在未使用密码的情况下登录到新用户帐户. 请记住,如果您需要运行具有管理权限的命令,请在此之前键入sudo:

1sudo command_to_run

您将被要求在每次使用sudo时首次使用您的常规用户密码(随后定期使用)。

从这里到哪里去?

在这一点上,您对您的服务器有一个坚实的基础,您现在可以在您的服务器上安装所需的任何软件。

Published At
Categories with 技术
comments powered by Disqus