使用Debian9进行初始服务器设置

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

介绍

当您第一次创建新的 Debian 9 服务器时,作为基本设置的一部分,您应该尽早采取一些配置步骤。 这将提高服务器的安全性和可用性,并为您后续操作奠定坚实的基础。

第一步——以根用户身份登录

要登录您的服务器,您需要知道您的 服务器的公共 IP 地址 。 您还需要密码,或者,如果您安装了用于身份验证的 SSH 密钥,则需要 root 用户帐户的私钥。 如果您还没有登录到您的服务器,您可能需要按照我们关于 如何使用 SSH 连接到您的 Droplet 的指南进行操作,该指南详细介绍了此过程。

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

ssh root@your_server_ip

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

关于根

root 用户是 Linux 环境中的管理用户,具有非常广泛的权限。 由于 root 帐户的特权更高,因此 不鼓励 定期使用它。 这是因为 root 帐户固有的部分功能是能够进行非常具有破坏性的更改,即使是偶然的。

下一步是设置一个替代用户帐户,以减少对日常工作的影响范围。 我们将教您如何在需要时获得更多特权。

第二步——创建一个新用户

一旦您以 root 身份登录,我们就准备添加新的用户帐户,我们将从现在开始用于登录。

注意:在某些环境中,可能会默认安装一个名为 unscd 的包,以加快对 LDAP 等名称服务器的请求。 Debian 当前可用的最新版本包含 一个错误 ,它会导致某些命令(例如下面的 adduser 命令)产生如下所示的附加输出:

sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting

这些消息是无害的,但如果您希望避免它们,如果您不打算使用 LDAP 等系统获取用户信息,则可以安全地删除 unscd 包:

apt remove unscd

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

adduser sammy

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

输入一个强密码,如果您愿意,可以选择填写任何附加信息。 这不是必需的,您可以在您希望跳过的任何字段中点击 ENTER

第三步——授予管理权限

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

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

要将这些权限添加到我们的新用户,我们需要将新用户添加到 sudo 组。 默认情况下,在 Debian 9 上,属于 sudo 组的用户可以使用 sudo 命令。

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

usermod -aG sudo sammy

现在,当以普通用户身份登录时,您可以在命令前键入 sudo 以执行具有超级用户权限的操作。

第四步 — 设置基本防火墙

Debian 服务器可以使用防火墙来确保只允许连接到某些服务。 虽然默认安装了 iptables 防火墙,但 Debian 并不强烈推荐任何特定的防火墙。 在本指南中,我们将安装和使用 UFW 防火墙来帮助设置策略和管理异常。

我们可以使用 apt 包管理器来安装 UFW。 更新本地索引以检索有关可用软件包的最新信息,然后通过键入以下命令安装防火墙:

apt update
apt install ufw

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


防火墙配置文件允许 UFW 按名称管理应用程序的防火墙规则集。 默认情况下,一些常用软件的配置文件与 UFW 捆绑在一起,并且软件包可以在安装过程中向 UFW 注册其他配置文件。 OpenSSH 是允许我们现在连接到我们的服务器的服务,它有一个我们可以使用的防火墙配置文件。

您可以通过键入以下内容来查看:

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操作。

第五步 - 为您的普通用户启用外部访问

现在我们有了一个日常使用的普通用户,我们需要确保我们可以直接通过 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 密钥而不是使用密码验证。 按照我们关于 在 Debian 9 上设置 SSH 密钥的指南,了解如何配置基于密钥的身份验证。

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

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

由于您的公钥已经在服务器上的 root 帐户的 ~/.ssh/authorized_keys 文件中,我们可以在与 [ 的现有会话中将该文件和目录结构复制到我们的新用户帐户中X201X] 命令。 之后,我们可以使用 chown 命令调整文件的所有权。

确保更改以下命令的突出显示部分以匹配您的常规用户名:

cp -r ~/.ssh /home/sammy
chown -R sammy:sammy /home/sammy/.ssh

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

ssh sammy@your_server_ip

您应该在不使用密码的情况下登录到新用户帐户。 请记住,如果您需要以管理员权限运行命令,请在它之前键入 sudo,如下所示:

sudo command_to_run

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

第六步——完成可选配置

现在我们有了一个强大的基线配置,我们可以考虑一些可选的步骤来使系统更易于访问。 以下部分介绍了一些专注于可用性的额外调整。

安装手册页

Debian 以 man 页面的形式为大多数软件提供广泛的手册。 但是,man 命令并不总是默认包含在最小安装中。

安装 man-db 包以安装 man 命令和手册数据库:

sudo apt install man-db

现在,要查看组件的手册,您可以键入:

man command

例如,要查看 top 命令的手册,请键入:

man top

Debian 存储库中的大多数软件包都包含手册页作为其安装的一部分。

更改默认编辑器

Debian 提供了多种文本编辑器,其中一些包含在基本系统中。 具有集成编辑器支持的命令,如 visudosystemctl edit,将文本传递给映射到系统默认编辑器的 editor 命令。 根据您的喜好设置默认编辑器可以帮助您更轻松地配置系统并避免挫败感。

如果您的首选编辑器默认未安装,请先使用 apt 安装它:

sudo apt install your_preferred_editor

接下来,您可以使用 update-alternatives 命令查看当前默认值并修改选择:

sudo update-alternatives --config editor

该命令显示它知道的编辑器表,并提示更改默认值:

OutputThere are 8 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/joe         70        auto mode
  1            /bin/nano            40        manual mode
  2            /usr/bin/jmacs       50        manual mode
  3            /usr/bin/joe         70        manual mode
  4            /usr/bin/jpico       50        manual mode
  5            /usr/bin/jstar       50        manual mode
  6            /usr/bin/rjoe        25        manual mode
  7            /usr/bin/vim.basic   30        manual mode
  8            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number:

最左列中的星号表示当前选择。 要更改默认值,请为您的首选编辑器键入“选择”编号,然后按 Enter。 例如,要使用 nano 作为上表给出的默认编辑器,我们将选择 1

OutputPress <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in manual mode

从现在开始,您的首选编辑器将被 visudosystemctl edit 等命令使用,或者在调用 editor 命令时使用。

然后去哪儿?

至此,您的服务器已经有了坚实的基础。 您现在可以在服务器上安装您需要的任何软件。