应用场景:网页重定向:当数据包离开防火墙时更改数据包的目的地址和端口,不更改源地址和端口
1. 什么是iptables:
全称为 netfilter/iptables,简称iptables,是unix/linux自带的一款优秀且开源的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制,它实际上由两个组件netfilter和iptables组成,
- netfilter组件也称为内核空间(kernelspace),集成在内核中,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
- iptables组件只是一个工具,通过这个工具调用内核里的规则来过滤数据包,也称为用户空间,方便插入、删除、修改信息包过滤表中的规则。
三个层次:表->链->规则
四张表(table):filter、nat、mangle和raw(很少用)
五条链(chain):input(入),output(出)、forward(转发)、prerouting(路由前)、postrouting(路由后)
规则(policy):一条条过滤的语句,所有规则配置后立即生效,不需要重启服务
最常用的表是filter表和nat表,其中filter表是iptables默认的表,负责过滤流入流出主机的数据包,
filter表中用的最多的是input链,它负责过滤进入主机的数据包;forward链负责转发流经主机的数据包,起转发的作用;output链负责处理从主机发出去的数据包。
数据包处理简化流程:
2. iptables命令
可以使用命令 man iptables或iptables -h 查看相关说明:
查看iptables版本:
首先要切换到root:
查看表中内容:(不指定表默认操作filter表)-L:list -n:numerical
查看nat表中内容:(包含input链?)
清空所有规则:(两个命令都可以)
添加一条规则:禁止用户访问80端口(封端口)
-p:protocol协议 --dport:destination port目的端口 -A:Append在链的末尾插入规则 -I:Insert在链的开头插入规则
基本的处理行为:ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)
比较:DROP好于REJECT
删除一条规则:(还可以加序号然后指定序号删除)
以上操作都是在内存里面,没有写到文件,一重启就没了!!!