您以前可能听说过防火墙。它们是您可以实施的最有效但最不为人知的安全措施类型之一。虽然它们是相当复杂的软件,但了解它们的工作原理以及如何设置它们仍然很有用。
简而言之,如果您知道如何发现它们,防火墙可以阻止与您的站点的不需要的连接。在当今世界,站点不断受到攻击,防火墙可能是您抵御入侵的最佳防御之一。
在本文中,我们将解释什么是防火墙以及您可能需要防火墙的原因。然后,我们将教您如何为您的站点实施两种类型的防火墙。让我们把舱口盖上!
防火墙简介(以及您可能需要防火墙的原因)
尽管名称很花哨,但防火墙基本上是一种软件,可以阻止对您的服务器的不必要访问,同时仍使其能够像往常一样工作。几乎每个运营网站的人都需要它,并且有很多好处:
- 您可以有选择地阻止访问。阻止您的服务器并不意味着没有人可以访问它。事实上,您可以将防火墙配置为仅授予少数特定用户(由他们的IP 地址标识)访问权限。
- 它们最大限度地减少了对您的网站进行攻击的机会。大多数服务器存储某种敏感信息,包括文档、电子邮件地址和密码。当然,很多数据都是加密的——但您仍然不希望手表上有任何泄漏。
- 它们相对容易设置。许多托管服务提供商和内容管理系统 (CMS) 都包含设置特定类型防火墙的选项。
考虑到这一点,让我们谈谈如何实现两种最常见的防火墙类型,以及它们是如何工作的。
2种实现服务器防火墙的方法
防火墙有很多可用的选项,但今天我们将重点介绍最容易实现的两个:高级策略防火墙和基于 IP 表的防火墙。请记住,虽然支持这两种类型的防火墙,但您需要root访问权限才能实施它们。这意味着它们仅适用于虚拟专用服务器 ( VPS ) 和专用服务器。
1. 使用 IP 表配置防火墙
IP 表使您能够授予或拒绝对特定服务和 IP 地址的访问。这使您可以完全控制进出服务器的所有内容,包括传输控制协议 (TCP)和安全外壳 (SSH)连接。简而言之,它将适合那些喜欢使用命令行的人。
如果您在 VPS 或专用服务器上,您应该可以访问iptables程序,这是大多数 Linux 发行版默认提供的。您需要做的第一件事是通过在控制台上键入以下命令来检查默认情况下它没有设置任何规则:
iptables -L
这将返回三组规则或链——每个用于传入、传出和转发数据包,并且所有这些都应包含读取policy ACCEPT的行。要将新规则添加到特定链,您需要使用以下命令:
iptables -A INPUT -p tcp -m tcp --dport 7822 -j ACCEPT
这可以通过 SSH 常用的端口 7822 启用传入 TCP 连接。不用担心,我们会在一分钟内将您链接到包含有关您需要了解的所有命令的信息的资源。现在,让我们添加另一个规则,该规则将启用通过端口 80 (HTTP)的传入 TCP 连接:
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
请记住,端口 80 最常用于服务器传输信息,因为 HTTP 协议仍然很流行。但是,如果您为您的站点设置了安全套接字层证书 (SSL),您还需要启用通过端口 443(这是 HTTPS 的默认设置)进行访问。这是如何做到的:
iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
很简单,对吧?现在,如果您想阻止特定 IP 地址访问您的服务器,只需要另一个iptables命令。例如:
iptables -I INPUT rulenum -s 'IP address goes here' -j DROP
DROP规则将指示您的服务器阻止来自特定 IP 地址的所有类型的连接。
现在您已经掌握了iptables的基础知识,我们建议您查看我们的知识库,了解更多可以与程序一起使用的命令(以及如何保存和删除规则)。
2. 安装高级策略防火墙
如果您不是命令行的忠实拥护者,高级策略防火墙 (APF) 是一种替代方案,可让您使用简单的文本编辑器配置防火墙。但是,您还需要使用一个特定的程序,并且大多数 Linux 发行版默认不包含这个程序(与iptables不同)。
正如您可能想象的那样,您需要使用命令行来设置它,但过程相当简单。只需按照这些说明进行操作,完成后,您就可以通过访问以下文件来配置防火墙:
/etc/apf/conf.apf
使用哪个文本编辑器的选择权在您手中,但过程保持不变。只需选择您最喜欢的一个并用它打开该文件。例如,如果您是Vim 用户,您将使用以下命令:
vi /etc/apf/conf.apf
进入后,您会想要找到以下几行:
SET_MONOKERN="0"
HELPER_SSH_PORT="22"
IG_TCP_CPORTS="22"
这些只是默认值,但您需要替换它们以使防火墙有效。例如,将SET_MONOKERN的值更改为1将使程序能够安装到内核中,而不是作为包安装,这是它工作所必需的。
继续前进,您还需要将HELPER_SSH_PORT的值更改为 7822,这是 SSH 连接的默认值,您可能还记得上一节。
最后,将要启用的 TCP 端口添加到最后一行的值中。例如:
IG_TCP_CPORTS="80, 7822, 443"
这将分别启用通过 HTTP、SSH 和 HTTPS 的连接。最后,将更改保存到conf.apf文件并使用以下命令启动 APF 程序:
apf --start
现在你都准备好了。有关如何配置高级策略防火墙的更多信息,请查看我们的知识库,其中包括更多示例和指南。
服务器防火墙结论
实施防火墙是阻止对您的站点和本地计算机的攻击的最有效方法之一。就网站而言,即使您不知道,您的网站也有可能受到攻击。这就是为什么您需要学习如何以各种可能的方式保护您的安全。