目录
1.iptables
iptables是linux系统的防火墙软件,iptables通过命令告诉netfilter要禁止或者通过的包的规则,netfilter实现了linux内核包过滤。
2.规则链:
规则的作用在于对数据包进行过滤或者处理,根据处理时机不同,各种规则被组织在不同的链之中,规则链是防火墙规则的集合
五种默认规则链:
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
PREROUTING:在路由进行选择前处理数据包
POSTROUTING:在路由进行选择后处理数据包
3.规则表
具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链之后被规制到不同表中
规则表是规则链的集合
filter:确定是否放行该数据包,对应的规则链:input,forward、output
nat:修改包的源、目的ip地址或者端口,对应的规则链:prerouting、output、postrouting
managle:为数据包设置标记,对应的规则链:prerouting、input、output、forward、postrouting
raw:确定是否会该数据包进行追踪
不同的规则表之间有过滤等级,等级越高越先过滤,等级:raw>managle>nat>filter,默认是filter表
4.数据包过滤匹配的流程:
1.在数据包到路由器之前进行选择的时候,从raw到filter查看有没有关于prerouting的过滤规则,如果有就叫查看是什么规则,做出对应的动作
2.到达路由器之后,路由器会解析数据包看是否是访问主机的数据包,如果是就转交给INPUT,如果不是就转交给FORWARD流出
3.如果是访问本机的数据包,经过INPUT的数据链过滤,再交给主机。
5.防火墙的策略
防火墙策略一般分为两种,一种叫通策略,一种叫堵策略。通策略默认是管着的,必须要定义谁能金。堵策略是,大门是开的,你要有通行证才可以通信。
6.iptables命令:
iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION
-t:指定要维护的规则表,filter、nat、managle、raw
command:定义对规则表的操作
cretiria:匹配参数
action:动作
命令常用选项:
-A:在表尾追加规则
-D:删除防火墙规则
-I:在表的某个位置插入规则,默认是表头
-F:清楚防火墙规则
-L:查看防火墙规则
-R:替换防火墙规则
-Z:情况把数据表的统计信息
-P:设置链默认规则
常用匹配参数:
-p:匹配协议 proocol
-s:匹配源ip
-d:匹配目的ip
-i:匹配入站口
-o:匹配出站口
--sport:匹配源端口
--dport:匹配目的端口
--src-range:匹配源ip范围
--dst-range:匹配目标ip范围
--limit:匹配数据表速率
--sports:匹配多个源端口
--dports:匹配多个目的端口
常用的触发动作:
ACCEPT:接收数据包
DROP:直接丢弃数据包
REJECT:返回源ip,目的地不可到达
REDIRECT:重定向、映射、透明代理
SNAT:源地址转换
DNAT:目标地址转换
MASQUERADE:IP伪装(NAT)
LOG:日志记录
7.防火墙的备份与还原:
默认的防火墙规则在设置后会立即生效也会在重启后消失,所以对防火墙规则进行及时的保存是非常必要的。
iptables提供了iptables-save工具来保存和还原防火墙规则,在/etc/sysconfig/iptables中保存了默认的iptables规则,使用iptables-save将规则保存到该文件中,重启就不会丢失防火墙规则。当防火墙规则需要还原时,可以使用iptables-restore将备份文件直接导入当前防火墙规则。
iptables-save命令:
iptables-save > /etc/sysconfig/iptables:将iptables的规则保存到 /etc/sysconfig/iptables里面去
iptables-save > 文件名称
iptables-restore命令:
iptables-restore < 文件名称:将备份文件的防火墙规则传入到防火墙