在CentOS 7初始服务器设置

本教程介绍如何用root登录,如何改变Root密码,如何创建一个新用户,如何给新用户root权限,如何更改端口,以及如何在禁用root登录。当你第一次创建你的服务器,本教程介绍你需要采取的第一个步骤。本教程是为CentOS 7。

介绍

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

第一步 - Root登录

要登录到您的服务器,您需要知道您的服务器的公共IP地址和“root”用户帐户的密码。如果您尚未登录到你的服务器,你可能要遵循先教程在这个系列中, 如何连接到你的SSH Droplet ,这将详细介绍这个过程。 如果您尚未连接到你的服务器,继续前进,登录为root使用以下命令(替换您的服务器的公网IP地址高亮显示的字)用户:
ssh root@SERVER_IP_ADDRESS
通过接受有关主机的真实性警告,如果出现的话,那么提供你的Root认证(密码或私钥)完成登录过程。如果您是第一次登录到服务器,使用密码,你也将被提示修改root密码。

关于Root

root用户是具有非常广泛特权的Linux环境中的管理用户。因为root帐户的更高权限的,你实际上是使用它定期气馁 。这是因为固有的root帐户的权力的一部分,甚至是偶然做出极具破坏性的变化,能力。 下一步是设置一个替代用户帐户,减少日常工作的影响范围。我们会教你如何在你需要时获得更多的权限。

第二步 - 创建新用户

一旦你登录为root ,我们准备补充一点,我们将使用从现在起登录的新用户帐户。 此示例创建一个名为“demo”的新用户,但您应该将其替换为您喜欢的用户名:
adduser demo
接下来,为新用户分配密码(再次,用您刚刚创建的用户替换“demo”):
passwd demo
输入强密码,然后重新进行验证。

第三步 - Root特权

现在,我们有一个具有常规帐户权限的新用户帐户。但是,我们有时可能需要执行管理任务。 为了避免登录我们的普通用户并重新登录为root账号,我们可以设置所谓的“超级用户”或root权限为我们的普通帐户。这将使我们的普通用户通过字当头运行具有管理权限的命令sudo每一个命令。 要向我们的新用户添加这些权限,我们需要将新用户添加到“wheel”组。默认情况下,在CentOS 7,谁属于“轮”组的用户被允许使用sudo命令。 作为root ,运行这个命令到新的用户添加到车轮组(替换用新的用户突出显示的单词):
gpasswd -a demo wheel
现在您的用户可以运行具有超级用户权限的命令!有关如何运作的更多信息,请访问我们的sudoers的教程 保护服务器的下一步是为新用户设置公钥认证。设置此项将通过要求私有SSH密钥登录来提高服务器的安全性。

生成密钥对

如果您还没有SSH密钥对,它由一个公钥和私钥,你需要生成一个。如果您已经有您想要使用一个密钥,跳到复制公钥一步。 要生成一个新的密钥对,在本地计算机终端输入以下命令:
ssh-keygen
假设您的本地用户名为“localuser”,您将看到如下所示的输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
命中返回以接受此文件名和路径(或输入新名称)。 接下来,系统将提示您输入密码以确保密钥安全。您可以输入密码或将密码留空。 注:如果您离开了密码为空,你将能够使用认证私钥,而无需输入密码。 如果输入的密码,则需要两个私钥密码进行登录。使用密码保护你的钥匙是更安全,但两种方法都有其用途,并且比基本密码验证更安全。 这将生成私钥id_rsa和公钥id_rsa.pub ,在.ssh为localuser的主目录的目录。请记住,不应与不应访问您的服务器的任何人共享私钥!

复制公钥

生成SSH密钥对后,您需要将公钥复制到新服务器。我们将介绍两种简单的方法。

选项1:使用ssh-copy-id

如果你的本地计算机具有ssh-copy-id安装的脚本,你可以用它来你的公钥安装到您的登录凭据的任何用户。 运行ssh-copy-id通过指定要安装的关键,这样的服务器的用户和IP地址的脚本:
ssh-copy-id demo@SERVER_IP_ADDRESS
在提示符下提供密码后,您的公钥将被添加到远程用户的.ssh/authorized_keys文件。现在可以使用相应的私钥登录服务器。

