防火墙的基本概念(2)

  • 防火墙
    • 1.4 何为防火墙
    • 1.5 防火墙的判断依据
      • 1.5.1 各层数据包包头的信息
        • Linux iptables
    • 1.6 防火墙的分类
  • 【转载】

防火墙

1.4 何为防火墙

无防火墙网络环境如下图:

当主机A发送数据包给主机B时,不管数据包的内容是什么,主机B都会照单全收。即便是攻击性的数据包,主机B也会将其收下。如果主机B存在漏洞或者缺陷,那么这个攻击数据包可能会使整台计算机瞬间瘫痪。
有防火墙网络环境如下图:

从某种角度来看,这个架构中的防火墙就像是一个路由器,只是这个路由器可以选择将某些数据包进行过滤,只将过滤后的数据包转发给另一边,如此即可达到保护防火墙后主机的目的。这也就是第一代防火墙的思路,即包过滤。

第一代防火墙:包过滤防火墙
包过滤( Packet Filter )是在网络层中根据事先设置的安全访问策略(过滤规则) ,检查每一个数据包的源IP地址、目的IP地址以及IP分组头部的其他各种标志信息(如协议、服务类型等) , 确定是否允许该数据包通过。
由于包过滤防火墙不检查更高层数据,因此这种防火墙不能阻止利用了特定应用的漏洞或功能所进行的攻击。
包过滤防火墙对利用 TCP / IP 规范和协议栈存在的问题进行的攻击没有很好的应对措施(网络层地址假冒、无法阻止ip欺骗)。
大多数包过滤防火墙不支持高级的用户认证机制。
第二代防火墙:代理防火墙
代理防火墙并不是真正意义上的互联网路由器,它是一个运行一个或多个应用层网关(Application-Layer Gateways, ALG)的主机,也叫应用网关防火墙,该主机有多个网络接口,能够在应用层中继两个连接之间的特定类型的流量。它通常不像路由器那样做IP转发,但现如今也出现了结合了各种功能的更复杂的代理防火墙。
所有进出网络的应用程序报文都必须通过应用网关。当某应用客户进程向服务器发送一份请求报文时,先发送给应用网关,应用网关在应用层打开该报文,查看该请求是否合法(可根据应用层用户标识ID或其他应用层信息来确定)。如果请求合法,应用网关以客户进程的身份将请求报文转发给原始服务器。如果不合法,报文则被丢弃。
第三代防火墙:状态检测防火墙
状态检测防火墙采用了状态检测包过滤的技术,是传统包过滤上的功能扩展。状态检测防火墙在网络层有一个检查引擎截获数据包并抽取出与应用层状态有关的信息,并以此为依据决定对该连接是接受还是拒绝。这种技术提供了高度安全的解决方案,同时具有较好的适应性和扩展性。
状态检测防火墙一般也包括一些代理级的服务,它们提供附加的对特定应用程序数据内容的支持。
状态检测技术最适合提供对UDP协议的有限支持。它将所有通过防火墙的UDP分组均视为一个虚连接,当反向应答分组送达时,就认为一个虚拟连接已经建立。
状态检测防火墙克服了包过滤防火墙和应用代理服务器的局限性,不仅仅检测“to”和“from”的地址,而且不要求每个访问的应用都有代理。
第四代防火墙:UTM 统一威胁管理
统一威胁管理,融合了IPS入侵防御系统,AV网关防病毒,上网行为管理,防DDOS攻击等特性,为了更好的解决来自企业内部、外部的攻击威胁提供了强有力保障(UTM包含入侵防御和内容过滤)

  • 入侵防御(IPS)
    入侵防御是一种安全机制,通过分析网络流量,检测入侵(包括缓冲区溢出攻击、木马、蠕虫等),并通过一定的响应方式,实时地中止入侵行为,保护企业信息系统和网络架构免受侵害。
    入侵防御是种既能发现又能阻止入侵行为的新安全防御技术。通过检测发现网络入侵后,能自动丢弃入侵报文或者阻断攻击源,从而从根本上避免攻击行为。

