Fedora 21 服务器的初始设置

介绍

当您首次登录新的 Fedora 21 或 RHEL 服务器时,它还没有准备好作为生产系统使用。

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

前提条件

要遵循本教程,您将需要:

  • 具有 root SSH 密钥的 Fedora 21 Droplet

您可以遵循 SSH 密钥教程的 此部分以创建密钥,如果您没有它们,以及同一教程的 此部分以自动嵌入您的 SSH 密钥在您的服务器的 root 帐户中,当您创建您的 Droplet。

步骤 1 – 创建标准用户帐户

首先,登录您的服务器作为 root

1ssh root@your_server_ip

作为 root 操作是一种安全风险,所以在这个步骤中,我们将设置一个 sudo 非 root 用户帐户用于系统和其他计算任务。

要添加用户,类型:

1adduser sammy

使用下面的命令为用户指定一个强大的密码,您将被要求输入密码两次。

1passwd sammy

然后将用户添加到轮子组中,从而赋予它sudo特权。

1gpasswd -a sammy wheel

退出服务器并将 SSH 密钥添加到新用户帐户,在本地计算机上运行以下操作。

1ssh-copy-id sammy@your_server_ip

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

最后,作为新的 sudo 非 root 用户重新登录,您将不会被要求提供密码,因为这个帐户现在有 SSH 密钥。

1ssh sammy@your_server_ip

步骤 2 – 禁用根登录和密码身份验证

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

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

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

1sudo yum update

然后,安装nano,键入:

1sudo yum install -y nano

现在,打开 SSH daemon 的配置文件进行编辑。

1sudo nano /etc/ssh/sshd_config

在该文件中,寻找允许RootLogin指令. 删除它(即删除开始的#字符),并将其设置为 no

1PermitRootLogin no

同样,寻找密码验证指令,并将其设置为

1PasswordAuthentication no

保存和退出文件,然后重新加载配置以将您的更改执行。

1sudo systemctl reload sshd

如果现在有人试图作为 root 登录,那么答案应该是允许被拒绝(公钥,gssapi-keyex,gssapi-with-mic)

步骤 3 – 配置时区

在此步骤中,您将阅读如何将系统时钟更改为本地时区。

所有已知的时区都位于 /usr/share/zoneinfo/ 目录下,查看 /usr/share/zoneinfo/ 中的文件和目录。

1ls /usr/share/zoneinfo/

要将时钟设置为使用本地时区,请在该目录中查找您的国家或地理区域,在其下方查找区域文件,然后从该目录中创建一个象征性的软链接到/etc/localtime目录。

从区域文件中创建一个象征性的软链接到/etc/localtime

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

通过查看日期命令的输出来验证时钟现在已设置为本地时间。

1date

输出将看起来像:

1Wed Mar 25 14:41:20 CST 2015

该输出中的 CST 确认它是中央时间。

步骤4:启用防火墙

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

IPTables 包已安装,但要启用它,您需要安装iptables-services包。

1sudo yum install -y iptables-services

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

1sudo systemctl enable iptables

接下来,开始IPTables。

1sudo systemctl start iptables

在 Fedora 上,IPTables 配备了 21 艘默认规则,其中一个规则允许 SSH 流量。

1sudo iptables -L

输出应该读:

 1Chain INPUT (policy ACCEPT)
 2target prot opt source destination
 3ACCEPT all  --  anywhere anywhere state RELATED,ESTABLISHED
 4ACCEPT icmp --  anywhere anywhere
 5ACCEPT all  --  anywhere anywhere
 6ACCEPT tcp  --  anywhere anywhere state NEW tcp dpt:ssh
 7REJECT all  --  anywhere anywhere reject-with icmp-host-prohibited
 8
 9Chain FORWARD (policy ACCEPT)
10target prot opt source destination
11REJECT all  --  anywhere anywhere reject-with icmp-host-prohibited
12
13Chain OUTPUT (policy ACCEPT)
14target prot opt source destination

这些规则是运行时规则,如果系统重新启动,它们将丢失. 若要将当前的运行时规则保存到文件中,以便在重新启动后继续存在,请键入:

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

这些规则现在被保存到名为iptables的文件中,在/etc/sysconfig目录中。

步骤 5 (可选) — 允许 HTTP 和 HTTPS 流量

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

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

要继续,打开防火墙规则文件,键入:

1sudo nano /etc/sysconfig/iptables

您只需添加两个规则,一个为端口80和另一个为端口443,然后是SSH(端口22)流量规则。

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

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

1sudo systemctl restart iptables

步骤 6 (可选) - 安装 Mlocate

定位命令是一个非常有用的工具来搜索系统中的文件位置,例如,要找到一个名为 example的文件,你会键入:

1locate example

这将扫描文件系统,并在屏幕上打印文件的位置或位置。

要在您的服务器上提供该命令,您首先需要安装mlocate包。

1sudo yum install -y mlocate

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

1sudo updatedb

在此之后,您应该能够使用位置以根据名称查找任何文件。

结论

完成最后一步后,您的 Fedora 21 服务器应该配置,合理安全,并准备好使用!

Published At
Categories with 技术
comments powered by Disqus