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

介绍

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

<$>[info] 当你创建一个 DigitalOcean Droplet,你可以选择一个Ubuntu版本,将被添加到你的新的Droplet自动。

步骤 1 – 登录为 root

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

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

1[environment local]
2ssh root@your_server_ip

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

关于 root

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

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

步骤二:创建新用户

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

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

1adduser sammy

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

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

第三步:授予行政特权

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

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

要将这些特权添加到我们的新用户中,我们需要将用户添加到 sudo组中. 默认情况下,在Ubuntu 20.04中,属于 sudo组的用户可以使用sudo命令。

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

1usermod -aG sudo sammy

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

步骤4:设置基本防火墙

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

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

这些配置文件允许 UFW 以名义管理这些应用程序 OpenSSH,该服务允许我们现在连接到我们的服务器,有一个与 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)

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

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

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

<$>[注] 注: 直到确认你可以登录并使用你的新用户的sudo,我们建议保持登录作为 root. 这样,如果你有问题,你可以解决问题,并做任何必要的更改作为 root. 如果你正在使用DigitalOcean Droplet并遇到问题与你的 root SSH连接,你可以 使用恢复控制台重新访问 Droplets

配置新用户 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 20.04上设置SSH密钥(https://andsky.com/tech/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04)的指南,了解如何配置基于密钥的身份验证。

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

如果您已登录您的 root 帐户 _ using SSH keys_,那么对 SSH 的密码身份验证是 disabled. 您需要将本地公共密钥的副本添加到新用户的 ~/.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时首次使用您的常规用户密码(随后定期使用)。

从这里到哪里去?

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

Published At
Categories with 技术
comments powered by Disqus