今天继续给大家介绍Linux基础知识,本文主要内容是Linux iptables防火墙相关知识。
一、iptables防火墙简介
在CentOS 7版本之前,系统自带防火墙一直是iptables,在CentOS 7版本之后,系统自带防火墙为firewalld,但是同样支持iptables。我们所说的iptables防火墙,其实包括两部分,一是netfilter内核空间,另一个是iptables用户空间。内核空间是内核的一部分,由一些信息过滤表组成,这些表包含了内核进行信息过滤处理的规则集。用户空间是针对管理员用户而言的,使其可以方便的配置防火墙的规则。
我们在配置iptables防火墙时,一定要注意:
iptables防火墙配制后立即生效,因此必须十分谨慎小心的配置iptables的过滤规则。如果是采取SSH远程链接的方式进行配置,最好先配置一条允许SSH链接的规则,否则一旦SSH链接被iptables防火墙禁止,后期就无法通过SSH链接进行远程控制取消了。
如下所示,一旦配置了iptables规则,该规则立即生效,SSH链接立即断开。
二、iptables“三表五链”详解
iptables为了方便管理员进行规则配置,使用了“表”和“链”的概念。链包含在表内,规则配置在链内。在进行数据包处理时,iptables防火墙会根据一定的次序,对各个表和链中的规则进行匹配处理。
在iptables防火墙中,默认情况下有三个表和五条链,简称三表五链。iptables三张表分别是filter表、nat表和mangel表。其中filter表的作用是过滤数据包,nat表的作用是进行NAT地址转换,mangle表的作用是修改数据包内容,做流量整形。其实,iptables还有raw表和security表,其中raw表的作用是处理异常,security表的作用是与安全相关。但是,由于security表和raw表不常用,因此大部分人还是将iptables表称为“三表”。
iptables的五条链如下:
①PREROUTING链——可以修改数据包的目的IP地址,常用于做DNAT。
②INPUT链——匹配目的IP是本机数据包的入口流量。
③FORWARD链——用于匹配流经本机的数据包。
④OUTPUT链——用于匹配出口数据包。
⑤POSTROUTING链——用于修改源IP地址,常用于做SNAT。
对于iptables三张表而言,filter表含有其中的INPUT链、FORWARD链和OUTPUT链;nat表含有其中的PREROUTING链(该链系CentOS 7添加,CentOS 6之前的版本没有)INPUT链、FORWARD链和OUTPUT链;mangle表含有其中的PREROUTING链(该链系CentOS 7添加,CentOS 6之前的版本没有)INPUT链、FORWARD链、OUTPUT链和POSTROUTING链。
注意,iptables严格区分大小写,表名一般是小写,链名一般是大写。
三、iptables包过滤流程
iptables转发流程如下图所示:
iptables数据包匹配优先级如下:
1、链间的匹配顺序:
流入数据包:PREROUTING——INPUT
流出数据包:OUTPUT——POSTROUTING
转发数据包:PREROUTING——FORWARD——POSTROUTING
2、表间的匹配顺序:
mangle——nat——filter
3、链内的匹配顺序:
(1)自上向下按顺序进行匹配,直至找到匹配的规则
(2)若在该链中找不到相对应匹配的规则,则按照该链的默认规则进行处理
(3)当表之间进行匹配时,如果前面表的匹配结果是丢弃或拒绝,则不会匹配后面的表,但是如果前面表的匹配结果是允许,则还需要匹配后面的表。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200