防火墙的基本概念及iptables四表五链详解

防火墙的基本概念及iptables四表五链详解

1.防火墙的基本概念

  • 防火墙是位于内外网之间的一组软硬件部件的组合,主要目的就是保护内外网的数据流通的安全,当外网访问内网的时候发送的数据包必须经过内网的防火墙检验是否符合规则。

  • 防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。

  • 防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。

2.防火墙的分类

从逻辑上讲,防火墙大体可以分为主机防火墙和网络防火墙:网络防火墙和主机防火墙互不影响,可以理解为网络防火墙负责外(集体),主机防火墙负责内(个人)

  • 主机防火墙:主要针对单个主机进行防护
  • 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网

从物理上讲,防火墙可以分为硬件防火墙和软件防火墙:

  • 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,成本高,性能高
  • 软件防火墙:应用处理软件逻辑运行于通用平台之上的防火墙,成本低,性能低

3.防火墙的功能

  1. 入侵检测功能
    网络防火墙技术的主要功能之一就是入侵检测功能,主要有反端口扫描、检测拒绝服务工具、检测CGI/IIS服务器入侵、检测木马或者网络蠕虫攻击、检测缓冲区溢出攻击等功能,可以极大程度上减少网络威胁因素的入侵,有效阻挡大多数网络安全攻击。
  2. 网络地址转换功能
    利用防火墙技术可以有效实现内部网络或者外部网络的IP地址转换,可以分为源地址转换和目的地址转换,即SNAT和NAT。SNAT主要用于隐藏内部网络结构,避免受到来自外部网络的非法访问和恶意攻击,有效缓解地址空间的短缺问题,而DNAT主要用于外网主机访问内网主机,以此避免内部网络被攻击。
  3. 网络操作的审计监控功能
    通过此功能可以有效对系统管理的所有操作以及安全信息进行记录,提供有关网络使用情况的统计数据,方便计算机网络管理以进行信息追踪。
  4. 强化网络安全服务
    防火墙技术管理可以实现集中化的安全管理,将安全系统装配在防火墙上,在信息访问的途径中就可以实现对网络信息安全的监管。

Linux中存在iptables和firewalld两种防火墙
iptables:更接近数据的原始操作,精度更高
firewalld:更易操作

4.防火墙的三表五链

防火墙的三张表分别为:filter表,nat表,mangle表,
五条链分别是INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING

INPUT和OUTPUT均包括经过内核和不经过内核的信息
FORWARD是经过内核的路由转发信息
POSTROUTING是不经过内核路由之后的信息
PREROUTING是不经过内核路由之前的信息

5.表功能及内核模块

如果要访问某台主机上面的http服务,必须先经过那台主机的内核允许,才可以进行访问
防火墙其实也是在内核上面开启的一个服务 防火墙里面有表格,写一些规则,允许哪个主机访问什么服务,这个表格由iptables进行控制

表名称功能内核模块
filter负责过滤功能,防火墙iptables_filter
nat(Network Address Translation)网络地址转换iptables_net
mangle拆解报文,修改,重新封装iptables_mangle
raw决定数据包是否被状态跟踪机制处理

第一张表:filter表:放的是经过内核的ip,可使用的链: input output forward
第二张表:nat表:放的不是经过内核的服务,可使用的链: input output postrouting prerouting
第三张表:备用表格mangle:可使用的链: input output forward postrouting prerouting
第四张表:raw表: 关闭nat表上启用的链接追踪机制:可使用的链:output prerouting

6.防火墙常用的行为动作

动作说明
ACCEPT允许数据包通过
DROP直接丢弃数据包,不给任何回应,此时客户端会不停地去向服务器发送数据包,发送超时才会有反映应
REJECT拒绝数据包通过,必要时会给数据发送端一个响应信息,如果客户端的请求被拒绝,就会收到拒绝的信息
SNAT源地址转换,解决内网用户用同一个公网地址上网的问题
MASQUERADE是SNAT的一种特殊形式,适用于动态的,临时会变的ip上
DNAT目的地址转换

7.数据包流向分析

在这里插入图片描述
在这里插入图片描述
基本步骤

  1. 数据包到达网络接口,比如 eth0
  2. 进入 raw表的 prerouting链,这个链的作用是赶在连接跟踪之前处理数据包
  3. 如果进行了连接跟踪,在此进行处理
  4. 进入 mangle 表的 prerouting链,在此可以修改数据包,比如 tos 等参数
  5. 进入 nat 表的 prerouting链,可以再做 DNAT ,但不要做过滤
  6. 决定路由,交给本机或者转发至其他主机

如果数据包需要转发

  1. 进入 mangle 表的 forward链,这是第一次路由之后,在决定第一次路由后,在最后的路由决定之前,仍然可以对数据包进行更改
  2. 进入 filter 表的 forward链,在这里可以对所有转发的数据包进行过滤,需要注意的是,经过这里的数据包是转发的,方向是双向的
  3. 进入 mangle 表的 postrouting链,到这里已经完成了所有的路由决定,但是数据包仍然在本地,我们依然可以进行某些修改
  4. 进入 nat 表的 postrouting链,这里一般做的是 SNAT ,不在这里进行过滤
  5. 进入出去的网络接口

如果数据包进入本机

7 )进入 mangle 表的 input 链,这是在路由之后,交由本地主机之前,我们也可以进行一些相应的修改
8 )进入 filter 表的 input 链,在这里我们可以对流入的所有数据包进行过滤,无论它来自那个网络接口
9 )交给本地主机的应用程序进行处理10 )处理完后进行路由决定,看该往哪里发出
11 )进入 raw表的 output 链,这里是在连接跟踪处理本地的数据包之前
12 )连接跟踪对本地的数据包进行处理
13 )进入 mangle 表的 output 链, 可修改数据包,但不进行过滤
14 )进入 nat 表的 output 链,可以对防火墙自己发出的数据做 nat
15 )再次进行路由决定
16 )进入 filter 表的 output 链,可以对本地出去的数据包进行过滤
17 )进入 mangle 表的 postrouting链,同上一种情况第 9步,但是这里不仅对经过防火墙的
数据包做处理,还对防火墙自己产生的数据包进行处理
18 )进入 nat 表的 postrouting链,做 snat,但不进行过滤
19 )进入出去的网络接口

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值