选项2:手动安装密钥

假设你产生使用上一步SSH密钥对, 在本地计算机的终端使用下面的命令来打印你的公钥( id_rsa.pub ):
cat ~/.ssh/id_rsa.pub
这应该打印你的公共SSH密钥,应该看起来像下面:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
选择公共密钥,并将其复制到剪贴板。

将公钥添加到新的远程用户

为了能够使用SSH密钥为一体的新型远程用户进行身份验证,则必须将公共密钥添加到用户的主目录下的特殊文件。 在服务器上 ,作为root用户,输入以下命令切换到新的用户(使用自己的用户名):
su - demo
现在你将在你的新用户的主目录。 创建一个新目录.ssh并用下面的命令限制其权限:
mkdir .ssh
chmod 700 .ssh
现在名为的.ssh打开文件authorized_keys用文本编辑器。 我们将用vi编辑文件:
vi .ssh/authorized_keys
进入插入模式,按i ,然后将其粘贴到编辑器中输入您的公钥(这应该是在你的剪贴板)。 现在点击ESC退出插入方式。 输入:x ,然后ENTER保存并退出该文件。 现在限制使用此命令authorized_keys文件的权限:
chmod 600 .ssh/authorized_keys
键入此命令返回到root用户:
exit
现在您可以SSH登录作为您的新用户,使用私钥作为身份验证。 要了解更多关于如何密钥认证工作,阅读本教程: 如何在Linux服务器上配置SSH密钥的验证

第五步 - 配置SSH守护程序

现在,我们有我们新的帐户,我们可以通过修改其SSH服务的配置,以禁止到root帐户的远程SSH访问(这使我们能够远程登录程序),确保我们的服务器一点点。 首先以root身份用文本编辑器打开配置文件:
vi /etc/ssh/sshd_config
在这里,我们可以选择通过SSH禁用root登录。这通常是一个更安全的环境,因为我们现在可以通过我们的普通用户帐户来访问我们的服务器,并在必要时提升权限。 要禁用远程Root登录,我们需要找到如下所示的行:
/ etc / ssh / sshd_config(before)
#PermitRootLogin yes
提示:要搜索该行,输入/PermitRoot然后按ENTER 。这应该使光标到该行上的“P”字符。 删去“#”符号(按取消该行Shift-x 现在,按移动光标到“是” c 。 现在更换“是”按cw ,然后键入“不”。 打Escape完成编辑时。它应该看起来像这样:
/ etc / ssh / sshd_config(after)
PermitRootLogin no
强烈建议在每台服务器上禁用远程root用户登录! 输入:x ,然后ENTER保存并退出该文件。

重新加载SSH

现在我们已经进行了更改,我们需要重新启动SSH服务,以便它将使用我们的新配置。 键入此以重新启动SSH:
systemctl reload sshd
现在,我们注销服务器之前,我们要测试我们新配置。我们不想断开连接,直到我们确认可以成功建立新连接。 打开一个的终端窗口。在新窗口中,我们需要开始一个新的连接到我们的服务器。这一次,我们要使用我们创建的新帐户,而不是使用root帐户。 对于上面配置的服务器,使用此命令连接。在适当的地方替换您自己的信息:
ssh demo@SERVER_IP_ADDRESS
注:如果您使用的是PuTTY连接到服务器,一定要更新会话的端口以匹配您的服务器的当前配置。 系统将提示您输入您配置的新用户密码。之后,您将以您的新用户身份登录。 记住,如果你需要运行一个具有root权限的命令,在类似这样之前键入“sudo”:
sudo command_to_run
如果一切顺利,您可以通过键入以下内容退出会话:
exit

从哪里去?

在这一点上,您为您的服务器有坚实的基础。您现在可以在服务器上安装所需的任何软件。 如果你不知道你想做的事与您的服务器,请在本系列的下教程什么新的CentOS 7服务器的其他建议步骤 。 它涵盖之类的东西使fail2ban减少暴力攻击,基本防火墙设置,NTP和交换文件的有效性。它还提供了指向教程的链接,介绍如何设置常用的Web应用程序。 如果你只是想探索,看看我们的其他社区找到更多的教程。 一些流行的观点是配置LAMPLEMP栈 ,这将 允许您托管网站。