iptables命令
PREROUTING 你找谁?我推荐你去找xxx 数据包进行路由决策前应用的规则,一般用于改变数据包的目标地址,不让别人知道我找的是谁
INPUT 来了老弟 数据包经过路由决策后,进入到本机处理时应用的规则,一般用于本机进程处理的数据包
OUTPUT 走了老弟 新建数据包经路由决策后,从本机输出时应用的规则,一般用于本机处理后的数据包
FORWARD 来去匆匆 数据包经过路由决策后,本机不做处理,仅仅是转发数据包时应用的规则
POSTROUTING 去哪?我给你指另一条路 数据包作从本机出去前,对数据包应用的规则,一般用于更改数据包的源地址信息,不让给别人知道我是谁
iptables五链的应用场景
本机处理数据包:PREROUTING -> INPUT
本机转发数据包: PREROUTING -> EORWARD -> POSTROUTING
本机响应数据包:OUTPUT -> POSTROUTING
增删改查
查看信息 -L 列出所有链的规则,可以指定链 -n 将地址和端口以数字的形式展现 -v 显示更多信息 --line-numbers 列出信息的时候,带编号 -S 打印出所有规则
保存规则 iptables-save > iptables_file 清除规则 清除指定: iptables -D 链名 规则编号 清除所有: -Z 计数器 -X 自定义链的删除 -F 所有链中的规则
恢复规则 1、 iptables-restore 2、 重启服务 更改规则 -P 修改默认的链规则 iptables -P 链名 target动作 target动作: ACCEPT 允许数据包通过 DROP 禁止数据包通过 REJECT 拒绝数据包通过
规则实践
增加规则 追加方式: iptables-A 链名[匹配条件] [参数] iptables -A INPUT -s 192.168.8.15 -j DROP 插入方式: iptables-I 链名 规则编号[匹配条件] [参数] iptables -I INPUT -s 192.168.8.15 -j DROP iptables -I INPUT 2 -s 192.168.8.18 -j ACCEPT 删除规则 -D 链名 编号 | 匹配条件 iptables -D INPUT 2 iptables -D INPUT -s 192.168.8.15 -j DROP 更改规则 -R 链名 编号 [匹配条件] [参数] iptables -R INPUT 1 -s 192.168.8.15 -j DROP iptables -R INPUT 1 -s 192.168.8.15 -j ACCEPT
链操作
创建自定义链 iptables -N local-test
修改自定义链名 iptables -E local-test test-local
清除自定义链 iptables -X test-local
表基础
五表简介
作用:将不同的链组合在一起实现不同业务场景下的功能,它是由netfilter模块在内存中维护的几个空间
五表详解
security表 mac
filter表 数据包过滤(默认的,最重要的)
nat表 网络地址转换
mangle表 数据包拆修封,自定义
raw表 特殊的nat表
表信息查看: iptables -t 表名 -nvL
表链关系
链 | 表 |
security | input、output、forward |
filter 过滤表 | input、output、forward |
nat 转换表 | postrouting、prerouting、input、output |
mangle 封装表 | input、output、forward、prerouting、postrouting |
raw 自定义表 | postrouting、output |
进阶
多目标匹配
iptables -A INPUT -s 192.168.1.10,192.168.1.11 -j REJECT
取反
iptables -A INPUT ! -s 192.168.1.10 -j REJECT # 除了192.168.1.10,其他的源ip都接受
接口匹配
-i 入口 INPUT、FORWARD、PREROUTING
-o 出口 FORWARD、OUTPUT、POSTROUTING
端口匹配
-m tcp --sport --dport
-m multiport --sports --dports --ports
连续端口匹配
iptables -A INPUT -m iprange --src-range 192.168.10.14-192.168.10.20 -j DROP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了