1、Iptables简介
1.1 Iptables的介绍
iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。
TCP/IP协议栈必须经过、可以实现读取规则的地方叫做netfilter(网络过滤器)。
Iptables在内核中一共有5个位置:
1、内核空间中:从一个网络接口中进来,到另一个网络接口中
2、数据包从内核流入用户空间的
3、数据包从用户空间流出的
4、进入/离开本机的外网接口
5、进入/离开本机的内网接口
1.2 Iptables的工作机制
上面5个位置对应5个钩子函数,也叫做5个规则链:
1、 PREROUTING(路由前)
2、 INPUT(数据包流入口)
3、 FORWARD(转发)
4、 OUTPUT(数据包出口)
5、 POSTROUTING(路由后)
如上是NetFilter的5个规则链,任何一个数据包,只要经过本机,必须经过这5个链中的其中一个链。
1.3防火墙的策略
防火墙策略一般分为两种,一种是“通”策略,一种是“堵”策略,通策略默认门是关着的,必须定义谁能进,堵策略是,大门是洞开的,但是你必须有身份认证,否则不能进。
我们用的比较多的功能有3个:
1、 filter定义允许或者不允许的
2、 nat定义地址转换的
3、 manage功能:修改报文原数据
对于filter,只能用于3个规则链:INPUT、FORWARD、OUTPUT
对于nat,只能用于:PREROUTING、OUTPUT、POSTROUTING
而manage 5个规则链都可以:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
Iptables/netfilter 是工作在用户空间的。Iptables被做成一个服务,启动服务:使过滤规则生效,停止服务:将规则撤销。