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

介绍

创建新的 Ubuntu 18.04 服务器后,您应该执行一些配置步骤作为初始服务器设置的一部分,以提高安全性并便于以后管理。

本指南将引导您完成一些您应该尽早完成的过程,以便在继续安装和配置任何软件或服务之前为您的新服务器奠定坚实的基础。

步骤 1 — 以 Root 用户身份登录

新安装的服务器通常只设置一个root帐户,这是您第一次登录服务器时使用的帐户。

用户的是,具有十分广阔的权限的管理用户。由于root帐户具有更高的权限,因此不鼓励定期使用它。这是因为root帐户固有的部分能力是能够进行非常具有破坏性的更改,即使是意外更改也是如此。出于这个原因,推荐的做法是设置一个普通系统用户并授予该用户sudo权限,以便它可以运行具有某些限制的管理命令。在下一步中,您将设置这样一个用户。

首先,您需要登录到您的服务器。确保您知道服务器的公共 IP 地址要进行身份验证,您需要帐户的密码或root用户帐户的 SSH 私钥,以防您在服务器内设置了用于身份验证的 SSH 密钥。如果您还没有登录到您的服务器,您可能需要遵循我们关于如何使用 SSH 连接到您的 Droplet 的指南,其中详细介绍了此过程。

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

  • ssh root@your_server_ip

如果出现有关主机真实性的警告,请接受。如果您使用密码验证,请提供您的root密码以登录。或者,如果您使用受密码保护的 SSH 密钥,您可能会在每次会话第一次使用密钥时提示输入密码。此外,如果这是您第一次使用密码登录服务器,系统可能还会提示您更改root密码。

在下一步中,您将设置一个具有降低权限的新系统用户帐户,并将此用户配置为通过sudo.

步骤 2 — 创建新用户

root身份登录后,您可以创建一个新用户,从现在起将成为您的常规系统用户。

以下示例创建了一个名为sammy的新用户,但您应该将其替换为您选择的用户名:

  • adduser sammy

您将被问到几个问题,首先是帐户密码。

输入一个强密码,并可以根据需要填写任何附加信息。这不是必需的,您可以点击ENTER任何您想跳过的字段。

在下一步中,您将sudo为该用户设置权限。这将允许用户以root用户身份通过sudo程序执行管理任务

步骤 3 — 授予管理权限

您现在拥有一个具有常规权限的新用户帐户。但是,有时您需要执行管理任务,例如管理服务器、编辑配置文件或重新启动服务器。

为了避免退出您的普通用户并以root帐户重新登录,您可以为您的普通帐户设置所谓的“超级用户”或root权限。这将允许您的普通用户通过在每个命令前加上单词前缀来运行具有管理权限的命令sudo

要将这些权限添加到您的新用户,您需要将新用户添加到sudo组。默认情况下,在 Ubuntu 18.04 上,允许属于sudo组的用户使用该sudo命令。

以下命令将修改默认用户设置,包括sudo用户已所属组列表中的组。注意-a参数,它代表append如果没有此选项,用户当前链接到的组将被替换为sudo,这会导致意外后果。-G参数告诉usermod更改用户的组设置。

root身份运行此命令将您的新用户添加到sudo组(用您的新用户替换突出显示的单词):

  • usermod -aG sudo sammy

您的系统用户现已设置。在下一步中,您将为服务器配置基本防火墙。

第 4 步 – 设置基本防火墙

UFW(Uncomplicated Firewall)是Ubuntu服务器自带的防火墙配置工具。您可以使用 UFW 防火墙来确保您的服务器上只允许连接到某些服务。

注意:如果您的服务器在 DigitalOcean 上运行,您可以选择使用DigitalOcean Cloud Firewalls而不是 UFW 防火墙。我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。

应用程序可以在安装时向 UFW 注册他们的配置文件。这些配置文件允许 UFW 按名称管理每个应用程序的设置。OpenSSH,允许您现在连接到服务器的服务,在 UFW 中注册了一个配置文件。

