介绍
在为新服务器设置最低配置后,在大多数情况下强烈建议执行一些额外的步骤。 在本指南中,我们将通过处理一些推荐但可选的过程来继续配置我们的服务器。
先决条件和目标
在开始本指南之前,您应该阅读 Ubuntu 14.04 初始服务器设置 指南。 这是设置您的用户帐户、使用 sudo
配置权限提升以及锁定 SSH 以确保安全的必要条件。
完成上述指南后,您可以继续阅读本文。 在本指南中,我们将重点介绍配置一些可选但推荐的组件。 这将涉及为我们的系统设置防火墙、网络时间协议同步和交换文件。
配置基本防火墙
防火墙为您的服务器提供了基本的安全级别。 这些应用程序负责拒绝访问您服务器上每个端口的流量,但您批准的端口/服务除外。 Ubuntu 附带一个名为 ufw
的工具,可用于配置您的防火墙策略。 我们的基本策略将是锁定所有我们没有充分理由保持开放的事物。
在启用或重新加载防火墙之前,我们将创建定义策略例外的规则。 首先,我们需要为 SSH 连接创建一个例外,以便我们可以维护远程管理的访问权限。
SSH 守护进程默认在端口 22 上运行,如果默认值没有更改,ufw
可以通过名称实现规则。 因此,如果您有 not 修改的 SSH 端口,您可以通过键入以下命令启用异常:
sudo ufw allow ssh
如果您修改了 SSH 守护程序正在侦听的端口,则必须通过指定实际端口号以及 TCP 协议来允许它:
sudo ufw allow 4444/tcp
这是最低限度的防火墙配置。 它将只允许您的 SSH 端口上的流量,并且所有其他服务都将无法访问。 如果您计划运行其他服务,则需要在所需的每个端口上打开防火墙。
如果您计划运行传统的 HTTP Web 服务器,则需要允许访问端口 80:
sudo ufw allow 80/tcp
如果您计划在启用 SSL/TLS 的情况下运行 Web 服务器,则还应允许到该端口的流量:
sudo ufw allow 443/tcp
如果您需要启用 SMTP 电子邮件,则需要打开端口 25:
sudo ufw allow 25/tcp
添加完例外后,您可以通过键入以下内容来查看您的选择:
sudo ufw show added
如果一切正常,您可以通过键入以下命令启用防火墙:
sudo ufw enable
系统将要求您确认您的选择,因此如果您想继续,请输入“y”。 这将应用您所做的例外,阻止所有其他流量,并将您的防火墙配置为在启动时自动启动。
请记住,您必须为以后可能配置的任何其他服务显式打开端口。 有关更深入的信息,请查看我们关于 配置 ufw 防火墙 的文章。
配置时区和网络时间协议同步
下一步是为您的服务器设置本地化设置并配置网络时间协议 (NTP) 同步。
第一步将确保您的服务器在正确的时区下运行。 第二步将配置您的系统,使其系统时钟与全球 NTP 服务器网络维护的标准时间同步。 这将有助于防止因时钟不同步而导致的一些不一致行为。
配置时区
我们的第一步是设置我们服务器的时区。 这是一个非常简单的过程,可以通过重新配置 tzdata
包来完成:
sudo dpkg-reconfigure tzdata
您将看到一个菜单系统,允许您选择服务器的地理区域:
选择区域后,您将能够选择适合您服务器的特定时区:
您的系统将更新为使用选定的时区,结果将打印到屏幕上:
Current default time zone: 'America/New_York' Local time is now: Mon Nov 3 17:00:11 EST 2014. Universal Time is now: Mon Nov 3 22:00:11 UTC 2014.
接下来,我们将继续配置 NTP。
配置 NTP 同步
现在您已经设置了时区,我们应该配置 NTP。 这将使您的计算机与其他服务器保持同步,从而提高依赖于正确时间的操作的可预测性。
对于 NTP 同步,我们将使用一个名为 ntp
的服务,我们可以从 Ubuntu 的默认存储库安装它:
sudo apt-get update sudo apt-get install ntp
这就是在 Ubuntu 上设置 NTP 同步所需要做的一切。 守护程序将在每次启动时自动启动,并将全天不断调整系统时间以与全球 NTP 服务器保持一致。
如果您想了解有关 NTP 服务器 的更多信息,请单击此处。
创建交换文件
向 Linux 服务器添加“交换”允许系统将运行程序的不经常访问的信息从 RAM 移动到磁盘上的某个位置。 访问存储在磁盘上的数据比访问 RAM 慢得多,但是交换可用通常是应用程序保持活动和崩溃之间的区别。 如果您计划在系统上托管任何数据库,这将特别有用。
笔记
尽管对于使用传统旋转硬盘的系统通常建议使用交换,但使用 SSD 交换可能会导致硬件随着时间的推移而退化。 出于这一考虑,我们不建议在 DigitalOcean 或任何其他使用 SSD 存储的提供商上启用交换。 这样做会影响您和您的邻居的底层硬件的可靠性。
如果您需要提高服务器的性能,我们建议升级您的 Droplet。 这通常会带来更好的结果,并会降低导致可能影响服务的硬件问题的可能性。
关于交换空间的最佳大小的建议因所咨询的来源而异。 通常,等于或两倍于系统上的 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)堆栈
- 在 Apache Web 服务器上安装 WordPress CMS
- 在 Nginx Web 服务器上安装 WordPress CMS
- 在 Apache Web 服务器上安装 Drupal CMS
- 安装 Node.js
- 安装 Ruby on Rails 和 RVM
- 安装 Laravel,一个 PHP 框架
- 安装 Puppet 来管理您的基础架构
结论
至此,您应该知道如何为新服务器配置坚实的基础。 希望您对接下来的步骤也有一个好主意。 随意探索该站点以获取可以在服务器上实施的更多想法。