语法:
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常用命令:
| 12
 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
 
 | 
查看规则:
| 12
 3
 4
 
 | iptables -L INPUT --line-numbers
 
 vim /etc/network/iptables.up.rules
 
 | 
删除规则:
| 12
 3
 4
 5
 
 | #删除INPUT第2条规则iptables -D INPUT 2
 
 #删除所有规则(谨慎使用)
 iptables -F
 
 | 
保存应用规则:
| 12
 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后面,将无效