第一种情况:入站数据流向
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。
第二冲情况:转发数据流向
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
第三种情况:出站数据流向
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
路由是这样的判断ip是否在同一网段如果是就不走路由,如果不是就需要根据网关出去。
-i 进入路由器 �Co 从路由器出去
防火墙的分类:包过滤防火墙、内容过滤防火墙、状态机制防火墙
一、iptables表链结构及作用
1.filter表(包过滤)
INPUT:过滤给本机的包
OUTPUT:过滤本机发出去的包
FORWARD:过滤转发的包
2.nat表(修改源、目标ip或端口)
PREROUTING:转换数据包目标IP地址(DNAT)
POSTROUTING:转换数据包源IP地址(SNAT)
OUTPUT:转换本机发出的数据包的目标IP地址(DNAT)
3.mangle表(标记)
设置标记
4.raw表(状态跟踪)
是否跳过NAT表处理
5.数据流向
入站:PREROUTINGàINPUT
出站:OUTPUTàPOSTROUTING
转发:PREROUTINGàFORWARDàPOSTROUTING
6.表优先级
rawàmangleànatàfilter
二、iptables命令
1.iptables语法格式
#iptables[-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
2.-t 表名
表名可以是raw,mangle,nat,filter,默认值是filter
3.命令选项
-A 追加规则
-I 插入规则
-R 替换规则
-D 删除规则
-F 清空规则
-P 默认规则
-N 定义新链
-X 删除自定义链
-L 查看规则
-n 使用数字显示
--line-numbers 显示行号
4.链名
根据实际要求选择规则要放入的链
通用条件匹配
网络协议、IP地址、网络接口
-p 协议名
-s 源地址、-d 目标地址
-i 网络接口名、-o 网络接口名
隐含条件匹配
端口、TCP标记、ICMP类型
--sport 源端口、--dport 目标端口
--tcp-flags 检查范围被设置的标记
--icmp-type ICMP类型
显式条件匹配
使用“-m 扩展模块”
多端口、MAC地址、IP地址范围、数据包状态
-m multiport --sports 源端口列表、--dports 目标端口列表
-m mac --mac-source MAC地址
-m iprange --src-range 源IP范围、--dst-range 目标IP范围
-m state --state 状态类型
-m connlimit--connlimit-above 并发连接数
-m layer7 --17proto 应用层协议
-m time --timestart 时间--timestop 时间
-m string --staring “匹配策略数据包”
5.条件匹配
-p 匹配协议
-d 匹配目标IP
-s 匹配源IP
-i 匹配接收接口
-o 匹配发送接口
--sport 匹配源端口
--dport 匹配目标端口
--tcp-flags 匹配TCP标识位
-m mac --mac-source 匹配源MAC
-mmultiport --sport 匹配多个源端口
-m multiport --dport 匹配多个目标端口
-miprange --src-range 匹配源IP地址范围
-miprange --dst-range 匹配目标IP地址范围
-mstate --state 匹配状态
6.-j 目标动作或跳转
ACCEPT 允许
DROP 丢弃
REJECT 拒绝,给发送端返回信息
LOG 记录日志,然后把包交给下一条规则处理
三、导入与导出防火墙规则
1.导出
#iptables-save > /etc/sysconfig/iptables
#service iptables save
2.导入
#iptables-restore < /etc/sysconfig/iptables
配置iptables防火墙(二)
一、SNAT策略
1.SNAT介绍
源IP地址转换,用于内网用户访问Internet
2.内网(192.168.1.0/24)用户使用同一IP地址(200.1.1.1)访问互联网
# iptables -t nat -A POSTROUTING -s192.168.1.0/24 -o eth1 -j SNAT --to-source 200.1.1.1
3.内网(192.168.1.0/24)用户使用同一IP地址(ADSL拨号)访问互联网
# iptables -t nat-A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
二、DNAT策略
1.DNAT介绍
目标IP地址转换,用于Internet用户访问公司内网服务器
2.把Internet用户访问WEB服务器的数据包转换成实际WEB服务器IP地址
# iptables -t nat -A PREROUTING -d 200.1.1.1 -p tcp--dport 80 -j DNAT --to-destination 192.168.2.100
举例:
iptables -t filter -A INPUT -j DROP
iptables -A INPUT -j DROP
由于防火墙中filter是默认的,所以防火墙规则也可以省略表 -t fileter项
在filter 表的INPUT 链里插入一条规则(插入成第1 条)
在filter 表的INPUT 链里插入一条规则(插入成第3 条)
iptables -R INPUT 3 -j ACCEPT
ping: type 8 pong: type 0
匹配网络中目的端口是53 的UDP 协议数据包
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.1-192.168.0.10
同上,只不过修改成一个地址池里的IP
单机防护墙配置
做网关配置
限制内网用户设置
内网做对外服务设置