防火墙之详解
一、防火墙的介绍
防火墙是指隔离在本地网络与外界我网络之间的一道防御系统,通常用于专用网络与公用网络的互联环境之中,特别是接入Internet的网络,它是唯一进出不同网络安全域之间信息的通道,能根据安全策略控制信息流出入网络,如允许,拒绝,监测等等,它是一种在Internet上非常有效的安全模式,通过它能隔离风险区域的链接,同时又不会妨碍用户对风险区域的访问,从而有效地监控了内部网和Internet之间的活动,保证了内部网络的安全,防火墙的主要功能是根据IP
和TCP两个报文实现的。
二、防火墙的特征以及功能
防火墙的特征:
(1)双向流通信息必须经过它
(2)只有符合安全策略授权的信息流才被允许通过
(3)系统本身具有很高的抗***性能
防火墙的功能:
(1)提供网络安全的屏障
(2)强化网络安全策略
(3)监控审计网络的存取和访问
(4)防止内部信息外漏
三、防火墙的一些规则
(1)匹配函数:如:IP:源IP,目标IP
TCP:SPORT,DPORT,标准位:
UDP:SPORT,DPORT
ICMP:icmp—type
(2)数据报文过滤: Linux2.0 ipfw/firewall
Linux2.2 ipchain/firewall
Linux2.4 iptables/netfilter
(3)hook function:钩子函数 prerouting、input、output、forward、postrouting
(4)规则链:PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
四、三种表的作用和内置链以及在各种表的功能
(1):filter(过滤数据包)
INPUT:应用于发往本机的数据包
DORWARD:应用于路由经过本地的数据包
OUTPUT:本地产生的数据包
(2):nat(网络地址转换)
PREROUTING:修改刚刚到达防火墙时数据包的目的地址
OUTPUT:修改本地产生的数据包的目的地址
POSTROUTING:修改要离开防火墙的数据包的源地址
(3):mangle(修改数据包)
PREROUTING:在数据包进入防火墙之后路由判断之前,改变数据包
OUTPUT:在确定数据包的目的之前更改数据包
POSTROUTING:在确定数据包的目的之后更改数据包
INPUT:数据包被路由到本地之后,用户程序看到之前改变数据包
五、iptables介绍
可以使用自定链,但只在被调用时才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制,可以用删除自定义的空链,可以默认链无法删除。
每个规则都有两个内置的计数器:1、被匹配的报文个数;2、被匹配的报文大小之和
Iptables的规则:匹配标准,处理动作
例如:iptables [-t TABLE] COMMAND CHAIN [num] 匹配条件 -j 处理动作
匹配标准:
1、通用匹配
-s,--src:指定源地;-d, --dst:指定目标地址;-p {tcp|udp|icmp}指定协议
-i:INTERFACE:指定数据报文流入的接口
可用于定义标准的链:PREROUTING,INPUT,FORWARD
-o INTERFACE:指定数据报文流出的接口
可用于定义标准的链:OUTPUT,POSTROUTING,FORWAD
2、扩展匹配
隐含扩展:不用特别指明有哪个模块进行的扩展,因为此时使用-p {tcp|udp|icmp}
-p tcp
--sport PORT[-PORT]:源端口
--dport PORT[-PORT]:目标端口例如:源地址为172.16.38.1,sshd为22/tch
--tcp-flags mask comp:只检查mask指定的标志位,是逗号分隔的标志位列表:comp,此列表中出现的标记必须为1,comp中没出现,而mask中出现的,必须为0;
--tcp-flags SYN,FIN,ACK,RST SYN,ACK
--syn
p icmp
--icmp-type 0:echo-reply 8:echo-repy-p udp
--sport --dport显示扩展,必须指明有哪个模块进行的扩展,在iptables中使用-m选项可完成此功能
-m EXTESTLON --spe-opt
state:状态扩展
结合ip_conntrack追踪会话的状态
NEW:新链接请求
ESTABLISHED:已建立的链接INVALID:非法链接
RELATED:相关联的-m state --state NEW -j ACCEPT
multiport:离散的多端口匹配扩展
--source-ports
--destination-ports --ports
六、iptables的命令:
管理规则:
-A:附加一条规则,添加在链的尾部
-I:CHAIN [num]插入一条规则,插入为对应CHAIN上的第num条;
-D CHAIN [num]:删除指定链中的第num条规则
-R CHINA [num]:替换指定的规则;
管理链:
-F:[CHAIN]:flush:清空指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链
-P: CHAIN:设定指定链的默认策略;
-N:自定义一个新的空链
-X:删除一个自定义的空链
-Z:置零指定链中所有规则的计数器
-E:重命名自定义的链
查看类:
Lsmod | grep []
-L:显示指定表中的规则;
-n:以数字格式显示主机地址和端口号
-v:显示链及规则的详细信息
-x:显示计数器的精确值
--lline-numbers:显示规则号码
七、iptables动作(target)
-J
ACCEPT:放行 DROP:丢弃 REJECT:拒绝 DNAT:(目标地址转换)
SNAT:原地址转换 REDIRECT:端口重定向 MASQUERADE:地址伪装
NOTRACK(不做任何追踪) LOG:日志 MARK:打标机