当您首次创建新的 Debian 9 服务器时,您应该尽早执行一些配置步骤作为基本设置的一部分。这将提高服务器的安全性和可用性,并为您后续的操作奠定坚实的基础。
要登录您的服务器,您需要知道您的服务器的公共IP地址。您还需要密码,或者,如果您安装了 SSH 密钥进行身份验证,则需要私钥root用户的帐户。如果您尚未登录服务器,您可能需要按照我们的指南进行操作如何使用 SSH 连接到 Droplet,其中详细介绍了此过程。
如果您尚未连接到服务器,请继续并以root用户使用以下命令(用服务器的公共 IP 地址替换命令的突出显示部分):
如果出现有关主机真实性的警告,请接受该警告。如果您使用密码身份验证,请提供您的root如果您使用受密码保护的 SSH 密钥,则每次会话首次使用该密钥时,系统可能会提示您输入密码。如果这是您第一次使用密码登录服务器,系统可能还会提示您更改密码root密码。
The rootuser 是 Linux 环境中的管理用户,具有非常广泛的权限。由于特权的提高root帐户,你是灰心定期使用它。这是因为固有的部分力量root账户是指做出非常具有破坏性的改变的能力,即使是偶然的。
下一步是设置一个替代用户帐户,以缩小对日常工作的影响范围。我们将教您如何在需要时获得更多特权。
一旦您登录为root,我们准备添加从现在开始用于登录的新用户帐户。
Note:在某些环境中,有一个名为unscd
可能会默认安装,以加快对 LDAP 等名称服务器的请求。 Debian 目前可用的最新版本包含a bug这会导致某些命令(例如adduser
下面的命令)以产生如下所示的附加输出:
sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting
这些消息是无害的,但如果您想避免它们,可以安全地删除这些消息unscd
如果您不打算使用 LDAP 等系统来获取用户信息,请打包:
此示例创建一个名为的新用户sammy,但您应该将其替换为您喜欢的用户名:
系统会询问您几个问题,首先是帐户密码。
输入一个强密码,如果您愿意,还可以选择填写任何附加信息。这不是必需的,您只需点击ENTER
在您想跳过的任何领域。
现在,我们有了一个具有常规帐户权限的新用户帐户。然而,我们有时可能需要执行行政任务。
为了避免必须注销我们的普通用户并以普通用户身份重新登录root帐户,我们可以设置所谓的“超级用户”或root我们普通帐户的权限。这将允许我们的普通用户通过输入单词来运行具有管理权限的命令sudo
在每个命令之前。
要将这些权限添加到我们的新用户,我们需要将新用户添加到sudo团体。默认情况下,在 Debian 9 上,属于以下组的用户sudo组被允许使用sudo
命令。
As root,运行此命令将您的新用户添加到sudo组(用您的新用户替换突出显示的单词):
现在,当以普通用户身份登录时,您可以输入sudo
before 命令以超级用户权限执行操作。
Debian 服务器可以使用防火墙来确保只允许连接到某些服务。虽然iptables
防火墙是默认安装的,Debian 不强烈推荐任何特定的防火墙。在本指南中,我们将安装和使用 UFW 防火墙来帮助设置策略和管理异常。
我们可以使用apt
用于安装 UFW 的包管理器。更新本地索引以检索有关可用软件包的最新信息,然后通过键入以下内容安装防火墙:
-
apt update
-
apt install ufw
Note:如果您的服务器在 DigitalOcean 上运行,您可以选择使用DigitalOcean 云防火墙而不是 UFW 防火墙。我们建议一次仅使用一台防火墙,以避免可能难以调试的冲突规则。
防火墙配置文件允许 UFW 按名称管理应用程序的防火墙规则集。默认情况下,一些常见软件的配置文件与 UFW 捆绑在一起,并且软件包可以在安装过程中向 UFW 注册其他配置文件。 OpenSSH,现在允许我们连接到我们的服务器的服务,有一个我们可以使用的防火墙配置文件。
您可以通过输入以下内容来查看:
Output
Available applications:
. . .
OpenSSH
. . .
我们需要确保防火墙允许 SSH 连接,以便下次可以重新登录。我们可以通过键入以下内容来允许这些连接:
之后,我们可以通过键入以下内容来启用防火墙:
Type “y
”并按ENTER
继续。您可以通过键入以下内容看到仍然允许 SSH 连接:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
As 防火墙当前阻止除 SSH 之外的所有连接,如果您安装和配置其他服务,则需要调整防火墙设置以允许可接受的流量进入。您可以在本指南.
现在我们有了一个日常使用的普通用户,我们需要确保可以直接通过 SSH 连接到该帐户。
Note:直至验证您可以登录并使用sudo
对于您的新用户,我们建议保持登录状态root。这样,如果您遇到问题,您可以进行故障排除并进行任何必要的更改,如下所示root。如果您正在使用 DigitalOcean Droplet 并遇到问题rootSSH连接,就可以使用 DigitalOcean 控制台登录 Droplet.
为新用户配置 SSH 访问的过程取决于您的服务器是否root帐户使用密码或 SSH 密钥进行身份验证。
如果您登录了您的root帐户使用密码,然后为 SSH 启用密码验证。您可以通过打开一个新的终端会话并使用 SSH 和您的新用户名来通过 SSH 连接到您的新用户帐户:
输入普通用户的密码后,您将登录。请记住,如果您需要使用管理权限运行命令,请键入sudo
在它之前像这样:
使用时系统会提示您输入常规用户密码sudo
每次会议第一次(以及之后定期)。
为了增强服务器的安全性,我们强烈建议设置 SSH 密钥而不是使用密码身份验证。请遵循我们的指南在 Debian 9 上设置 SSH 密钥了解如何配置基于密钥的身份验证。
如果您登录了您的root帐户使用 SSH 密钥,那么密码验证就是disabled用于 SSH。您需要将本地公钥的副本添加到新用户的~/.ssh/authorized_keys
文件即可成功登录。
由于您的公钥已经在root帐户的~/.ssh/authorized_keys
服务器上的文件,我们可以将该文件和目录结构复制到我们现有会话中的新用户帐户cp
命令。之后,我们可以使用以下命令调整文件的所有权chown
命令。
确保更改以下命令的突出显示部分以匹配您的常规用户名:
-
cp -r ~/.ssh /home/sammy
-
chown -R sammy:sammy /home/sammy/.ssh
现在,打开一个新的终端会话并使用 SSH 和您的新用户名:
您应该无需使用密码即可登录新用户帐户。请记住,如果您需要使用管理权限运行命令,请键入sudo
在它之前像这样:
使用时系统会提示您输入常规用户密码sudo
每次会议第一次(以及之后定期)。
现在我们有了强大的基线配置,我们可以考虑一些可选步骤来使系统更易于访问。以下部分介绍了一些侧重于可用性的其他调整。
Debian 以以下形式为大多数软件提供了广泛的手册man
页。但是,那man
默认情况下,在最小安装中并不总是包含命令。
安装man-db
软件包来安装man
命令和手册数据库:
现在,要查看组件的手册,您可以键入:
例如,查看手册top
命令,输入:
Debian 存储库中的大多数软件包都包含手册页作为其安装的一部分。
Debian 提供了多种文本编辑器,其中一些包含在基本系统中。具有集成编辑器支持的命令,例如visudo
and systemctl edit
,将文本传递给editor
命令,映射到系统默认编辑器。根据您的喜好设置默认编辑器可以帮助您更轻松地配置系统并避免沮丧。
如果默认情况下未安装您的首选编辑器,请使用apt
首先安装它:
-
sudo apt install your_preferred_editor
接下来,您可以使用以下命令查看当前默认值并修改选择update-alternatives
命令:
-
sudo更新替代方案--config editor
该命令显示它所知道的编辑器表,并提示更改默认值:
Output
There 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
:
Output
Press <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
从现在开始,您的首选编辑器将由以下命令使用visudo
and systemctl edit
,或者当editor
命令被调用。
至此,您的服务器已经有了坚实的基础。您现在可以在服务器上安装所需的任何软件。