防火墙的追根溯源记

简介:

标题索引


  • 追溯原因

  • 问题剖析


追溯原因:

    当下培训机构层出不群,质量有高有底,培训内容和项目经历不进相同,导致多数技术人员技术层次不经相同,故在某项目中客户运维部反馈我老东家的防火墙按照常规配置策略无法生效,因做过讲师的缘故,受邀对客户运维部进行防火墙相关安全培训,考虑到运维部人员有网络基础,因此追根溯源决定从Linux内核防火墙讲起,过度到企业应用防火墙,最后深刻理解防火墙原理。

问题剖析:

    根据多年工作经验,多数网络工程师对Linux内核理解不够深刻,包括我自己本身,因此要熟悉防火墙的底层工作原理必须熟悉Linux内核,因为国内多数网络产品基于Linux内核进行二次开发。

    下面总结此次相互学习的要领:

    1.防火墙的分类?

    简答:防火墙从网络结构的位置上化分为主机防火墙和网络防火墙,主机防火墙在centos6版本中采用iptables管理工具进行管理,在centos7版本中采用iptables和firewalld管理工具进行管理,对应到企业网络防火墙的管理多数采用firewalld进行的二次开发,因此只需掌握firewalld即可掌握企业网络防火墙。

    2.防火墙处于系统内核空间还是用户空间?

    简答:防火墙功能在内核中功能某块叫filter,通过查看编译配置文件可知防火墙是处于内核空间的程序。

1
2
3
4
5
6
7
8
9
10
11
12
[ root@centos6 boot ] #cat config-2.6.32-696.el6.x86_64 |grep  -A 10 "IP: Netfilter Configuration"
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_TTL=m

    3.Linux系统中防火墙与iptables的关系?

    简答:防火墙filter处于内核空间,管理防火墙的策略任需用户空间工具,此时就用到用户空间的iptables和firewalld相关管理工具,但仅仅是管理工具,包括在系统中进行如下操作:

1
2
3
4
5
6
7
8
9
[ root@centos6 ~ ] #service iptables stop
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt  in      out      source                destination
  
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt  in      out      source                destination
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt  in      out      source                destination

    仅仅是关闭默认策略,关闭默认策略不代表关闭防火墙功能

    4.防火墙的基本原理?

    简答:防火墙的功能基本四表五链,一切围绕四表五链进行分析,即可知晓其中工作原理奥妙,具体可参考下图

8d9d029668b5b55e51db46a81d99199d.jpg

    任何一个接口数据流上双向的,有流入数据包和流程数据包,对于流入的数据包首先经过PREROUTING链进行相关动作进入本机,与本机路由表进行匹配,若目标IP是本机地址,经过INPUT链到达用户空间,若目标IP地址并非本机,匹配路由条目进行路由选择,转交FORWORD链处理,同样在出去时有OUTPUT链和POSTROUTING链对数据包进行相关操作。

    5.防火墙为什么主动出去的数据包能够回来,外网主动进行确无法连通

    简答:因为防火墙可以基于状态分析,在启用状态分析功能时需加载nf_conntrack模块(默认已加载),如若需要跟踪ftp协议主动和被动传输则任需加载对应nf_conntrack_ftp模块,有此类模块支持时,才可以通过基于状态进行检测,具体状态有如下:

    NEW:新建会话,即第一次发起会话,如TCP三次握手模式,发出的第一个包即新的会话;

    ESTABLISHED:已经建立起的会话,如TCP三次握手发出第一个包后,就进入ESTABLISHED状态;

    RELATED:新发起的连接,但是链接与之前建立的链接有关系;

    INVALID:无效的链接,如防火墙检测TCP链接的完整性,TCP通讯不完整时可设置阻断策略,因此在网络架构的设计中防止数据在负载均衡时,流量分别走两台防火墙,此时防火墙检测TCP链接不完整,误报为无效链接进行阻断。

    UNTRACKED:为进行追踪的链接,如关闭raw表后均体现为UNTRACKED。

    在centos6中默认防火墙策略如下,在INPUT方向基于已建立的会话和关联的会话进行放行,OUTPUT则无策略,因此系统默认情况下主动访问外网不受限制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[ root@centos6 netfilter ] #iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt  in      out      source                destination         
     6   396 ACCEPT     all  --  *      *       0.0.0.0 /0             0.0.0.0 /0            state RELATED,ESTABLISHED 
     0     0 ACCEPT     icmp --  *      *       0.0.0.0 /0             0.0.0.0 /0           
     0     0 ACCEPT     all  --  lo     *       0.0.0.0 /0             0.0.0.0 /0           
     0     0 ACCEPT     tcp  --  *      *       0.0.0.0 /0             0.0.0.0 /0            state NEW tcp dpt:22 
     2   305 REJECT     all  --  *      *       0.0.0.0 /0             0.0.0.0 /0            reject-with icmp-host-prohibited 
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  pkts bytes target     prot opt  in      out      source                destination         
     0     0 REJECT     all  --  *      *       0.0.0.0 /0             0.0.0.0 /0            reject-with icmp-host-prohibited 
 
Chain OUTPUT (policy ACCEPT 5 packets, 636 bytes)
  pkts bytes target     prot opt  in      out      source                destination

    6.FIREWALLD与iptables的底层关系?

    FIREWALLD其本质就是调用iptables命令,引入ZONE




本文转自 薛伟博 51CTO博客,原文链接:http://blog.51cto.com/weiboxue/1974435,如需转载请自行联系原作者


相关文章
|
4月前
|
网络协议 网络安全 网络虚拟化
防火墙VSYS
使用防火墙的虚拟系统,可以让路由来回绕
|
网络协议 网络安全 网络架构
防火墙NAT讲解(二)
防火墙NAT讲解(二)
130 0
|
缓存 安全 网络协议
【内网安全-防火墙】防火墙、协议、策略
【内网安全-防火墙】防火墙、协议、策略
162 0
【内网安全-防火墙】防火墙、协议、策略
|
供应链 安全 网络安全
防火墙是什么,服务器里面的防火墙要开启吗?
随着近年来网络攻击频发,网络安全问题越来越受到人们的重视,许多用户都开始选择使用安全防护产品来防护或者是预防网络攻击。“防火墙”这个听到都比较多,但可能对具体的就不太了解,今天我们就来简单了解下什么是防火墙。
|
安全 网络安全 数据安全/隐私保护
值不值买之阿里云防火墙
当然值得买!
2840 0
|
网络安全 网络架构
防火墙nat技术
NAT基本原理 NAT技术通过对IP报文头中的源地址或目的地址进行转换,可以使大量的私网IP地址通过共享少量的公网IP地址来访问公网 事例1 通过nat转换池给内网ip分配可以上网的外网ip 防火墙接口以及区域配置 配置P...
2010 0
|
网络安全 网络虚拟化 安全
防火墙
DDos攻击:http://www.freebuf.com/articles/network/183182.html#comment-255907 ensp常用命令 system-viem #启动,进入用户视图 sysname NY #主机命名 d...
1238 0
|
网络安全 内存技术 数据安全/隐私保护
|
网络安全
|
网络协议 网络安全 Linux