介绍
为新服务器设置裸机最低配置后,在大多数情况下强烈建议执行一些其他步骤。在本指南中,我们将通过处理一些建议的但可选的过程来继续配置我们的服务器。先决条件和目标
开始之前本指南,您应该通过运行 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技嘉的文件中,我们可以创建位于一个交换文件
/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
- 在Rails和RVM上安装Ruby
- 安装Laravel,一个PHP框架
- 安装Puppet来管理您的基础架构