语法:
iptables(选项)(参数)
命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
表名:
- raw :高级功能,如:网址过滤。
- mangle :数据包修改(QOS),用于实现服务质量。
- nat :地址转换,用于网关路由器。
- filter :包过滤,用于防火墙规则。
规则链名:
- INPUT链 :处理输入数据包
- OUTPUT链 :处理输出数据包
- FORWARD链 :处理转发数据包
- PREROUTING链 :用于目标地址转换(DNAT)
- POSTOUTING链 :用于源地址转换(SNAT)
动作:
- ACCEPT :接收数据包
- DROP :丢弃数据包
- REDIRECT :重定向、映射、透明代理
- SNAT :源地址转换
- DNAT :目标地址转换
- MASQUERADE :IP伪装(NAT),用于ADSL。
- LOG :日志记录
- SEMARK : 添加SEMARK标记以供网域内强制访问控制(MAC)
选项:
- -A :添加防火墙规则
- -D :删除防火墙规则
- -I :插入防火墙规则
- -F :清空防火墙规则
- -L :列出添加防火墙规则
- -R :替换防火墙规则
- -Z :清空防火墙数据表统计信息
- -P :设置链默认规则
常用参数:
- -p :匹配协议
- -s :匹配源地址
- -d :匹配目标地址
- -i :匹配入站网卡接口
- -o :匹配出站网卡接口
- -j :匹配执行目标(动作)
- –sport :匹配源端口
- –dport :匹配目标端口
- –limit :四配数据表速率
- –stste :匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
- –sports :匹配源端口
- –dports :匹配目标端口
- –string :匹配应用层字串
- –src-range :匹配源地址范围
- –dst-range :匹配目标地址范围
- –mac-source :匹配源MAC地址
iptables常用命令:
1 2 3 4 5 6 7 8 9 10 11
| #允许所有访问22端口: iptables -I INPUT -p tcp --dport 22 -j ACCEPT
#拒绝所有访问22端口: iptables -I INPUT -p tcp --dport 22 -j DROP
#只允许10.0.0.2访问22端口: iptables -I INPUT -p tcp --dport 22 -s 10.0.0.2 -j ACCEPT
#防止DoS攻击(允许最多每分钟25个连接,连接达到100时启动限制) iptables -I INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
|
查看规则:
1 2 3 4
| iptables -L INPUT --line-numbers
vim /etc/network/iptables.up.rules
|
删除规则:
1 2 3 4 5
| #删除INPUT第2条规则 iptables -D INPUT 2
#删除所有规则(谨慎使用) iptables -F
|
保存应用规则:
1 2 3 4 5 6 7
| iptables-save > /etc/network/iptables.up.rules
iptables-apply (输入y)
iptables-restore < /etc/network/iptables.up.rules
|
iptables 持久化:
(否则重启服务器iptables策略失效,需要手动应用iptables.up.rules文件规则)
iptables-persistent持久化iptables规则
注意:
iptables 规则INPUT顺序问题
如果添加在reject-with icmp-host-prohibited后面,将无效