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

介绍

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

本指南将引导您通过一些程序,您应该尽早完成,以便为您的新服务器创建一个坚实的基础,然后继续安装和配置任何软件或服务。

步骤 1 - 登录作为根

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

root用户是一个具有非常广泛的行政权限的用户。由于 root帐户的权限增加,您被鼓励不定期使用它。这是因为 root帐户固有的权力的一部分是能够进行非常破坏性的更改,即使是意外。因此,建议的做法是设置一个正常的系统用户,并给这个用户sudo权限,以便它可以运行某些限制的行政命令。

要开始,您需要登录您的服务器。 请确保您知道您的服务器的公共IP地址。 要进行身份验证,您将需要帐户的密码或用户帐户的SSH私钥,如果您已经在服务器中设置了SSH密钥以进行身份验证。 如果您尚未登录到您的服务器,您可能需要遵循我们关于如何通过SSH连接到您的Dropplet的指南(https://andsky.com/tech/tutorials/how-to-connect-to-your-droplet-with-ssh),该指南详细介绍了这个过程。

如果您尚未连接到您的服务器,请继续使用以下命令作为 root用户登录。

1[environment local]
2ssh root@your_server_ip

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

在下一步中,您将设置一个新的系统用户帐户,并配置该用户通过sudo运行管理命令。

步骤二:创建新用户

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

下面的示例会创建一个名为 sammy的新用户,但您应该用您所选择的用户名更换它:

1adduser sammy

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

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

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

第三步:授予行政特权

但是,有时您需要执行管理任务,例如管理服务器,编辑配置文件或重新启动服务器。

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

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

以下命令将更改默认用户设置,包括用户已经属于的组列表中的sudo组。注意-a参数,即 append。如果没有此选项,当前用户链接的组将被sudo取代,这将导致意外后果。

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

1usermod -aG sudo sammy

在下一步中,您将为您的服务器配置一个基本的防火墙。

步骤4:设置基本防火墙

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

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

应用程序可以在安装时在 UFW 注册其配置文件. 这些配置文件允许 UFW 以名义管理每个应用程序的设置. OpenSSH,即允许您现在连接到您的服务器的服务,有一个在 UFW 中注册的配置文件。

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

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

您需要确保防火墙允许 SSH 连接,以便下次再次登录。

1ufw allow OpenSSH

之后,您可以启用防火墙:

1ufw enable

输入``y并按ENTER`来继续,您可以看到通过键入SSH连接仍然允许:

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连接中遇到问题,您可以使用DigitalOcean Console登录到Droplet。

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

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

如果您已登录您的 root帐户 使用密码,这意味着对 SSH 已启用密码身份验证。

1[environment local]
2ssh sammy@your_server_ip

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

1sudo command_to_run

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

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

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

如果您已登录您的 root 帐户 使用 SSH 密钥,那么对 SSH 的密码身份验证很可能是 disabled

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

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

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

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

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

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

1[environment local]
2ssh sammy@your_server_ip

您应该能够登录新的用户帐户,而不会被要求提供远程用户的 SSH 密码以进行身份验证. 如果您的 SSH 密钥是用关键字设置的,则在您在终端会话中首次使用密钥时,可能会被要求通过提供该密码来解锁 SSH 密钥。

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

1sudo command_to_run

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

从这里到哪里去?

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

如果你想更熟悉 Linux 命令,你可以检查我们的 Linux 命令行 Primer 要扩展你的设置,你可能想检查我们的 Ubuntu 18.04 标签页面 更多基于该发行版的指南。

Published At
Categories with 技术
comments powered by Disqus