Ubuntu 16.04初始服务器设置

当您启动一个新的服务器,还有,你应该每天补充一些基本的安全,给你一个坚实的基础时间几步之遥。在本指南中,我们将引导您完成必要打与Ubuntu 16.04地面运行的基本步骤。

介绍

当你第一次创建一个新的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”,您将看到如下所示的输出:
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 sammy@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 - 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
Available applications:
  OpenSSH
我们需要确保防火墙允许SSH连接,以便我们可以在下次重新登录。我们可以通过键入以下内容来允许这些连接:
sudo ufw allow OpenSSH
之后,我们可以通过键入以下内容启用防火墙:
sudo ufw enable
键入“y”,然后按ENTER键继续。您可以看到仍然允许SSH连接:
sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
如果您安装和配置额外的服务,则需要调整防火墙设置允许在可接受的流量。你可以学习一些常用的操作UFW 本指南