一、防火墙的类别:
a、根据载体区分
�\ 硬件防火墙
�\ 软件防火墙
�\应用层防火墙
�\网络层防火墙
�\ linux包过滤防火墙
b、根据保护对象区分
�\ 主机防火墙
�\ 网络防火墙
二、iptables的表、链结构
a、规则链解析 - Chain
・链的用途:存放一条条防火墙规则(rule)
・链的分类依据:处理数据包的不同时机
・默认包括5种规则链
→ INPUT:处理入站的数据包
→ OUTPUT:处理出站的数据包
→ FORWARD:处理转发的数据包
→ PREROUTING:路由选择之前处理
→ POSTROUTING:路由选择之后处理
b、规则表解析 - Table
・表的用途:存放不同的规则链
・表的分类依据:防火墙规则的作用相似
・包括4个规则表
→ raw表:确定是否对数据包进行状态跟踪
→ mangle表:为数据包设置标记(流量整形)
→ nat表:修改数据包的源/目的地址或端口(用于网络地址转换)
→ filter表:确定是否放行改数据包(用于防火墙)
三、包过滤匹配流程
a、规则表之间的顺序
raw → mangle → nat → filter
b、规则链之间的顺序
・入站:INPUT → PREROUTING
・出站:OUTPUT → POSTROUTING
・转发:PREROUTING → FORWARD → POSTROUTING
c、规则链内的匹配顺序
・顺序比对,匹配即停止(LOG除外)
・若无任何匹配,则按该链的默认策略处理
四、iptables基本用法
a、命令:
iptables [ -t 表名 ] 选项 [ 链名 ] [ 条件 ] [ -j 目标操作 ]
Example:
# iptables -t filter -I INPUT -p icmp -j REJECT
b、几个注意事项/总体规律
・可以不指定表,默认为filter表
・可以不指定链,默认为对应表的所有链
・除非设置默认策略,否则必须指定匹配条件
・选项/链名/目标操作用大写字母,其余都小写
c、最基本的目标操作
・ACCEPT :允许通过、放行
・DROP :直接丢弃,不给出任何回应
・REJECT :拒绝通行,必要时会给出提示
・LOG :记录日志,然后传给下一条规则
常见的管理选项
类别 | 选项 | 用途 |
添加规则 |
-A | 在链尾追加一条规则 |
-I | 在链头(或指定序号)插入一条规则 | |
查看规则 | -L | 列出所有的规则条目 |
-n | 以数组的形式显示地址、端口等信息 | |
--line-numbers | 查看规则时,显示规则的序号 | |
删除规则 | -D | 删除链内指定序号(或内容)的一条规则 |
-F | 删除链内指定序号(或内容)的一条规则,清空所有的规则 | |
默认策略 | -P | 为指定的链设置默认规则 |
d、添加新的表规则(数字是指定插入位置,不影响功能)
Example:允许某一个ip地址ping
#iptables -I INPUT 1 -s 192.168.1.200 -p icmp -j ACCEPT
#iptables -t filter -A INPUT -p tcp -j ACCEPT
#iptables -I INPUT -p udp -j ACCEPT
# iptables -I INPUT 1 -p icmp -j ACCEPT
# iptables -I INPUT 2 -p icmp -j ACCEPT
# iptables -I INPUT 3 -p icmp -j ACCEPT
e、查看规则列表
# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT icmp -- anywhere anywhere
2 ACCEPT icmp -- anywhere anywhere
3 ACCEPT icmp -- anywhere anywhere
# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT icmp -- anywhere anywhere
2 ACCEPT icmp -- anywhere anywhere
3 ACCEPT icmp -- anywhere anywhere
f、删除、清空规则
# iptables -D INPUT 2 #(删除)
# iptables -F #(清空)
g、设置默认规则
・所有链的初始默认规则均为ACCEPT
・通过 -P 选项可重置默认规则
- ACCEPT 或 - DROP
# iptables -P OUTPUT DROP \\把OUTPUT链默认规则该为DROP
linux防火墙--iptables(一) http://nmore.blog.51cto.com/9008175/1437118
linux防火墙--iptables(二) http://nmore.blog.51cto.com/9008175/1437304
linux防火墙--iptables(三) http://nmore.blog.51cto.com/9008175/1437540