运行以下命令以获取所有当前可用配置文件的列表:

  • ufw app list
Output
Available applications: OpenSSH

您需要确保防火墙允许 SSH 连接,以便您下次可以重新登录。您可以通过键入以下内容来允许这些连接:

  • ufw allow OpenSSH

之后,您可以通过以下方式启用防火墙:

  • ufw enable

输入“ y”并按ENTER继续。您可以通过键入以下内容看到仍然允许 SSH 连接:

  • ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

由于防火墙当前阻止了除 SSH 之外的所有连接,如果您安装和配置其他服务,您将需要调整防火墙设置以允许可接受的流量进入。您可以在本指南中了解一些常见的 UFW 操作

第 5 步 – 为您的普通用户启用外部访问

现在您有一个日常使用的普通用户,您需要确保可以直接通过 SSH 访问该帐户。

注意:在确认您可以以sudo新用户身份登录并使用之前,我们建议您保持以root身份登录这样,如果您遇到问题,您可以以root身份进行故障排除并进行任何必要的更改如果您正在使用 DigitalOcean Droplet 并遇到SSH 连接问题,您可以使用 DigitalOcean 控制台登录 Droplet

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

如果 Root 账户使用密码认证

如果您使用 password登录到您的root帐户,则表示为 SSH 启用了密码验证。您可以通过打开一个新的终端会话并使用新用户名使用 SSH 来 SSH 到您的新用户帐户:

  • ssh sammy@your_server_ip

输入您的普通用户密码后,您将登录。请记住,如果您需要以管理权限运行命令,请sudo在它之前键入如下:

  • sudo command_to_run

sudo每次会话第一次使用时(以及之后定期使用),系统会提示您输入常规用户密码

为了增强服务器的安全性,我们强烈建议设置 SSH 密钥而不是使用密码验证按照我们在 Ubuntu 18.04设置 SSH 密钥的指南,了解如何配置基于密钥的身份验证。

如果 Root 账户使用 SSH 密钥认证

如果您使用 SSH 密钥登录到您的帐户,则SSH可能禁用密码身份验证您需要将本地公钥的副本添加到新用户的~/.ssh/authorized_keys文件中才能成功登录。

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

复制具有正确所有权和权限的文件的最简单方法是使用rsync命令。这将复制root用户的.ssh目录、保留权限并修改文件所有者,所有这些都在一个命令中。确保更改以下命令的突出显示部分以匹配您的常规用户名:

注意:rsync命令对以斜杠结尾的源和目标与没有斜杠的源和目标的处理方式不同。rsync下面使用时,请确保源目录 ( ~/.ssh)包含尾部斜杠(检查以确保您没有使用~/.ssh/)。

如果你不小心一个斜线添加到命令,rsync将复制的内容中的帐户的~/.ssh目录到sudo用户的主目录,而不是复制整个~/.ssh目录结构。这些文件将位于错误的位置,SSH 将无法找到和使用它们。

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

现在,打开一个新的终端会话并尝试使用您的新用户名登录:

  • ssh sammy@your_server_ip

您应该能够登录新用户帐户,而不会提示您输入远程用户的 SSH 密码以进行身份​​验证。如果您的 SSH 密钥是使用密钥短语设置的,则当您在终端会话中第一次使用密钥时,系统可能会要求您通过提供该密码来解锁 SSH 密钥。

请记住,如果您需要以管理权限运行命令,请sudo在它之前键入如下:

  • sudo command_to_run

sudo每次会话第一次使用时(以及之后定期使用),系统会提示您输入常规用户密码

然后去哪儿?

此时,您的服务器已经打下了坚实的基础。您现在可以在服务器上安装所需的任何软件。

如果您想更熟悉 Linux 命令,可以查看我们的Linux 命令行入门要扩展您的设置,您可能需要查看我们的Ubuntu 18.04 标签页以获取基于该发行版的更多指南。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