引言

在为新服务器设置最低配置之后,在大多数情况下强烈推荐一些附加步骤。 在本指南中,我们将通过处理一些推荐的但是可选的过程来继续我们服务器的配置。

先决条件和目标

在开始本指南之前,您应该运行 CentOS 7初始服务器设置指南。 这对于设置用户帐户、使用 sudo 配置权限提升和锁定 SSH 以确保安全性是必要的。

一旦你完成了上面的指南,你可以继续这篇文章。 在本指南中,我们将重点讨论一些可选但推荐的组件的配置。 这将包括用防火墙和交换文件设置系统,以及配置网络时间协议同步。

配置基本防火墙

防火墙为服务器提供了基本的安全级别。 这些应用程序负责拒绝服务器上的每个端口的通信,您已批准的端口 / 服务除外。 提供一个称为 firewalld 的防火墙。 可以使用一个名为 firewall-cmd 的工具来配置防火墙策略。 我们的基本策略将是锁定所有我们没有充分理由保持开放的东西。 首先安装 firewalld:

  • sudo yum install firewalld

Firewalld 服务可以在不删除当前连接的情况下进行修改,因此我们可以在创建异常之前打开它:

  • sudo systemctl start firewalld

现在服务已经启动并运行,我们可以使用 firewall-cmd 实用程序获取和设置防火墙的策略信息。 Firewalld 应用程序使用“ zone”的概念来标记网络上其他主机的可靠性。 这种标签使我们能够根据我们对一个网络的信任程度分配不同的规则。

在本指南中,我们将只调整默认区域的策略。 当我们重新加载防火墙时,这将是应用于接口的区域。 我们应该首先在我们的防火墙中为已批准的服务添加异常。 其中最基本的是 SSH,因为我们需要保留对服务器的远程管理访问。

如果你没有修改 SSH 守护进程运行的端口,你可以通过输入以下命名来启用服务:

  • sudo firewall-cmd --permanent --add-service=ssh

如果更改了服务器的 SSH 端口,则必须显式指定新端口。 您还需要包括服务使用的协议。 如果你的 SSH 服务器已经被重新启动来使用新的端口,只需输入以下命令:

  • sudo firewall-cmd --permanent --remove-service=ssh
  • sudo firewall-cmd --permanent --add-port=4444/tcp

这是保持对服务器的管理访问所需的最低限度。 如果您计划运行其他服务,您还需要为这些服务打开防火墙。

如果你计划运行一个传统的 HTTP web 服务器,你需要启用 HTTP 服务:

  • sudo firewall-cmd --permanent --add-service=http

如果你计划在启用 ssl / tls 的情况下运行一个 web 服务器,你也应该允许 https 的流量:

  • sudo firewall-cmd --permanent --add-service=https

如果你需要启用 SMTP 邮件,你可以输入:

  • sudo firewall-cmd --permanent --add-service=smtp

要查看任何可以通过名称启用的附加服务,输入:

  • sudo firewall-cmd --get-services

当你完成后,你可以通过输入以下命令来查看将要实现的异常列表:

  • sudo firewall-cmd --permanent --list-all

当你准备好执行更改时,重新加载防火墙:

  • sudo firewall-cmd --reload

如果经过测试,一切正常,你应该确保防火墙在启动时启动:

  • sudo systemctl enable firewalld

请记住,对于以后可能配置的任何其他服务,您必须显式地打开防火墙(使用服务或端口)。

配置时区和网络时间协议同步

下一步是调整服务器的本地化设置并配置网络时间协议(NTP)同步。

第一步将确保您的服务器在正确的时区内运行。 第二步将配置系统,使其系统时钟与 NTP 服务器全球网络维护的标准时间同步。 这将有助于防止由于时钟不同步而导致的一些不一致的行为。

配置时区

我们的第一步是设置服务器的时区。 这是一个非常简单的过程,可以使用 timedatectl 命令来完成:

首先,输入以下命令查看可用的时区:

  • sudo timedatectl list-timezones

