网络服务器的 iptables

网络服务器的 iptables

我一直在我的专用机器上托管几个网站。操作系统是 CentOS 5.6。到目前为止,我一直在关闭 iptables,因为它会阻止所有网络流量。但是,我发现这并不好,我应该启用防火墙。不幸的是,我不知道该怎么做,所以我在这里询问我的服务器应该制定什么好的规则。我当然有很多进出的流量。

我在服务器上运行了一些程序 - DirectAdmin - Apache - php - mysql - ftp - dns - 其他 directadmin 工具(如邮件等)。

它几乎是 DirectAdmin 1.39.1 的预装版本。

答案1

您需要决定要打开哪些端口,然后允许通过该端口的适当协议进行访问。我给您举个例子来帮助您入门:

要打开 SSH(这是你要做的第一件事,这样你就不会把自己锁在外面),你可以这样做

iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j ACCEPT

在此示例中,-s 表示源。您可以将 0.0.0.0/0 更改为要允许连接源自的地址或子网。这通常在 SSH 上执行是个好主意,但在 HTTP/HTTPS 流量上不适用,因为您希望每个人都能到达那里。

之后,您需要更改默认传入策略以删除任何不符合规则的内容。

iptables -A INPUT -j DROP

如果你不熟悉哪些服务在哪个端口上运行,你应该查看维基百科文章。

答案2

您应该阅读 iptables 手册页并熟悉命令格式,以便生成一个合适的规则表。

首先,您应该执行 conntrack 状态匹配以确保所有流量都是有效连接流的一部分,并丢弃其他所有内容。

要真正编写好的 iptables 规则,您必须首先了解 iptables 使您能够做什么;您将使用的主要东西是 -m conntrack,但这实际上取决于您想如何锁定事物......它确实可以让您做任何事情;从限制 ICMP 速率到阻止快速连接尝试。

答案3

由于您的服务器中安装了 Directadmin,因此您可以安装 CSF(ConfigServer Security & Firewall),它将包含 Directadmin 的插件,以便您可以从管理面板内部管理防火墙。如果您不熟悉 iptable 防火墙以及一系列高级选项,它将非常方便。

http://configserver.com/cp/csf.html

相关内容