编写防火墙规则
-
基本语法、控制类型
- 语法:
- iptables [-t 表名] 选项 链名 条件 -j 控制类型 //选项、链名、控制类型大写
- iptables -t filter -I INPUT -p icmp -j DROP
- 控制类型
- ACCEPT:允许通过
- DROP:不回应任何
- REJECT:拒绝回应ICMP请求
- LOG:记录日志信息,然后传给下一条规则链继续匹配,不对数据包进行控制。
- 注意事项
- 1、不指定表名时,默认指filter表
- 2.、指定链名时,默认指表内的所有链
- 3、除非设置链的默认策略,否则必须指定匹配条件
- 4、选项名,链名,控制类型使用大写字母,其余均为小写
- 语法:
- 添加、查看、删除规则
- 添加新的规则
- -A:在链的末尾追加一条规则
- -I:在链的开头或指定序列号插入一条规则
- iptables -I INPUT 2 -p icmp -j ACCEPT //添加到表中某一个位置 2--序列号 使用--line-numbers查看序列号
- -p 协议
- 协议类型:TCP,UDP,ICMP
- 查看规则
- iptables -L -n --line-numbers -v
- -L 列出所有的规则条目
- -n 以数字形式显示地址,端口等信息
- -n -L 可合写为 -nL //必须为-nL
- -v 以更详细的方式显示规则信息
- --line-numbers 查看规则时,显示规则的序列号
- iptables -L -n --line-numbers -v
- 删除规则
- -D 删除链内的指定序列号的一条规则
- iptables -D INPUT 8
- iptables -t filter -D INPUT 1
- -F 清空所有规则
- iptables -F //默认filter表
- -D 删除链内的指定序列号的一条规则
- 添加新的规则
-
设置默认策略
- 默认策略只有ACCEPT或者DROP
- -P为指定的链设置默认策略(规则)
- iptables -t filter -P INPUT DROP
- iptables -P INPUT DROP
-
规则的匹配条件
- 通用匹配:
- 可直接使用,不依赖于其他条件或拓展
- 包括网络协议、IP地址、网络接口等条件
- 常见的匹配条件:
- 协议匹配:-P 协议名
- ! 取反
- iptables -I INPUT ! -p icmp -j ACCEPT //除了icmp 之外都是允许通过
- 地址匹配:-s 源地址、-d 目的地址
- iptables -A INPUT -s 192.168.8.167 -p icmp -j ACCEPT //只允许这个地址通过
- iptables -I INPUT -s 192.168.8.0/24 -p icmp -j ACCEPT //允许这个网段通过
- 接口匹配:-i 入站网卡、-o出站网卡
- iptables -I INPUT -i etho -p icmp -j DROP //以eth0进站的都不允许通过
- 隐含匹配:
- 要求以特定的协议匹配作为前提
- 包括端口、TCP标记、ICMP类型等条件
- 常用匹配
- 端口匹配 --sport 源端口 --dport 目的端口
- iptables -I INPUT -s 192.168.8.167 -p tcp --dport 22 -j ACCEPT //允许此地址连接22号端口
- iptables -I INPUT -p tcp --dport 80 -j ACCEPT //允许TCP 80端口通过
- TCP标记匹配 --tcp-flags 检查范围,被设置的标记
- ICMP类型匹配 --icmp-type ICMP类型
- 0-回显 3-端口不可达 8-icmp请求
- iptables -I INPUT -p icmp --icmp-type 8 -j DROP
- 端口匹配 --sport 源端口 --dport 目的端口
- 显示匹配:
- 要求以 -m 拓展模块 的形式明确指出类型
- 包括多端口、MAC地址、IP地址、数据包状态等条件
- 常用匹配
- 多端口匹配 -m multiport -sport/-dport
- iptables -I INPUT -m multiport -p tcp --dports 80,443 -j REJECT //拒绝80,443端口
- ip 范围 -m IPrange --src-range
- MAC范围: -m mac --mac source
- iptables -I INPUT -m mac --mac-source 6C-2B-59-76-F1-03 -p icmp -j DROP //不允许此MAC地址通过
- 状态匹配: -m statr --state 连接状态
- iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
- 多端口匹配 -m multiport -sport/-dport
- 通用匹配: