使用 Debian 9 进行初始服务器设置

介绍

当您首次创建一个新的 Debian 9 服务器时,有几个配置步骤,您应该提前作为基本设置的一部分,这将增加您的服务器的安全性和可用性,并为后续操作提供坚实的基础。

步骤一 - 登录作为根

要登录您的服务器,您需要知道您的服务器的公共IP地址**.您还需要密码或,如果您安装了SSH密钥进行身份验证,则需要对您的用户帐户的私钥 root. 如果您尚未登录到您的服务器,您可能需要遵循我们关于如何通过SSH连接到您的Droplet(https://andsky.com/tech/tutorials/how-to-connect-to-your-droplet-with-ssh)的指南,该指南详细介绍了这个过程。

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

1[environment local]
2ssh root@your_server_ip

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

关于根

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

下一步是创建一个替代的用户帐户,对日常工作影响范围减少,我们将教你如何在你需要时获得增加的特权。

步骤二:创建新用户

一旦您登录为 root,我们准备添加新的用户帐户,我们将从现在开始使用它来登录。

<$>[注] **注:在某些环境中,可以默认安装一个名为unscd的包,以便加速请求以命名服务器,如LDAP。

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

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

1apt remove unscd

美元

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

1adduser sammy

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

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

第三步:授予行政特权

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

为了避免需要退出我们的正常用户并作为 root帐户再次登录,我们可以为我们的正常帐户设置被称为超级用户root权限,这将允许我们的正常用户通过在每个命令前放置sudo这个词来运行具有管理权限的命令。

要将这些权限添加到我们的新用户中,我们需要将新用户添加到 sudo组中。

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

1usermod -aG sudo sammy

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

第四步:建立基本防火墙

Debian 服务器可以使用防火墙来确保只允许连接到某些服务。尽管iptables防火墙是默认安装的,但 Debian 并不强烈建议任何特定防火墙。

我们可以使用apt包管理器来安装 UFW. 更新本地索引以获取有关可用的包的最新信息,然后通过键入安装防火墙:

1apt update
2apt install ufw

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

防火墙配置文件允许 UFW 以名义管理应用程序的防火墙规则集. 某些常见软件的配置文件默认情况下与 UFW 结合,并可在安装过程中与 UFW 注册额外的配置文件。

您可以通过键入查看:

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

我们需要确保防火墙允许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之外的所有连接,如果您安装和配置其他服务,则需要调整防火墙设置以允许可接受的流量。

步骤五:为您的常规用户提供外部访问

现在我们有一个日常使用的常规用户,我们需要确保我们可以直接 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 密钥,而不是使用密码身份验证**. 遵循我们在 Debian 9 上设置 SSH 密钥(https://andsky.com/tech/tutorials/how-to-set-up-ssh-keys-on-debian-9)的指南,了解如何配置基于密钥的身份验证。

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

如果您已登录您的 root 帐户 _ using SSH keys_,那么对 SSH 的密码身份验证是 disabled. 您需要将本地公共密钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件才能成功登录。

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

请确保更改下面的命令中的突出部分,以匹配您的常规用户名:

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

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

1[environment local]
2ssh sammy@your_server_ip

您应该在未使用密码的情况下登录到新用户帐户. 请记住,如果您需要运行具有管理权限的命令,请在此之前键入sudo:

1sudo command_to_run

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

步骤六:完成可选配置

现在我们有一个强大的基线配置,我们可以考虑一些可选的步骤,使系统更容易访问。

安装人页面

Debian 為大多數軟體提供「人」頁面的廣泛手冊,但在最小的安裝中並不總是包含「人」命令。

安装man-db包来安装man命令和手动数据库:

1sudo apt install man-db

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

1man command

例如,要查看顶部命令的手册,键入:

1man top

大多数 Debian 存储库中的包包含手动页面作为其安装的一部分。

更改默认编辑器

Debian 提供各种各样的文本编辑器,其中一些包含在基本系统中。具有集成编辑器支持的命令,如visudosystemctl edit,将文本传输到editor命令中,该命令被映射到系统的默认编辑器中。

如果您的偏好编辑器默认不安装,请使用apt先安装它:

1sudo apt install your_preferred_editor

接下来,您可以查看当前的默认值并使用更新替代命令修改选择:

1sudo update-alternatives --config editor

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

 1[secondary_label Output]
 2There are 8 choices for the alternative editor (providing /usr/bin/editor).
 3
 4  Selection Path Priority Status
 5------------------------------------------------------------
 6* 0            /usr/bin/joe 70 auto mode
 7  1            /bin/nano 40 manual mode
 8  2            /usr/bin/jmacs 50 manual mode
 9  3            /usr/bin/joe 70 manual mode
10  4            /usr/bin/jpico 50 manual mode
11  5            /usr/bin/jstar 50 manual mode
12  6            /usr/bin/rjoe 25 manual mode
13  7            /usr/bin/vim.basic 30 manual mode
14  8            /usr/bin/vim.tiny 15 manual mode
15
16Press <enter> to keep the current choice[*], or type selection number:

左侧的星座标志着当前的选择。 若要更改默认值,请键入您喜爱的编辑器的选择号码,然后按Enter。 例如,要使用nano作为上表的默认编辑器,我们会选择1:

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

从现在开始,您最喜欢的编辑器将被用于visudosystemctl edit等命令,或者在呼叫editor命令时。

从这里到哪里去?

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

Published At
Categories with 技术
comments powered by Disqus