引言

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

先决条件和目标

在你开始这个指南之前,你应该运行 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 网络服务器,你需要允许访问端口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 存储的提供者上启用交换。 这样做可能会影响您和邻居的底层硬件的可靠性。 如果您需要改进您的服务器的性能,我们建议升级您的液滴。 这将导致更好的总体结果,并将减少可能影响您的服务的硬件问题的可能性。

关于交换空间的最佳大小的建议根据所咨询的来源有很大的不同。 一般来说,等于或者是系统上 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月开始,根据文件系统内的利用空间总量,快照的成本为每月每 gb 0.05美元。

若要准备快照,请从命令行关闭服务器。 虽然可以对正在运行的系统进行快照,但关闭电源可以更好地保证文件系统的一致性:

sudo poweroff

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

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

额外资源和下一步

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

  • 设置 LAMP (Linux、 Apache、 mysql / mariadb、 PHP)堆栈
  • 设置 LEMP (Linux,Nginx,mysql / mariadb,PHP)堆栈
  • 在 Apache HTTP Server 上安装 WordPress CMS
  • 在 Nginx 网络服务器上安装 WordPress CMS
  • 在 Apache HTTP Server 上安装 Drupal CMS
  • 安装 Node.js
  • 安装 Ruby on Rails 和 RVM
  • 安装 Laravel,一个 PHP 框架
  • 安装 Puppet 来管理您的基础结构

总结

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