一、iptables
用户空间的iptables + 内核空间的netfilter
iptables实现的是2-4层防火墙功能,7层需要重编内核
1.1 firewall
firewall-cmd --help
1.2 iptables
信息查看
-L 列出所有链的规则
-n 将地址和端口以数字形式展示
-v 显示更多信息
--line-numbers 列出信息的时候将编号输出
-S 打印出所有规则
保存规则 iptables-save > iptables_file
清除规则 iptables -D 链名 规则编号|规则样式
清除所有 -Z 计数器 -X 自定义链的删除 -F 所有链中的规则
恢复规则 1.iptables-restore 2.重启服务
更改规则 iptables -P 链名 target动作
target动作 ACCEPT 允许数据包通过 DROP 禁止数据包通过 REJECT 拒绝数据包通过
1.3 规则
存在链中,对接收到的数据包进行匹配获取,并对匹配到的数据包进行处理
规则命令: iptables [-t 表] -子命令 <链> <规则策略> 选项
处理动作:
默认动作(man iptables):ACCEPT DROP RETURN
扩展动作(man iptables-extensions): SNAT REJECT..
1.4 规则实践
追加规则
iptables -A 链名 [匹配条件] [参数]
iptables -A INPUT -s 192.168.9.15 -j DROP
插入规则
iptables -I 链名 位置 [匹配条件] [参数]
iptables -I INPUT 2 -s 192.168.9.15 -j DROP
删除规则
-D 链名 编号|匹配条件
iptables -D INPUT 2
iptables -D INPUT -s 192.168.9.15 -j DROP
更改规则
-R 链名 编号 [匹配条件] [参数]
iptables -R INPUT 1 -s 192.168.9.15 -j DROP
二、五表五链
2.1 链
将对数据包的操作规则存放起来
默认的链:INPUT FORWARD OUTPUT
五链:PREROOUTING 对输入的数据包进行预处理
INPUT 数据包本机处理
FORWARD 数据包本机转发
OUTPUT 数据包本机发出
POSTROUTING 对输出的数据包进行预处理
链的关系:本机处理 PREROUTING INPUT
本机转发 PREROUTING FORWARD POSTROUTING
本机响应 OUTPUT POSTROUTING
2.2 链实践
原则:对于某个链中的多规则,是按照从上到下的顺序来对数据包进行操作的
如果多个数据包规则出现内容部分重复,强烈注意规则的先后顺序
-N 创建自定义链 iptables -N 链名
-X 清除自定义链
-E 自定义链改名
2.3 五表
将不同的链组合在一起实现不同特务场景下的功能
它是由netfilter模块在内存中维护的几个空间
不同的表可以存在相同的链,这些链针对的对象是不一样的
security表 mac INPUT OUTPUT FORWARD
filter 数据包过滤 默认的,最重要 I O F
NAT表 网络地址转换 I O PREROUTING POSTROUTING
mangle表 数据包拆修封,自定义 I O F P P
raw表 特殊的nat表 PREROUTING OUTPUT
2.4 表实践
表信息查看 iptables -t 表名 -vnL
2.5 表链关系
表中链、链中表
表优先级、链优先级
规则变现:1.定方向 表和链 2.定顺序 链中的规则
三、规则进阶
3.1 普通匹配
-s 源地址
, 多地址使用逗号隔开
网段 mask
! 非要结合默认规则
-d 目标地址
! 不能与多ip地址结合使用
-p 协议名|协议编号
iptables -A INPUT -s ip -P tcp -j DROP
-i 数据包入口 网卡
iptables -A INPUT -s ip -i eth0 -j DROP
-o 数据包出口
3.2 扩展匹配
一些基本匹配条件基础上,增加的其他功能
匹配模块(小写)和目标动作(大写)
模块扩展匹配: 显示扩展 -m 模块名
隐式扩展 基于协议名,不加-m使用
端口范围
-m tcp --sport --dport
-m multiport --sports --dports --ports
地址扩展
iptables -m iprange -h 指定ip地址范围
3.3 web扩展
时间扩展
-m time -h
常见属性 --timestart time
--timestop time
--monthdays value
--weekdays value 一定要保证是utc时间
字符扩展
-m string -h
--algo bm kmp 设定内容匹配的算法
--string 过滤关键字
连接数量
-m connlimit -h
--connlimit-above 单个客户端ip连接到本机的最大连接数量
内容数量
-m limit -h
--limit avgrate/second/minute/hour/day 平均访问速率
--limit-burst 峰值数量,默认5
连接状态
-m state -h 基于数据包连接状态过滤
--state
INVALID ESTABLISHED NEW RELATE UNTRACKED
3.4 网络防火墙
基于路由器的网络转发环境,来实现网络防火墙的功能
步骤: 1 .准备基本环境 两个网段,一个路由器主机(开启内核转发功能)
2.防火墙实践 在路由器主机上,关闭默认防火墙策略
开启外网通向内网的数据转发 开启内网响应外网的数据转发
3.测试
3.5 网络地址转换
SNAT: 数据包的源ip地址发生了转换
DNAT: 数据包的目标ip地址发生了转换
--to-destination
PNAT:将公司内网的多台web服务器,映射在同一ip的不同端口上
MASQUERADE: 动态外网ip
linux运维学习笔记三之iptables
最新推荐文章于 2024-09-03 14:16:23 发布