使用 Ubuntu 22.04 进行初始服务器设置

介绍

当你第一次创建一个新的 Ubuntu 22.04 服务器时,你应该执行一些重要的配置步骤,作为初始安装的一部分,这些步骤将增加你的服务器的安全性和可用性,并为后续行动提供坚实的基础。

步骤 1 – 登录为 root

要登录您的服务器,您需要知道您的 服务器的公共 IP 地址. 如果您已安装 SSH 密钥进行身份验证,您还需要使用 root 用户帐户的密码或私钥。

如果您目前没有连接到您的服务器,请使用以下命令登录为 root用户。

1[environment local]
2ssh root@your_server_ip

如果您的服务器使用密码身份验证,请提供您的 root密码来登录。如果您使用的是受密码保护的 SSH 密钥,您可能需要在每次使用密钥时首次输入密码。如果这是您首次使用密码登录服务器,您可能还需要更改 root密码。

关于 root

root用户是Linux环境中具有高度特权的管理用户.由于 root帐户的特权增加,您被禁止定期使用它。

下一步是创建一个新的用户帐户以减少日常使用的权限. 之后,我们将向您展示如何在您需要时暂时获得增加的权限。

步骤二:创建新用户

一旦您登录为 root,您将能够添加新的用户帐户,在未来,我们将使用这个新的帐户登录,而不是 root

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

1adduser sammy

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

输入一个强有力的密码,并可选地填写任何额外的信息,如果您愿意,此信息不需要,您可以在任何您想要跳过的字段中按ENTER

第三步:授予行政特权

现在你有一个新的用户帐户,具有常规帐户权限,但有时你需要作为 root 用户执行管理任务。

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

要将这些权限添加到你的新用户,你需要将用户添加到 sudo系统组。在 Ubuntu 22.04,用户是 sudo组的成员被允许使用sudo命令。

作为 root,运行此命令将您的新用户添加到 sudo组(将突出的sammy用户名替换为您的新用户):

1usermod -aG sudo sammy

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

步骤4:设置防火墙

Ubuntu 22.04 服务器可以使用 UFW 防火墙,以确保仅允许连接到某些服务。

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

应用程序可以在安装时与 UFW 注册其配置文件. 这些配置文件允许 UFW 以名义管理这些应用程序. OpenSSH,该服务允许您连接到您的服务器,具有与 UFW 注册的配置文件。

您可以通过键入查看安装的 UFW 配置文件的列表:

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

您需要确保防火墙允许 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)

T防火墙目前正在阻止除SSH之外的所有连接. 如果您安装和配置其他服务,则需要调整防火墙设置以允许新流量进入您的服务器。

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

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

<$>[注] **注:**在验证你可以登录并使用你的新用户的sudo之前,我们建议保持登录为 root. 如果你有连接问题,你可以解决问题,并做任何必要的更改作为 root. 如果你使用DigitalOcean Droplet并遇到问题与你的 root SSH连接,你可以使用恢复控制台(https://docs.digitalocean.com/products/droplets/resources/recovery-console/)。

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

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

如果您已登录您的 root 帐户 使用密码 那么密码验证是 enabled for SSH. 您可以通过打开新终端会话并使用 SSH 与您的新用户名来 SSH 到您的新用户帐户:

1[environment local]
2ssh sammy@your_server_ip

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

1sudo command_to_run

您将在每次使用sudo时(随后定期使用)收到常规用户密码的提示。

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

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

如果您已登录您的 root 帐户 使用 SSH 密钥,那么对 SSH 的密码验证是 disabled. 若要使用 SSH 密钥作为常规用户登录,您必须将本地公共密钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件中。

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

复制具有正确所有权和权限的文件最简单的方法是使用rsync命令. 此命令将复制用户的 root.ssh目录,保留权限,并在一个命令中修改文件所有者。

<$>[注] 注: rsync 命令将以跟踪 slash 结束的源和目的地与没有跟踪 slash 的源和目的地不同。

如果您意外地在命令中添加了追踪缩略,则rsync会将 root帐户的~/.ssh目录的 contents 复制到用户的sudo主目录,而不是复制整个~/.ssh目录结构。

1rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

现在,在本地机器上打开一个新的终端会话,并使用新的用户名使用 SSH:

1[environment local]
2ssh sammy@your_server_ip

请记住,如果您需要运行具有管理权限的命令,请在命令前输入sudo:

1sudo command_to_run

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

从这里到哪里去?

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

如果你想更熟悉 Linux 命令,你可以检查我们的 Linux 命令行 Primer

Published At
Categories with 技术
comments powered by Disqus