iptables

一、 什么是IPTABLES

  • Iptables是隔离主机以及网络的工具,通过自己设定的规则以及处理动作对数据报文进行检测以及处理。

二、IPTABLES发展

  • iptables的前身叫ipfirewall(内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。
  • 他们都是工作在用户空间中,定义规则的工具,本身并不算是防火墙。它们定义的规则,可以让在内核空间当中的netfilter来读取,并且实现让防火墙工作。而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做 netfilter.(网络过滤器)

三、Iptables原理

  1. linux的防火墙由netfilter和iptables组成
  2. 用户空间的iptables制定防火墙规则,内核空间的netfilter实现防火墙功能netfilter(内核空间)位于Linux内核中的包过滤防火墙功能体系,称为Linux防火墙的“内核态”
  3. iptables(用户空间)位于/sbin/iptables,是用来管理防火墙的命令的工具,为防火墙体系提供过滤规则/策略,决定如何过滤或处理到达防火墙主机的数据包,称为Linux防火墙的“用户态"

四、Iptables实现方式

Linux系统的防火墙功能是由内核实现的,包过滤防火墙工作在TCP/IP的网络层
内核空间的5个位置

五、 IPTABLES 详细语法

iptables—>表—>操作—>链—>条件匹配—>处理动作

1、表
filter表:确定是否放行该数据包(过滤)
nat表:修改数据包中的源、目标IP地址或端口
managle表:为数据包设置标记
raw表:确定是否对该数据包进行状态跟踪‘
2、五条链:
INPUT 本机进站的数据流 (路由前)
OUTPUT 本机出站的数据流 (数据包流入口)
FORWARD 路由的数据流 (转发管卡)
POSTROUTING 路由后的数据流(数据包出口)
PREROUTING 路由前的数据流 (路由后)
3、表跟链的对应关系:
filter: INPUT——OUTPUT——FORWARD
nat: OUTPUT——PREROUTING——POSTROUTING
mangle: INPUT——OUTPUT——FORWARD——PREROUTING——POSTROUTING

六、iptables操作命令
iptables
6.1、查看iptables命令
iptables
iptables
iptables
6.2插入iptables规则命令
iptables
6.3替换iptables规则命令
iptables
6.4删除iptables规则命令
iptables