介绍
在为新服务器设置最低配置后,在大多数情况下强烈建议执行一些额外的步骤。 在本指南中,我们将通过处理一些推荐但可选的过程来继续配置我们的服务器。
先决条件和目标
在开始本指南之前,您应该阅读 CentOS 7 初始服务器设置 指南。 这是设置您的用户帐户、使用 sudo
配置权限提升以及锁定 SSH 以确保安全的必要条件。
完成上述指南后,您可以继续阅读本文。 在本指南中,我们将重点介绍配置一些可选但推荐的组件。 这将涉及使用防火墙和交换文件设置我们的系统,以及配置网络时间协议同步。
配置基本防火墙
防火墙为您的服务器提供了基本的安全级别。 这些应用程序负责拒绝访问您服务器上每个端口的流量,但您批准的端口/服务除外。 CentOS 附带一个名为 firewalld
的防火墙。 一个名为 firewall-cmd
的工具可用于配置您的防火墙策略。 我们的基本策略将是锁定所有我们没有充分理由保持开放的事物。 首先安装firewalld
:
sudo yum install firewalld
firewalld
服务能够在不断开当前连接的情况下进行修改,因此我们可以在创建异常之前将其打开:
sudo systemctl start firewalld
现在服务已启动并运行,我们可以使用 firewall-cmd
实用程序来获取和设置防火墙的策略信息。 firewalld
应用程序使用“区域”的概念来标记网络上其他主机的可信度。 这种标签使我们能够根据我们对网络的信任程度分配不同的规则。
在本指南中,我们将仅调整默认区域的策略。 当我们重新加载防火墙时,这将是应用于我们接口的区域。 我们应该首先将例外添加到我们的防火墙以获取已批准的服务。 其中最重要的是 SSH,因为我们需要保留对服务器的远程管理访问权限。
如果您有 not 修改了运行 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 GB 的文件,我们可以通过键入以下命令创建一个位于 /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 月开始,根据文件系统内的已用空间量,快照的费用为每月每 GB 0.05 美元。
为此,请从命令行关闭您的服务器。 虽然可以对正在运行的系统进行快照,但关闭电源可确保磁盘上的文件都处于一致状态:
sudo poweroff
现在,在 DigitalOcean 控制面板中,您可以通过访问服务器的“快照”选项卡来拍摄快照:
拍摄快照后,您可以在创建过程中通过从“我的快照”选项卡中选择快照来将该映像用作未来安装的基础:
其他资源和后续步骤
从这里开始,您的路径完全取决于您希望对服务器执行的操作。 下面的指南列表绝不是详尽的,但代表了用户接下来转向的一些更常见的配置:
- 设置 LAMP(Linux、Apache、MySQL/MariaDB、PHP)堆栈
- 设置 LEMP(Linux、Nginx、MySQL/MariaDB、PHP)堆栈
- 安装 WordPress CMS
- 安装 Node.js
- 安装 Puppet 来管理您的基础架构
结论
至此,您应该知道如何为新服务器配置坚实的基础。 希望您对接下来的步骤也有一个好主意。 随意探索该站点以获取可以在服务器上实施的更多想法。