使用Ubuntu18.04进行初始服务器设置

来自菜鸟教程
跳转至:导航、​搜索

介绍

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

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

第 1 步 — 以 Root 身份登录

新安装的服务器通常只设置一个 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 权限。 这将允许用户通过 sudo 程序以 root 用户身份执行管理任务。

第 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
OutputAvailable applications:
  OpenSSH

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

ufw allow OpenSSH

之后,您可以使用以下命令启用防火墙:

ufw enable

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

ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

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

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

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

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


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

如果 Root 帐户使用密码验证

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

ssh sammy@your_server_ip

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

sudo command_to_run

在每个会话第一次使用 sudo 时(以及之后定期),您将被提示输入您的常规用户密码。

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

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

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

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

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

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

如果不小心在命令后面加了斜杠,rsync会将root账户的~/.ssh目录下的contents复制到[ X161X] 用户的主目录,而不是复制整个 ~/.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 Command Line Primer。 要扩展您的设置,您可能需要查看我们的 Ubuntu 18.04 标记页面 以获取基于该发行版的更多指南。