linux的防火墙工作在网络层,属于包过滤防火墙,Linux包括netfilter和iptables。 netfilter属于“内核态”防火墙而iptables属于“用户态”防火墙。 1.iptables包括四表五链 四表内容如下: raw表:确定是否对该数据包进行状态跟踪 mangle表:为数据包设置标记 nat表:修改数据包中的源、目标IP地址或端口 filter表:确定是否放行该数据包(过滤) 五链内容如下: INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包 2.数据包过滤的匹配流程 表之间的规则应用顺序:raw-mangle-nat-filter 链之间的规则应用顺序: 入站:PREROUTING-INPUT 出站:OUTPUT-POSTROUTING 转发:PREROUTING-FORWARD-POSTROUTING 链内的匹配顺序 按顺序依次检查,匹配即停止(LOG策略例外) 若找不到相匹配的规则,则按该链的默认策略处理 3.iptables语法构成:iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 4.数据包的常见控制类型 ACCEPT:允许通过 DROP:直接丢弃,不给出任何回应 REJECT:拒绝通过,必要时会给出提示 LOG:记录日志信息,然后传给下一条规则继续匹配 5.iptables常用的管理选项 -A 在链的末尾追加一条规则 -I 在链的开头(或指定序号)插入一条规则 -L 列出所有的规则条目 -n 以数字形式显示地址、端口等信息 -v 以更详细的方式显示规则信息 --line-numbers 查看规则时,显示规则的序号 -D 删除链内指定序号(或内容)的一条规则 -F 清空所有的规则 -P 为指定的链设置默认规则 6.通用匹配: 协议匹配 -p 协议名 地址匹配 -s 源地址、-d 目的地址 接口匹配 -i 入站网卡、-o 出站网卡 7.隐含匹配: 端口匹配 --sport 源端口、--dport 目的端口 TCP标记匹配 --tcp-flags 检查范围 被设置的标记 ICMP类型匹配 --icmp-type ICMP类型 8.显示匹配: 多端口匹配 -m multiport --sports | --dports 端口列表 IP范围匹配 -m iprange --src-range IP范围 MAC地址匹配 -m mac --mac-source MAC地址 状态匹配 -m state --state 连接状态 10.iptables应用示例: 通用匹配:iptables -I INPUT -p icmp -j DROP 隐含匹配:iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT 显示匹配:iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT 查看规则表列: iptables -nL 删除input链第三条规则:iptables -D INPUT 3 清空所有的规则:iptables -F