新 Ubuntu 14.04 服务器的其他推荐步骤
介绍
在为新服务器设置最低配置后,在大多数情况下强烈建议执行一些额外的步骤。在本指南中,我们将通过处理一些推荐但可选的过程来继续配置我们的服务器。
先决条件和目标
在开始本指南之前,您应该浏览 Ubuntu 14.04 初始服务器设置指南。这是设置您的用户帐户、使用 sudo
配置权限提升以及锁定 SSH 以确保安全所必需的。
完成上述指南后,您可以继续阅读本文。在本指南中,我们将专注于配置一些可选但推荐的组件。这将涉及使用防火墙、网络时间协议同步和交换文件设置我们的系统。
配置基本防火墙
防火墙为您的服务器提供基本级别的安全保护。这些应用程序负责拒绝流量到您服务器上的每个端口,但您已批准的端口/服务除外。 Ubuntu 附带一个名为 ufw
的工具,可用于配置防火墙策略。我们的基本策略是锁定所有我们没有充分理由保持开放的东西。
在我们启用或重新加载我们的防火墙之前,我们将创建定义我们策略例外的规则。首先,我们需要为 SSH 连接创建一个例外,以便我们可以保持远程管理的访问权限。
SSH 守护进程默认在端口 22 上运行,如果没有更改默认值,ufw
可以按名称实施规则。因此,如果您没有修改 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 网络服务器上安装 WordPress CMS
- 在 Nginx 网络服务器上安装 WordPress CMS
- 在 Apache 网络服务器上安装 Drupal CMS
- 安装 Node.js
- 安装 Ruby on Rails 和 RVM
- 安装 PHP 框架 Laravel
- 安装 Puppet 来管理您的基础架构
结论
至此,您应该知道如何为您的新服务器配置坚实的基础。希望您对接下来的步骤也有一个好主意。随意浏览该站点以获取可以在服务器上实现的更多想法。