linux 网络管理之iptables命令详解
用途
iptables是Linux上常用的防火墙软件,
工作流程
当前主机的数据包按流向可分为三种方式:
- 流入本机
- 流出本机
- 路过本机
iptables 会对数据包进行过滤,所以会对请求数据包的包头进行解析,并按照指定的规则进行匹配决定是否允许该数据包进入主机,其过滤规则
用法
iptable 有四表五链的说法
五链是处理数据包的位置,四表则是处理数据包的策略
四表 | 作用 | 关联的五链 |
---|---|---|
Filter | 负责数据包过滤 | INPUT、OUTPUT、FORWARD |
NAT | 负责网络地址转换(IP和端口) | PREROUTING、OUTPUT、POSTROUTING |
Mangle | 负责修改数据包内容,包括数据包的服务类型,TTL、 | PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD |
Raw | 负责跟踪数据包 | PREROUTING、OUTPUT |
五链 | 名称 | 应用时机 | 关联的表 |
---|---|---|---|
PREROUTING链 | 路由前 | 主机外报文进入位置,所有进来的数据包都应用此链策略(所有进来的数据报文都需要由此链处理) | Mangle, NAT |
INPUT链 | 输入 | 进来的数据报文应用此链策略 | Filter, Mangle |
OUTPUT链 | 输出 | 出去的数据报文应用此链策略 | Filter, Mangle, NAT |
FORWARD链 | 转发 | 转发数据包时应用此链策略 | Filter, Mangle |
POSTROUTING链 | 路由后 | 对数据报文做出路由选择转发出去应用此链策略,(所有的数据报文出去的时候都需要由此链处理) | Mangle,NAT |
网上很多介绍iptables的博客都附上了经典”四表五链”流程图,我也加上一张。。。
功能选项
用法示例
1、拒绝某个IP访问
iptables -I INPUT -s 192.168.190.113 -j DROP
2、拒绝访问某个IP
iptables -A OUTPUT -d 192.168.190.130 -j DROP
遇到的问题
现象1:CHAIN_USER_DEL failed (Device or resource busy): chain LIBVIRT_INP 操作:
# iptables -D INPUT 1
var code = "54d10cde-04ac-4554-8c4c-c5fa62bb7562"