iptables 简介

iptables 的底层就是 Linux 内核中的 netfilter。

iptables 是 linux 内核中集成的“包过滤”防火墙,完全免费,合理配置可以完美替代昂贵的企业级防火墙,完成包过滤、重定向和 NAT 等功能。

从名字可以看出,ip tables :字面意思就是 IP 数据包的规则表 tables 的意思,包过滤。

需要注意的是,在大并发网站的设计中,建议关闭 iptables,使用硬件防火墙。

iptables netfilter 以及 firewall 之间的关系:

CentOS 7 中 iptables 和 Firewall 的关系:

iptables用于过滤数据包,属于网络层防火墙.

firewall能够允许哪些服务可用,哪些端口可用…. 属于更高一层的防火墙。

firewall的底层是使用iptables进行数据过滤,建立在iptables之上

 

iptables 四表五链:

四表:mangle、nat、filter、raw

五链:input、output、prerouting、forward、postrouting

 

iptables 容器关系:

iptables/Netfilter 是表 (Tables)的容器,iptables包括四个表:MANGLE、NAT、FILTER、RAW

iptables 的表是“链 (Chains)” 的容器,链包括:INPUT、OUTPUT、PREROUTING、FORWARD、POSTROUTING

” 是规则策略 (policy)”的容器:例如, 开放本机 80 端口的规则用法:iptables -I INPUT -p tcp --dport 80 -j ACCEPT

 

iptables 语法规则:

iptables  [-t tablename] option [chainname] rule [-j active]

例如,阻止别人 ping 的规则:iptables -t filter -I INPUT -p icmp -j REJECT

-t:指定表,不指定默认 FILTER 表,-I(I,insert;D,delete,A,add):指定链,不指定默认指表内所有链

1. 防火墙是层层过滤的,按照配置规则的顺序从上到下,从前到后进行过滤的;

2. 只要匹配上规则,即明确表明是阻止还是允许,数据包就不再向下匹配下面的规则

3. 如果规则表中没有明确阻止还是允许,也就是没有匹配规则,直到匹配到默认规则;

4. 防火墙默认规则是所有指定规则执行完以后没有匹配上,默认规则才会执行。

建议大家开始学习使用 iptables 时按照语法使用,这样容易理解,熟练以后可以自行决定(大佬请忽略这句废话)。

iptables 默认的表、链结构。没错,看着让人害怕,不过没关系,仔细看,有标红的,这才是实际工作中用到的。

可以看出 NAT 表FILTER 表是标红的,也就是说,在实际工作中,常用的也就是这两个表,MANGLE 表很少用,而 RAW 表几乎可以忽略,没有人使用。

 

 iptables 表和链的工作流程图:

去掉 RAW 表以后简化为:

前边说好了,只用NAT 和 FILTER 两个表,那么,最小化原则,就变成这样的了:

 

本节并没有介绍 iptables 的具体用法,只是简单介绍了 iptables 的基本原理以及语法规则,后续介绍 iptables 用法。

查看 iptables 规则:iptables -L -n

posted @ 2019-07-11 10:26  _liuxg  阅读(438)  评论(0编辑  收藏  举报