使用 CentOS 7 进行初始服务器设置

介绍

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

步骤一: root login

要登录您的服务器,您需要知道您的服务器的公共IP地址和用户帐户的密码. 如果您尚未登录您的服务器,您可能希望遵循本系列的第一个教程,如何使用SSH连接到您的Dropplet(https://andsky.com/tech/tutorials/how-to-connect-to-your-droplet-with-ssh),其中详细涵盖了这个过程。

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

1ssh root@SERVER_IP_ADDRESS

完成登录过程,通过接受有关主机真实性的警告,如果出现,然后提供您的根身份验证(密码或私钥)。

关于根

根用户是 Linux 环境中具有非常广泛的权限的管理用户. 由于根帐户的权限增加,您实际上被阻止定期使用它。

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

步骤二:创建新用户

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

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

1adduser demo

接下来,将密码分配给新用户(再次,用你刚刚创建的用户替换演示):

1passwd demo

输入一个强大的密码,然后重复它来验证它。

步骤三:根特权

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

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

要将这些特权添加到我们的新用户中,我们需要将新用户添加到轮子组中,默认情况下,在CentOS 7中,属于轮子组的用户可以使用sudo命令。

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

1gpasswd -a demo wheel

现在你的用户可以运行超级用户权限的命令! 有关如何工作的更多信息,请参阅 我们的 sudoers 教程

第四步:添加公共密钥身份验证(推荐)

保护您的服务器的下一步是为您的新用户设置公共密钥身份验证,这将增加您的服务器的安全性,需要一个私人SSH密钥来登录。

创建一个关键对

如果您还没有一个 SSH 密钥对,其中包括公共和私钥,则需要生成一个。

要生成一个新的密钥对,请在您的 本地机器的终端中输入以下命令:

1ssh-keygen

假设您的本地用户被称为本地用户,您将看到如下所示的输出:

1[secondary_label ssh-keygen output]
2Generating public/private rsa key pair.
3Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

点击返回以接受此文件名和路径(或输入新名称)。

接下来,您将被提示使用一个passphrase来保护密钥,您可以输入一个passphrase,或者让passphrase空。

** 注意:** 如果您将密码短语留空,您将能够使用私钥进行身份验证而无需输入密码短语. 如果您输入密码短语,您将需要私钥和密码短语来登录。

这会生成一个私钥,id_rsa,和一个公共钥匙,id_rsa.pub,在 localuser 主目录的.ssh 目录中。

复制公共密钥

在生成 SSH 密钥对后,您将希望将您的公共密钥复制到您的新服务器上,我们将介绍两种简单的方法来做到这一点。

<$>[注] **注:如果在创建 Droplet 时选择 SSH 密钥,则ssh-copy-id 方法不会在 DigitalOcean 上工作,这是因为如果 SSH 密钥存在,则 DigitalOcean 会禁用密码验证,而ssh-copy-id 则依赖密码验证来复制密钥。

如果您正在使用 DigitalOcean 并在创建 Droplet 时选择 SSH 密钥,请使用 [ 选项 2](# 选项-2 手动安装密钥)而不是. <$>

选项1:使用 ssh-copy-id

如果您的本地机器安装了ssh-copy-id脚本,您可以使用它来为您有登录凭证的任何用户安装公共密钥。

运行ssh-copy-id脚本,指定您要安装密钥的服务器的用户和IP地址,如下:

1ssh-copy-id demo@SERVER_IP_ADDRESS

在提示时提供密码后,您的公共密钥将被添加到远程用户的 .ssh/authorized_keys 文件中。

选项2:手动安装密钥

假设您使用上一个步骤生成了一个 SSH 密钥对,请使用以下命令 在本地机器的终端上来打印您的公共密钥(id_rsa.pub):

1cat ~/.ssh/id_rsa.pub

这应该打印您的公共 SSH 密钥,该密钥应该看起来如下:

1[secondary_label id_rsa.pub contents]
2ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]

选择公共密钥,并将其复制到您的剪辑板。

向新远程用户添加公共密钥

要允许使用 SSH 密钥作为新远程用户进行身份验证,您必须将公共密钥添加到用户主目录中的特殊文件中。

** 在服务器上**,作为用户,输入以下命令以切换为新用户(取代自己的用户名):

1su - demo

现在你将在你的新用户的家庭目录中。

创建一个名为.ssh的新目录,并使用以下命令限制其权限:

1mkdir .ssh
2chmod 700 .ssh

现在在 .ssh 中打开一个名为authorized_keys的文件,使用文本编辑器,我们将使用 vi 来编辑该文件:

1vi .ssh/authorized_keys

输入插入模式,按i,然后输入你的公共密钥(应该在你的剪辑板)通过粘贴到编辑器。

输入 :x 然后输入 ENTER 以保存和退出文件。

现在用这个命令限制 authorized_keys 文件的权限:

1chmod 600 .ssh/authorized_keys

输入此命令 once 返回root用户:

1exit

现在您可以作为新用户登录 SSH,使用私钥作为身份验证。

有关密钥身份验证的更多信息,请阅读本教程: 如何在 Linux 服务器上配置 SSH 基于密钥的身份验证

步骤五:配置 SSH Daemon

现在,我们有了新的帐户,我们可以通过修改其SSH大门配置(允许我们远程登录的程序)来保护我们的服务器,以阻止远程SSH访问 root帐户。

开始使用您的文本编辑器作为 root 打开配置文件:

1vi /etc/ssh/sshd_config

在这里,我们有选择通过SSH禁用根登录,这通常是一个更安全的设置,因为我们现在可以通过我们的正常用户帐户访问我们的服务器,并在必要时升级权限。

要禁用远程 root 登录,我们需要找到看起来像这样的行:

1[label /etc/ssh/sshd_config (before)]
2#PermitRootLogin yes

提示: 要搜索此行,键入 /PermitRoot,然后点击 ENTER. 这应该将路由器带到该行上的P字符。

通过删除#符号(按Shift-x)来消除该行。

现在通过按c来移动向

现在用按cw来代替,然后键入。当你完成编辑时,点击Escape

1[label /etc/ssh/sshd_config (after)]
2PermitRootLogin no

在每个服务器上强烈建议禁用远程 root 登录!

输入 :x 然后输入 ENTER 以保存和退出文件。

SSH 重新加载

现在我们已经进行了更改,我们需要重新启动SSH服务,以便它使用我们的新配置。

输入此信息以重新启动 SSH:

1systemctl reload sshd

现在,在我们退出服务器之前,我们应该 测试我们的新配置. 我们不希望断开连接,直到我们能够确认新的连接可以成功建立。

在新窗口中,我们需要开始新连接到我们的服务器.这次,而不是使用根帐户,我们想要使用我们创建的新帐户。

对于我们上面配置的服务器,请使用此命令连接。

1ssh demo@SERVER_IP_ADDRESS

** 注意:** 如果您使用 PuTTY 连接到您的服务器,请确保更新会话的 port 号码以匹配您的服务器的当前配置。

您将被提示为您配置的新用户密码,之后,您将登录为您的新用户。

請記住,如果您需要執行根權限的命令,請在執行之前輸入sudo:

1sudo command_to_run

如果一切顺利,您可以通过键入退出您的会话:

1exit

从这里到哪里去?

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

如果你不确定你想用你的服务器做什么,请参阅本系列的下一个教程 新 CentOS 7 服务器的额外推荐步骤。它涵盖了诸如允许 fail2ban 来减少暴力攻击的有效性、基本防火墙设置、NTP 和交换文件等内容。

如果你只是想探索,看看我们的其他社区(https://digitalocean.com/community/articles)找到更多的教程. 一些流行的想法正在配置一个 LAMP堆栈或一个 LEMP堆栈,这将 允许你托管网站。

Published At
Categories with 技术
comments powered by Disqus