在Fedora 21服务器初始设置

当您第一次登录到一个新的Fedora 21或RHEL服务器,它不准备用作生产体系。有一些建议要采取的步骤,以定制和保护它,例如启用防火墙。本教程将告诉你如何给在Fedora 21的服务器更好的安全配置文件的全新安装,并投入使用。

介绍

当您首次登录到新的Fedora 21或RHEL服务器时,它不能用作生产系统。 有许多推荐的步骤,以便定制和保护它,例如启用防火墙。

本教程将向您展示如何为Fedora 21服务器全新安装更好的安全配置文件,并准备好使用。

先决条件

要遵循本教程,您需要:

  • 带根SSH密钥的Fedora 21 Droplet。

您可以按照本节 SSH密钥教程创建密钥,如果你没有他们, 这部分当你创建Droplet相同教程的自动嵌入到你的服务器的根帐户的SSH密钥。

第1步 - 创建标准用户帐户

首先,登录到你的服务器根目录

ssh root@your_server_ip

以root身份操作是一种安全风险,因此在此步骤中,我们将设置sudo非root用户帐户以用于系统和其他计算任务。 在本教程中使用的用户名是森美 ,但你可以使用任何你喜欢的名字。

要添加用户,请键入:

adduser sammy

使用以下命令为用户指定强密码。 系统将提示您输入密码两次。

passwd sammy

然后将用户添加到wheel组,这给它sudo权限。

gpasswd -a sammy wheel

注销服务器并通过在本地计算机上运行以下命令将SSH密钥添加到新用户帐户。

ssh-copy-id sammy@your_server_ip

有关如何将SSH密钥从本地计算机复制到服务器的更多信息,你可以阅读本节的SSH教程。

最后,以新的sudo非root用户身份登录。 系统不会提示您输入密码,因为此帐户现在具有SSH密钥。

ssh sammy@your_server_ip

第2步 - 禁止root登录和密码验证

在此步骤中,我们将禁用root登录和密码身份验证,以使SSH登录更安全。

要编辑配置文件,您需要安装文本编辑器。 我们将使用nano但你可以使用任何你喜欢的。

首先,应用任何可用的更新:

sudo yum update

然后,安装nano ,键入:

sudo yum install -y nano

现在,打开SSH守护程序的配置文件进行编辑。

sudo nano /etc/ssh/sshd_config

在这个文件中,查找PermitRootLogin指令。 取消注释(这意味着除去首发#字符),并将其设置为no。

PermitRootLogin no

同样,认准PasswordAuthentication指令并将其设置为为好。

PasswordAuthentication no

保存并退出文件,然后重新加载配置以将更改放置到位。

sudo systemctl reload sshd

如果有人试图现在以root身份登录,响应应Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

第3步 - 配置时区

在此步骤中,您将了解如何将系统时钟更改为您当地的时区。 默认时钟设置为UTC。

所有已知的时区是下/usr/share/zoneinfo/目录中。 看看这些文件和目录/usr/share/zoneinfo/

ls /usr/share/zoneinfo/

若要将时钟设置为使用本地时区,找到您所在的国家或地区在该目录中,找到其下的区域文件,然后创建它的一个符号软链接/etc/localtime目录。 例如,如果你在美国,那里的时区为中心 ,或CST的核心部分是,区域文件将/usr/share/zoneinfo/US/Central

创建从区域文件一个符号软链接/etc/localtime

sudo ln -sf /usr/share/zoneinfo/your_zone_file /etc/localtime

验证通过查看输出时钟现在设置为本地时间date命令。

date

输出将如下所示:

Wed Mar 25 14:41:20 CST 2015

基金在这输出证实它的中部时间。

第4步 - 启用防火墙

一个新的Fedora 21服务器没有活动的防火墙应用程序。 在此步骤中,我们将学习如何启用IPTables防火墙应用程序,并确保运行时规则在重新启动后保留。

iptables包已经安装,但被启用,启用它,你需要安装iptables-services包。

sudo yum install -y iptables-services

然后,您可以启用IPTables,以便它在启动时自动启动。

sudo systemctl enable iptables

接下来,启动IPTables。

sudo systemctl start iptables

Fedora 21上的IPTables附带一组默认的规则。 其中一个规则允许SSH流量。 要查看默认规则,请键入:

sudo iptables -L

输出应为:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

这些规则是运行时规则,并且如果系统重新启动将丢失。 要将当前运行时规则保存到文件以使它们在重新启动后保持,请键入:

sudo /usr/libexec/iptables/iptables.init save

规则现在保存到一个名为iptables/etc/sysconfig目录。

第5步(可选) - 允许HTTP和HTTPS流量

在本节中,我们将介绍如何编辑防火墙规则,以允许端口80(HTTP)和443(HTTPS)的服务。

默认IPTables规则默认允许SSH流量,但HTTP和其相对更安全的表单HTTPS是许多应用程序使用的服务,因此您可能希望允许这些服务通过防火墙。

要继续,请键入以下命令打开防火墙规则文件:

sudo nano /etc/sysconfig/iptables

您需要做的是在SSH(端口22)流量的规则之后添加两个规则,一个用于端口80,另一个用于端口443。 下面的红线是你要添加的; 之前和之后的行被包括为上下文以帮助您找到在哪里添加新规则。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

要激活新规则集,请重新启动IPTables。

sudo systemctl restart iptables

第6步(可选) - 安装Mlocate

locate命令是在系统中查找文件的位置一个非常有用的工具。 例如,要找到一个名为示例文件,您可以键入:

locate example

这将扫描文件系统,并在屏幕上打印文件的位置或位置。 还有采用更先进的方式locate了。

为了使您的服务器上可用的命令,首先你需要安装mlocate软件包。

sudo yum install -y mlocate

然后,运行updatedb命令来更新搜索数据库。

sudo updatedb

在这之后,你应该能够使用locate来找到名称的任何文件。

结论

完成最后一步后,您的Fedora 21服务器应该配置,相当安全,并可以使用!