iptables防火墙工作原理及简单配置访问策略

iptables只是管理包过滤规则的工具,可以添加或删除包过滤的规则,真正执行包过滤规则的是netfilter


netfilter是Linux核心中的一个通用架构,内部提供一些列的表,每个表由若干条链组成,每条链由一条或多条规则组成,也就是我们常说的四表五链


四表


filter表        负责包过滤

nat表          负责网络地址转换

mangle表    负责包的重构

raw表          负责数据跟踪处理

五链


INPUT链        负责进来的数据包的规则

OUTPUT链        负责外出的数据包的规则

FORWARD链        负责转发时的规则

PREROUTING链        负责路由前的规则,也就是数据包进来的时候处理

POSTROUTING链        负责路由后的规则,也就是数据包出来的时候再处理

iptables工作原理

当数据包进入系统时,系统首先会根据路由表决定将数据包发给哪一条链,常见的情况有3种


第1种,入站的数据包


       从外界到达防火墙的数据包先被PREROUTING链处理,再经过INPUT链


               如果匹配到规则,就发给相应的本地进程处理


               如果没匹配到规则,就丢弃这个数据包


第2种,转发的数据包


       从外界到达防火墙的数据包先走PREROUTING链,再走FORWARD链,最后再交给POSTROUTING链,匹配到规则就处理,匹配不到则丢弃


第3种,出站的数据包


       防火墙本机向外部发送的数据包先走OUTPUT链,之后交给POSTROUTING链处理


防火墙配置

iptables -t 表名 -vnL        -- 查看防火墙规则


-t    指定表名(默认filter表)

-v    详细信息

-n    ip以数字形式展示

-L    列表形式

iptables -t 表名 -操作 链名 -对象 (协议 端口 源/目ip) -j 动作


操作:


-A    添加规则

-I    插入规则

-D    删除规则

对象:


-s    源ip

-d    目标ip

-sport    源端口

-dport    目标端口

动作:


ACCEPT    接受

REJECT    拒绝

DROP    丢弃

SNAT    源地址转换

DNAT    目标地址转换


上一篇:IPTABLES防火墙管理(filter)


下一篇:笔记:Linux C语言编程基本原理与实践