Iptables常用
目录
警告
本文最后更新于 2019-03-08,文中内容可能已过时。
1. iptables 工作流程
- 防火墙是一层一层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
- 如果匹配上规则,即明确表明是阻止还是通过,此时数据包就不在向下进行新的匹配规则了。
- 如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上的规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过.
- 防火墙的默认规则是对应链的所有的规则执行完成后才会执行。
2. iptables 表和链
- 4 表:
filter | 包过滤,用于防火墙规则。 |
net | 地址转换,用于网关路由器。 |
mangle | 数据包修改(QOS),用于实现服务质量。 |
raw | 高级功能,如:网址过滤。 |
- 5链:
INPUT链 | 处理输入数据包。 |
OUTPUT链 | 处理输出数据包。 |
PORWARD链 | 处理转发数据包。 |
PREROUTING链 | 用于目标地址转换(DNAT)。 |
POSTOUTING链 | 用于源地址转换(SNAT)。 |
3. iptables 命令
参数 | 作用 |
---|---|
-F |
清空所有规则,不会处理默认规则 |
-X |
删除用户自定义的链 |
-Z |
清空链的计数器 |
-t |
指定表(默认filter) |
-A |
添加规则到指定链的结尾(查找对应链,做什么处理) |
-I |
添加规则到指定链的开头(查找对应链,做什么处理) |
-P |
指定协议: all(默认)、tcp、udp、icmp |
--dport |
指定目的端口(端口范围冒号分割,如:80:89) |
--sport |
指定源端口(端口范围冒号分割,如:80:89) |
-m multiport --dport/--sport |
指定匹配多个端口,需配合(--dport |
-j |
行为 ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝:REJECT会反馈给拒绝对象信息) |
-s |
指定源ip地址 |
-i |
指定进入的网卡 |
-o |
指定出去的网卡 |
-n |
以数字形式显示ip和端口(默认主机名、网络名),需配合-L 使用 |
-L |
列出所有规则 |
-D |
删除单条规则 |
--line-number |
显示序号 |
-m state --state |
new: 已经或将启动新的连接、ESTABLISHED:已建立的连接、 RELATED: 正在启动的新连接、INVALID: 非法或无法识别的 |
-m limit --limit n/{second/minute/hour} |
限制指定时间包的允许通过数量及并发数 |
--limit-burst [n] |
在同一时间内允许通过的请求n 个 |
4. 示例
- 清空规则、用户自定义链、链的计数器
|
|
- 拒绝规则
|
|
- 匹配ICMP类型
|
|
- 允许关联的状态包(如vsftpd服务)
|
|
- nat 共享网络
|
|
- nat 端口转发(一对一映射)
|
|