第五代防火墙:NG 下一代防火墙
下一代防火墙,即Next Generation Firewall,简称NG Firewall。
Gartner介绍为应对当前与未来新一代的网络安全威胁认为防火墙必需要再一次升级为“下一代防火墙”。
下一代防火墙需具有下列最低属性:

  • 支持在线BITW(线缆中的块)配置,同时不会干扰网络运行。
  • 可作为网络流量检测与网络安全策略执行的平台,并具有下列最低特性:
    1. 标准的第一代防火墙功能:具有数据包过滤、网络地址转换(NAT)、协议状态检查等。
    2. 集成式IPS网络防御系统,支持基于漏洞的签名与基于威胁的签名。
    3. 业务识别与全栈可视性:采用非端口与协议vs仅端口、协议与服务的方式,识别应用程序并在应用层执行网络安全策略。
    4. 可收集防火墙外的各类信息,用于改进阻止决策,或作为优化阻止规则的基础。

1.5 防火墙的判断依据

防火墙的任务简单描述就是“放行合法”或者“封锁不合法”的数据包,但是随着计算机技术的发展,尤其是针对TCP/IP协议的设计缺陷的攻击,第一代包过滤防火墙已经不能很好的履行职能,因此诞生了第二类防火墙,代理,或者说地址转换防火墙。
因此,现今的防火墙判断依据依然从包过滤增加到通过检测,限制和更改经过防火墙的数据流,经可能的对外屏蔽网络内部的信息和结构来实现网络的安全保护。

1.5.1 各层数据包包头的信息

在防火墙的匹配条件中,最基本且最简单的就是数据包各层包头里面的信息,这里将根据各层不同包头内的信息来说明。

  1. 链路层
    该层对应OSI七层模型物理层与数据链路层,含有协议Ethernet和IEEE,两者最重要的信息就是MAC地址。理论上MAC地址作为计算机唯一的地址,可以通过Source MAC判断来源主机。但是现在已经有软件可以做到修改MAC地址,因此对于Source MAC的判断愈加困难。
  2. 网络层
    该层对应OSI七层模型网络层,含有协议IP,该协议最重要的信息为IP地址。除了IP地址外,Header Length、Differentiated服务、Total Length、Flags、Time to Live(TTL)、Protocol都能作为过滤条件。
  3. 传输层
    该层对应OSI七层模型传输层,含有协议TCP和UDP,两者最重要的信息是端口。除了端口外,Header Length、Flags都能作为过滤条件。
Linux iptables

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables和netfilter的关系:
iptables只是Linux防火墙的管理工具,位于/sbin/iptables。实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。

iptables传输数据包的过程

  1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
  2. 如果数据包就是进入本机的,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
  3. 如果数据包是要转发出去的,且内核允许转发,数据包就经过FORWARD链,然后到达POSTROUTING链输出。

iptables的规则表和链

  • 表(tables)提供特定的功能
    iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

  • 链(chains)是数据包传播的路径
    当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。

  • 规则表

    1. filter表——三个链:INPUT、FORWARD、OUTPUT,用于过滤数据包 内核模块:iptables_filter.
    2. Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT,用于网络地址转换(IP、端口) 内核模块:iptable_nat
    3. Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD,用于修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle
    4. Raw表——两个链:OUTPUT、PREROUTING,用于决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
  • 规则链

    1. INPUT——进来的数据包应用此规则链中的策略
    2. OUTPUT——外出的数据包应用此规则链中的策略
    3. FORWARD——转发数据包时应用此规则链中的策略
    4. PREROUTING——对数据包作路由选择前应用此链中的规则
    5. POSTROUTING——对数据包作路由选择后应用此链中的规则
  • 规则表之间的优先顺序
    Raw——mangle——nat——filter

iptables命令管理控制选项

