介绍
当你第一次创建一个新的Ubuntu 16.04服务器时,有一些配置步骤,你应该早早作为基本设置的一部分。这将增加服务器的安全性和可用性,并为后续操作提供坚实的基础。第一步 - Root登录
要登录到您的服务器,您需要知道您的服务器的公共IP地址。您还需要密码或(如果您安装了SSH密钥进行身份验证)“root”用户帐户的私钥。如果您尚未登录到你的服务器,你可能要遵循先教程在这个系列中, 如何连接到你的SSH Droplet ,这将详细介绍这个过程。 如果您尚未连接到你的服务器,继续前进,登录为root
使用以下命令(替换您的服务器的公网IP地址高亮显示的字)用户:
ssh root@SERVER_IP_ADDRESS
通过接受有关主机的真实性警告,如果出现的话,那么提供你的Root认证(密码或私钥)完成登录过程。如果是您首次使用密码登录服务器,则还会提示您更改root密码。
关于Root
root用户是具有非常广泛特权的Linux环境中的管理用户。因为root帐户的更高权限的,你实际上是使用它定期 气馁 。这是因为固有的root帐户的权力的一部分,甚至是偶然做出极具破坏性的变化,能力。 下一步是设置一个替代用户帐户,减少日常工作的影响范围。我们会教你如何在你需要时获得更多的权限。第二步 - 创建新用户
一旦你登录为root
,我们准备补充一点,我们将使用从现在起登录的新用户帐户。 此示例创建一个名为“sammy”的新用户,但您应该将其替换为您喜欢的用户名:
adduser sammy
您会被问到几个问题,从帐户密码开始。 输入强密码,如果需要,可以选择填写任何附加信息。这不是必需的,你只需要碰撞
ENTER
你想跳过任何领域。
第三步 - Root特权
现在,我们有一个具有常规帐户权限的新用户帐户。但是,我们有时可能需要执行管理任务。 为了避免必须注销正常用户并以root帐户重新登录,我们可以为我们的普通帐户设置所谓的“超级用户”或root权限。这将使我们的普通用户通过字当头运行具有管理权限的命令sudo
每一个命令。 要向我们的新用户添加这些权限,我们需要将新用户添加到“sudo”组。默认情况下,在Ubuntu 16.04,谁属于“命令”组中的用户被允许使用
sudo
命令。 作为
root
,运行这个命令到新的用户加入到
Sudo组(替换用新的用户突出显示的单词):
usermod -aG sudo sammy
现在您的用户可以运行具有超级用户权限的命令!有关如何运作的更多信息,请查看
本sudoers的教程 。 如果要提高服务器的安全性,请按照本教程中的其余步骤操作。
第四步 - 添加公钥认证(推荐)
保护服务器的下一步是为新用户设置公钥认证。设置此项将通过要求私有SSH密钥登录来提高服务器的安全性。生成密钥对
如果您还没有SSH密钥对,它由一个公钥和私钥,你需要生成一个。如果您已经有您想要使用一个密钥,跳到 复制公钥一步。 要生成一个新的密钥对,在 本地计算机 (即计算机)的终端输入以下命令:ssh-keygen
假设您的本地用户名为“localuser”,您将看到如下所示的输出:
ssh-keygen outputGenerating 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 sammy@SERVER_IP_ADDRESS
在提示符下提供密码后,您的公钥将被添加到远程用户的
.ssh/authorized_keys
文件。现在可以使用相应的私钥登录服务器。
选项2:手动安装密钥
假设你产生使用上一步SSH密钥对,在 本地计算机的终端使用下面的命令来打印你的公钥(id_rsa.pub
):
cat ~/.ssh/id_rsa.pub
这应该打印你的公共SSH密钥,应该看起来像下面:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
选择公共密钥,并将其复制到剪贴板。 为了能够使用SSH密钥为一体的新型远程用户进行身份验证,则必须将公共密钥添加到用户的主目录下的特殊文件。
在服务器上 ,以
root用户,输入以下命令暂时切换到新的用户(使用自己的用户名):
su - sammy
现在你将在你的新用户的主目录。 创建一个新目录
.ssh
并用下面的命令限制其权限:
mkdir ~/.ssh
chmod 700 ~/.ssh
现在打开一个文件
.ssh
名为
authorized_keys
用文本编辑器。 我们将用
nano
来编辑文件:
nano ~/.ssh/authorized_keys
现在,通过将其粘贴到编辑器中,插入您的公共密钥(应该在剪贴板中)。 打
CTRL-x
退出该文件,然后
y
以保存您所做的更改,然后
ENTER
确认文件名。 现在限制使用此命令
authorized_keys文件的权限:
chmod 600 ~/.ssh/authorized_keys
键入此命令
后返回到
root
用户:
exit
现在您的公钥已安装,您可以使用SSH密钥作为您的用户登录。 要了解更多关于如何密钥认证工作,阅读本教程:
如何在Linux服务器上配置SSH密钥的验证 。 接下来,我们将介绍如何通过禁用密码身份验证来提高服务器的安全性。
第五步 - 禁用密码验证(推荐)
现在您的新用户可以使用SSH密钥登录,您可以通过禁用仅密码身份验证来提高服务器的安全性。这样做将限制对您的服务器的SSH访问仅限于公钥认证。也就是说,登录到您的服务器(除了控制台)的唯一方法是拥有与安装的公钥配对的私钥。 注意:只有当你安装了一个公共密钥用户在上一节中,建议禁用密码身份验证,第四步。 否则,你将锁定自己的服务器! 要在服务器上禁用密码验证,请按照下列步骤操作。 作为 root或 新的用户Sudo ,打开SSH守护程序配置:sudo nano /etc/ssh/sshd_config
查找指定线路
PasswordAuthentication
,删去前面的注释它
#
,然后将其值改为“无”。在进行更改后,它应该如下所示:
sshd_config - 禁用密码认证
PasswordAuthentication no
以下是另外两个对于纯钥验证重要的设置,默认设置。如果你以前没有修改这个文件,你
并不需要更改这些设置:
sshd_config - 重要默认值
PubkeyAuthentication yes
ChallengeResponseAuthentication no
当你完成更改,保存和使用,我们去了前面的方法关闭文件(
CTRL-X
然后
Y
,然后
ENTER
)。 键入此以重新加载SSH守护程序:
sudo systemctl reload sshd
密码验证现已禁用。您的服务器现在只能使用SSH密钥身份验证。
第六步 - 测试登录
现在,在注销服务器之前,您应该测试新的配置。在您确认可以通过SSH成功登录之前,请不要断开连接。 在 本地机器上 的一个新的终端,使用我们新创建的帐户登录到服务器。为此,请使用此命令(替换您的用户名和服务器IP地址):ssh sammy@SERVER_IP_ADDRESS
如果您向用户添加了公钥身份验证,如第四步和五所述,则您的私钥将用作身份验证。否则,系统将提示您输入用户的密码。
请注意有关密钥验证:如果您使用密码生成密钥对,你会被提示输入密码为您的钥匙。
否则,如果您的密钥对是密码短语,您应该没有密码登录到您的服务器。 一旦向服务器提供身份验证,您将以新用户身份登录。 记住,如果你需要运行一个具有root权限的命令,在类似这样之前键入“sudo”:
sudo command_to_run
第七步 - 设置基本防火墙
Ubuntu 16.04服务器可以使用UFW防火墙来确保只允许与某些服务的连接。我们可以很容易地使用这个应用程序设置基本的防火墙。 不同的应用程序可以在安装时向UFW注册其配置文件。这些配置文件允许UFW按名称管理这些应用程序。 OpenSSH,该服务允许我们现在连接到我们的服务器,已在UFW注册了一个配置文件。 您可以通过键入以下内容查看此内容:sudo ufw app list
OutputAvailable applications:
OpenSSH
我们需要确保防火墙允许SSH连接,以便我们可以在下次重新登录。我们可以通过键入以下内容来允许这些连接:
sudo ufw allow OpenSSH
之后,我们可以通过键入以下内容启用防火墙:
sudo ufw enable
键入“y”,然后按ENTER键继续。您可以看到仍然允许SSH连接:
sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
如果您安装和配置额外的服务,则需要调整防火墙设置允许在可接受的流量。你可以学习一些常用的操作UFW
本指南 。