Linux iptables防火墙详解(四)——配置实战

今天继续给大家介绍Linux基础知识,本文主要内容是Linux iptables防火墙配置实战。
阅读本文前,您需要对Linux iptables有一定的了解,如果您对此还存在困惑,欢迎查阅以下文章,相信您一定会有所收获!
Linux iptables防火墙详解(一)——iptables基础知识
Linux iptables防火墙详解(二)——iptables基本配置
Linux iptables防火墙详解(三)——iptables匹配条件

一、配置场景

假设目前主机设备上假设了web服务器,需要对外开放80和443端口,如果我们想使用iptables防火墙对系统中的web服务器进行保护,放行web服务相管关数据包,禁用其他数据包,则配置如下:

二、配置分析

目前的防火墙,为了安全起见,采用的是白名单配置的方式,会放行指定的数据包,同时禁止其他类型的数据包。如果我们要配置web服务器,为了使得服务正常,应该在filter表的INPUT链中进行相应配置,放行的数据包包括web服务的端口。同时,为了保证服务器的其他正常链接,我们还需要设置SSH的链接允许和状态为ESTABLISHED的状态数据包允许。之后,我们才可以将该链的默认策略改为禁止。
为什么要配置ESTABLISHED状态的规则呢?在一般情况下,我们都会对外网访问服务器的流量进行限制过滤,但是不会对服务器主动访问外网的流量进行检查和限制。iptables是典型的包过滤防火墙,但是我们可以通过配置state状态,来实现和状态检测防火墙同样的效果。现在假设我们不配置状态为ESTABLISHED的允许规则,那么当服务器向外发起TCP链接或者是ICMP数据包时,虽然iptables防火墙允许服务器向外发送数据包的,但是当外网对该数据包进行相应时,由于在INPUT链中没有配置相应的规则,所以按照默认策略禁止来对该数据包进行处理,所以,服务器与外界链接失效了。因此,在默认情况下,我们还需要配置一个允许状态为ESTABLISHED的规则。

三、配置命令

结合上述分析,我们在的iptables配置命令如下:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCPET
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

配置完成后,iptables防火墙如下:
Linux iptables防火墙详解(四)——配置实战_第1张图片

四、注意事项

1、在进行上述实验时,请严格按照上述顺序配置,iptables配置后立即生效,所以应该先放行SSH链接的数据包,否则可能由于配置的问题,导致SSH链接断开,无法通过SSH远程链接控制。
2、如果是使用Vmware虚拟机进行上述实验,则由于主机自身防火墙的原因,可能导致虚拟机无法PING通本地主机,因此在做实验时应当注意。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(Linux,linux,服务器,iptables,centOS,7)