iptables --helpUsage: iptables -[ACD] chain rule-specification [options]iptables -I chain [rulenum] rule-specification [options]iptables -R chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LS] [chain [rulenum]] [options]iptables -[FZ] [chain] [options]iptables -[NX] chainiptables -E old-chain-name new-chain-nameiptables -P chain target [options]iptables -h (print this help information)Commands:
Either long or short options are allowed.--append  -A chain            Append to chain--check   -C chain            Check for the existence of a rule--delete  -D chain            Delete matching rule from chain--delete  -D chain rulenumDelete rule rulenum (1 = first) from chain--insert  -I chain [rulenum]Insert in chain as rulenum (default 1=first)--replace -R chain rulenumReplace rule rulenum (1 = first) in chain--list    -L [chain [rulenum]]List the rules in a chain or all chains--list-rules -S [chain [rulenum]]Print the rules in a chain or all chains--flush   -F [chain]          Delete all rules in  chain or all chains--zero    -Z [chain [rulenum]]Zero counters in chain or all chains--new     -N chain            Create a new user-defined chain--delete-chain-X [chain]          Delete a user-defined chain--policy  -P chain targetChange policy on chain to target--rename-chain-E old-chain new-chainChange chain name, (moving any references)Options:--ipv4      -4              Nothing (line is ignored by ip6tables-restore)--ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]source specification
[!] --destination -d address[/mask][...]destination specification
[!] --in-interface -i input name[+]network interface name ([+] for wildcard)--jump -j targettarget for rule (may load target extension)--goto      -g chainjump to chain with no return--match       -m matchextended match (may load extension)--numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]network interface name ([+] for wildcard)--table       -t table        table to manipulate (default: `filter')--verbose     -v              verbose mode--wait        -w [seconds]    maximum wait to acquire xtables lock before give up--line-numbers                print line numbers when listing--exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only--modprobe=<command>          try to insert modules using this command--set-counters -c PKTS BYTES  set the counter during insert/append
[!] --version   -V              print package version.

示例:
只允许管理员从192.168.184.0/24网段使用SSH远程登录防火墙主机。

iptables -A INPUT -p tcp --dport 22 -s 192.168.184.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

1.6 防火墙的分类

防火墙的分类方法,主要有以下6种:

  1. 软硬件形式分类:软件防火墙、硬件防火墙、芯片级防火墙。
  2. 防火墙技术分类:包过滤型防火墙、代理型防火墙。
  3. 防火墙结构分类:单一主机防火墙、路由集成式防火墙、分布式防火墙。
  4. 防火墙的应用部署位置分类:边界防火墙、个人防火墙、混合防火墙。
  5. 防火墙性能分类:百兆级防火墙、千兆级防火墙。
  6. 防火墙使用方法分类:网络层防火墙、物理层防火墙、链路层防火墙。

有需要网络安全资料和学习路线的朋友可以私信博主。
或者加博主WeChat:

【leaning柚子茶】jyd_224


【转载】

防火墙的基本概念(2)防火墙——leaning柚子茶

防火墙的基本概念(2)防火墙相关推荐

  1. 计算机防火墙知识点,防火墙及防火墙的基本概念-信息安全工程师知识点

    信息安全工程师知识点:防火墙及防火墙的基本概念 防火墙是一种较早使用.实用性很强的网络安全防御技术,它眶挡对网络的非法访问和不安全数据的传递,使得本地系统和网络免于受到许多网络安全威胁.本小节介绍防火 ...

  2. 防火墙系列(二)-----防火墙的主要技术之包过滤技术,状态检测技术

    防火墙系列(二)-–防火墙的主要技术 必备知识:TCP/IP基础 包过滤技术 工作对象–>数据包 防火墙要在数据包进入系统之前处理它 实现包过滤技术的防火墙模块要在操作系统协议栈的网络层的位置. ...

  3. 网络安全基础 之 防火墙 双机热备、防火墙类型、组网方式、工作模式、逻辑区域划分

    目录 概念: 特征: 作用: 基本功能: 防火墙的分类: 性能划分: 设备形态分类: 技术划分: 包过滤防火墙: ACL七元组: 逻辑区域: 配置方式: 自定义安全区域: 删除自定义安全区域: 防火墙 ...

  4. 防火墙邮件服务器h3c,H3C防火墙:安全区域

    原标题:H3C防火墙:安全区域 传统防火墙通常都基于接口进行策略配置,网络管理员需要为每一个接口配置安全策略. 防火墙的端口朝高密度方向发展,基于接口的策略配置方式给网络管理员带来了极大的负担,安全策 ...

  5. linux防火墙常用控制协议,Linux防火墙iptables的基础

    一.网络访问控制 1.Linux一般都是作为服务器系统使用,对外提供一些基于网络的服务 2.通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能 3.常见的访问控制包括:哪些IP可以访问服务器 ...

  6. 对linux防火墙规则的优化,Linux防火墙规则优化的研究

    摘要: 随着Internet在全球范围内的迅速发展和广泛应用,在给人们的生活带来方便和快捷的同时,也带来了大量的问题,这其中就包括网络信息安全问题.作为常用的处理网络安全问题的工具,防火墙作用就显得尤 ...

  7. 什么是内部防火墙?它与外部防火墙有什么不同?

    内部防火墙是一种安全解决方案,旨在保护网络免受已经越过边界的攻击.一般来说,防火墙是一种设备或软件,旨在监控流量并防止未经授权的访问,而内部防火墙是该概念的高级应用程序. 在比较内部防火墙与外部防火墙 ...

  8. 防火墙(一):防火墙基础知识了解

    防火墙了解 1.什么是防火墙,为什么需要防火墙? 2.数据流传输过程 2.1网络数据传输过程 2.2本机数据路由决策 3.TCP三次握手.四次挥手及syn攻击 3.1三次握手建立TCP连接 3.2四次 ...

  9. 下防火墙命令与centos7下防火墙命令区别

    一.centos6防火墙命令  1.查看防火墙规则  #iptables -L  2.状态.开启.关闭.重启防火墙  #service iptables status  #service iptabl ...

最新文章

  1. 这24个高频存储问题,你一定要知道!如何不停机,安全更换数据库?大厂都怎么做MySQL到Redis同步的?...
  2. 关于__init、__initdata和__exit、__exitdata的学习笔记
  3. 贝塞尔曲线 cubic-bezier()
  4. Unity 8 和 Snap 将会是 Ubuntu 的未来
  5. delete from表名和truncate table 表名的区别
  6. 我们需要打造有意识的人工智能吗?
  7. 《大数据》2015年第3期“网络大数据专题”——网络表示学习(下)
  8. 阿拉伯数字转换英文数字表示算法解析及其实现
  9. 利用Telerik Fiddler 进行手机抓包!
  10. Google提供的超强圆角效果
  11. 三菱PLC 串口通信开发心得经验
  12. java计算机毕业设计Vue.js网上书城管理系统设计与实现服务端源码+mysql数据库+系统+lw文档+部署
  13. 任正非:向谷歌军团学习,扑上去,杀出一条血路
  14. Linux Canbus调试笔记
  15. LaTeX--简易教程--论文写作神器
  16. Web Of Science检索页面错误信息修改申请方法
  17. 安卓市场 android2.1.1,iLike安卓数据恢复专业版
  18. python中 ... 的作用
  19. seo关键词词库表格的建立和关键词分组
  20. 刘若英唱《后来》失控大哭:初听不知曲中意,再听已是曲中人

热门文章

  1. 手机SD卡损坏的修复方法
  2. 【行研资料】2020中国汽车用户消费洞察白皮书(2021)——附下载
  3. 01一起来吃西瓜——线性回归
  4. 九龙证券|什么是庄家洗盘和出货?各有什么特征?
  5. java s1 s2 s3 s4_电源管理中的S0 S1 S2 S3 S4 S5
  6. 【板栗糖GIS】arcmap—如何防止数据路径失效出现红色感叹号
  7. 【数据结构与算法学习笔记001】Kalman滤波
  8. C++取整的几种方式
  9. B/S基于springMVC的网上选课系统(功能齐全javaweb)
  10. 氟孕酮 cas:337-03-1 Flugestone 分子式:C21H29FO4分子量:364.45熔点 275-277°C