这将为您提供服务器可用的时区列表。 当你找到适合你的服务器的区域 / 时区设置时,输入:

  • sudo timedatectl set-timezone region/timezone

例如,要将其设置为美国东部时间,您可以输入:

  • sudo timedatectl set-timezone America/New_York

您的系统将被更新为使用选定的时区。您可以通过输入以下命令来确认:

  • sudo timedatectl

配置 NTP 同步

现在您已经设置了时区,我们应该配置 NTP。 这将允许您的计算机与其他服务器保持同步,从而提高依赖于正确时间的操作的可预测性。

对于 NTP 同步,我们将使用一个名为 NTP 的服务,我们可以从 CentOS 的默认存储库中安装这个服务:

  • sudo yum install ntp

接下来,您需要启动这个会话的服务。 我们还将启用该服务,以便在每次服务器引导时自动启动:

  • sudo systemctl start ntpd
  • sudo systemctl enable ntpd

您的服务器现在将自动更正其系统时钟,以便与全局服务器保持一致。

创建交换文件

向 Linux 服务器添加“交换”允许系统将正在运行的程序中访问频率较低的信息从 RAM 移动到磁盘上的某个位置。 访问存储在磁盘上的数据要比访问 RAM 慢得多,但是拥有交换可用性通常会决定应用程序是否能够继续运行和崩溃。 如果您计划在系统上托管任何数据库,这尤其有用。

关于交换空间的最佳大小的建议根据所咨询的来源有很大的不同。 一般来说,等于或者是系统上 RAM 数量的两倍是一个很好的起点。

使用 fallocate 实用程序为您的交换文件分配要使用的空间。 例如,如果我们需要一个4 g 的文件,我们可以在 / swapfile 中创建一个交换文件,输入:

  • sudo fallocate -l 4G /swapfile

在创建文件之后,我们需要限制对文件的访问,这样其他用户或进程就看不到文件中写了什么:

  • sudo chmod 600 /swapfile

我们现在有了一个具有正确权限的文件。 要告诉我们的系统格式化交换文件,我们可以输入:

  • sudo mkswap /swapfile

现在,告诉系统它可以使用交换文件,输入:

  • sudo swapon /swapfile

我们的系统正在为这个会话使用交换文件,但是我们需要修改一个系统文件,以便我们的服务器在引导时自动完成这一操作。 你可以通过输入:

  • sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

有了这个附加,您的系统应该在每次引导时自动使用您的交换文件。

从这里到哪里?

现在您已经有了一个非常好的 Linux 服务器初始设置。 从这里开始,你可以去很多地方。 首先,您可能希望在服务器的当前配置中对其进行快照。

获取当前配置的快照

如果你对自己的配置感到满意,并希望以此作为未来安装的基础,你可以通过 DigitalOcean 控制面板拍摄服务器的快照。 从2016年10月开始,根据文件系统内的利用空间总量,快照的成本为每千兆字节每月0.05美元。

要做到这一点,请从命令行关闭服务器。 虽然可以对运行中的系统进行快照,但关闭电源可以确保磁盘上的文件处于一致的状态:

  • sudo poweroff

现在,在 DigitalOcean 控制面板中,你可以通过访问服务器的“快照”标签来获取快照:

在拍摄完快照后,你可以在「我的快照」选项卡中选取快照作为日后安装的基础,以便在创建过程中使用:

额外资源和下一步

从这里开始,您的路径完全取决于您希望对服务器做什么。 下面的指南列表并不是详尽无遗的,但是列出了一些用户接下来会使用的常见配置:

  • 设置 LAMP (Linux、 Apache、 mysql / mariadb、 PHP)堆栈
  • 设置 LEMP (Linux,Nginx,mysql / mariadb,PHP)堆栈
  • 安装 WordPress CMS
  • 安装 Node.js
  • 安装 Puppet 来管理您的基础结构

总结

现在,您应该知道如何为新服务器配置坚实的基础。 希望你对下一步也有一个好主意。 请随意浏览该网站,以获得更多可以在服务器上实现的想法。