IT狗工作室

第1篇:Linux防火墙企业级应用案例

2020-02-16  本文已影响0人  铁甲万能狗

iptables是一个命令行防火墙实用程序,它使用策略链来允许或阻止流量。 当连接尝试在您的系统上建立自己的连接时,iptables会在其列表中查找与之匹配的规则。 如果找不到,则采取默认操作。

iptables几乎总是预装在任何Linux发行版上。 要更新/安装它,只需获取iptables软件包:

诸如Firestarter之类的iptables可以使用GUI替代,但是一旦您掌握了一些命令,iptables并没有那么难。 您在配置iptables规则时要格外小心,尤其是如果您通过SSH连接到服务器时,因为一个错误的命令会永久将您锁定,直到将其手动固定在物理计算机上为止。

有一种确保方法可以检查您的系统是否使用/需要FORWARD链。

iptables -L -v

Policy链默认行为

在继续并配置特定规则之前,您需要确定三个链的默认行为是什么。 换句话说,如果连接不符合任何现有规则,您希望iptables做什么?

要查看当前配置了哪些策略链以处理不匹配的流量,请运行iptables -L命令。

[root@fw yening]# sudo iptables -L | grep policy
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)

如您所见,我们还使用grep命令为我们提供了更清晰的输出。 在该屏幕截图中,我们的链目前被认为接受流量。

您希望系统默认接受连接的次数更多。 除非您之前更改了policy链规则,否则应该已经配置此设置。 无论哪种方式,以下都是默认情况下接受连接的命令:

iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT

通过默认接受规则,您可以使用iptables拒绝特定的IP地址或端口号,同时继续接受所有其他连接。 我们将在一分钟内处理这些命令。

如果您想拒绝所有连接并手动指定要允许连接的连接,则应更改要删除的链的默认策略。 这样做可能仅对包含敏感信息且仅具有相同IP地址的服务器有用。

特定连接的响应

配置了默认链策略后,您可以开始向iptables添加规则,以便它知道在遇到来自或指向特定IP地址或端口的连接时该如何操作。在本指南中,我们将回顾三个最基本、最常用的“回答”。

要显示这三个规则之间的差异,最好的方法是显示当PC尝试ping Linux机器(为每个设置配置了iptables)时是什么样子。

区分流量接口

很多初入门的新手在配置防火墙时,往往无法分辨什么时候配置INPUT链,在什么情况下配置OUTPUT链,我们用一个简单的示例:DNS服务器查询的流程


DNS服务器查询

这里DNS服务器的防火墙默认是禁止所有连接请求的。现在服务器需要向其他公共DNS发起连接请求,需要iptables为其开放udp的53端口。

上面的两条防火墙条目,我们不妨配置iptables后,并且执行dns查询后,使用如下命令测试

iptables -L INPUT-v

iptables -L OUTPUT -v

看看测试的结果是否如我们所料!,INPUT链中有数据包流量

[root@fw yening]# iptables -L INTPUT -v
Chain INPUT (policy ACCEPT 2527K packets, 3753M bytes)
 pkts bytes target     prot opt in     out     source               destination
 1258  261K ACCEPT     udp  --  any    any     anywhere             anywhere             udp spt:domain

OUTPUT链中的数据包流量

[root@fw yening]# iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 1918K packets, 136M bytes)
 pkts bytes target     prot opt in     out     source               destination
 3117  220K ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:domain

这里读者,应该举一反三,如果的Linux服务器还存在应用需要开放防火墙相关端口的话,如何快速查阅端口?
请使用linux的netstat -plntu这条指令能够查阅到你当前系统后台运行的所有进程的监听端口

上一篇 下一篇

猜你喜欢

热点阅读