01-iptables防火墙安全

01-iptables防火墙安全

防火墙是什么

防火墙好比一堵真的墙,能够隔绝些什么,保护些什么。

防火墙的本义是指古代构筑和使用木制结构房屋的时候,为防止火灾的发生和蔓延,人们将坚固的石块堆砌在房屋周围作为屏障,这种防护构筑物就被称之为"防火墙"。其实与防火墙一起起作用的就是"门"。

如果没有门,各房间的人如何沟通呢,这些房间的人又如何进去呢?当火灾发生时,这些人又如何逃离现场呢?

这个门就相当于我们这里所讲的防火墙的"安全策略",所以在此我们所说的防火墙实际并不是一堵实心墙,而是带有一些小孔的墙。

这些小孔就是用来留给那些允许进行的通信,在这些小孔中安装了过滤机制,就是防火墙的过滤策略了。

防火墙的作用

防火墙具有很好的保护作用,入侵必须首先穿越防火墙的安全防线,才能接触到机器。

防火墙功能

防火墙对流经他的网络通信进行扫描,这样能够过滤掉一些攻击,以免在其目标计算机上被执行。防火墙可以关闭不使用的端口。而且还能禁止特定端口流出通信。

最后,他可以禁止来自特殊站点的访问,从而防止来历不明入侵者的所有信息。

防火墙概念

防火墙一般有硬件防火墙和软件防火墙

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分基于软件实现,性能高,成本高。

软件防火墙:应用软件处理逻辑运行于硬件平台之上的防火墙,性能低,成本低。

软件防火墙

Linux提供的软件防火墙,叫做iptables,可以理解为是一个客户端代理,通过iptables的代理,将用户配置的安全策略执行到对应的安全框架中,这个安全框架叫做netfilter

  • iptables是一个命令工具,位于用户空间,使用这个工具操作真正的框架也就是netfilter
  • 真正实现流量过滤的是netfilter,位于内核空间,共同组组成了Linux防火墙,来代替价格昂贵的硬件防火墙,实现数据包过滤,网络地址转换等。

在Centos7发行版下,firewalld防火墙取代啦iptables防火墙

  • iptables是将配置好的规则交个内核netfilter网络过滤器处理
  • firewalld服务是将配置好的防火墙规则交给内核层netfilter网络过滤处理
  • 一般选用iptables适用于大部分Linux操作系统

1.iptables是什么

复制代码
iptables是开源的基于数据包过滤的防火墙工具

2.iptables使用场景

复制代码
1、主机防火墙(filter表的INPUT链)。
2、局域网共享上网(nat表的POSTROUTING链)。半个路由器,NAT功能。
3、端口及IP映射(nat表的PREROUTING链),硬防的NAT功能。
4、IP一对一映射。

3.商用防火墙品牌

复制代码
华为
深信服
思科
H3C
Juniper
天融信
飞塔
网康
绿盟科技
金盾
奇安信

第2章 iptables工作流程

iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。

  • 1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
  • 2.如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。
  • 3.如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
  • 4.防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。

1760195825387)

什么是netfilter

网络过滤器

复制代码
Netfilter,在Linux内核中的一个软件框架,用于管理网络数据包。

不仅具有网络地址转换的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能

netfilter是一个linux内核自带的一个网络协议处理软件,提供过滤、修改数据包的功能。
主要定义了5个链,来定义数据报文的动态。

- prerouting链---路由前
- input 链----本地上送
- output 链----本地发送
- forward 链----转发
- post routing 链---路由后

这些链决定了数据报文,到底应该是 accept方形,还是drop丢弃。

链是我们关心,以及要操作的一个重要点,也就是定义了防火墙的一条条规则。

nginx>server

复制代码
1. 浏览器访问nginx,client的数据报文到达服务器网卡,此时的tcp/ip信息要经过内核的处理,再到达用户空间的nginx。

10.0.0.1:33224 > 10.0.0.7:80 此时建立了一个TCP

2.当nginx响应时,数据传输过程就完成了
nginx>client ,数据要从nginx到达客户端的目标地址

3.请求与响应过程,都出现
原地址  目标地址

4,这个请求响应的数据报文,都在内核空间,我们如果要实现防火墙功能,也就是到底要允许,还是要拒绝这些数据包?
我们就要设置关卡
符合条件的才被放行 accept
不符合的就被阻止  drop

因此这个关卡,最基本的出现input关卡,output关卡

其实这个关卡叫做链的概念

2.其他链也来了

刚才我们描述的关系,是很明确的,开源地址,目的地

10.0.0.1:32447 > 10.0.0.7:80

但有时候,客户端的报文请求目标地址,可能不是当前机器,而是另一台机器,还好netfilter支持forward转发数据包的流量

  • 因此就引入了iptables的3个链关卡
    • 转发前--preouting链
    • 转发链--forward链
    • 路由后---postrouting链

也就是说,我们打开iptables防火墙后,数据报文就会按照如图所示的规则走,产生不同的动作

1、报文若是转发,就不走input走foward链,最终从postrouting链离开服务器

  1. 若是报文直接发送给当前服务器,直接走input进入应用

常见链的处理关系

1.本服务器进程处理 clinet > prerouting > input > output > postrouting > client

  1. 数据包经过本机转发 client > prerouting > forward > postrouting

链的作用

复制代码
关卡为什么会被称作链
是因为,数据报文再经过关卡的时候,会有层层规则,这很多条规则被串成一个链的概念。

简单说就是,当数据报文要经过 某个链的时候,要遵守该链的每一个规则,如果有xx规则成立了,执行对应的动作。

3.表的概念

链的概念我们已经有了,就是一些列数据包限制行为的规则,

A类规则是对IP的过滤

B类规则是对数据包的修改转发

因此iptables里将相同功能的规则,合并为了表的概念,默认有4种功能的表,使用iptables的功能,也就被这4个表的功能限定了。

复制代码
filter表,数据包过滤
nat表,网络地址转发
mangle表,拆解报文,修改报文
raw表,取消链路跟踪

4.图解数据包经过防火墙的完整流程

解释表与链的作用

filter表

复制代码
1. filter是防火墙默认表,主要和主机自身数据包有关,负责防火墙的数据包进入、离开;

filer表有三个链,控制服务器防火墙功能

- input,过滤目标地址就是本机的数据包
- forward,转发经过本机的数据包,实现数据包转发的功能
- output,本机需要发出去的数据包

NAT表

复制代码
1. nat表,主要负责网络地址转换,也就是可以修改
源地址的ip:port
目标地址的ip:port
使用场景:
和主机本身无关,而是实现如局域网共享上网,或者端口服务转换。

工作场景:
- 利用iptables实现网关功能,实现postrouting共享上网
- 实现外部IP地址 1 对1的映射关系,实现dmz网络区域
- web服务的,单个端口的映射关系(postrouting)

因此nat表就是实现,如交换机的功能。

三个链
- ouput链,和主机放出去的数据包有关,修改主机发出的数据包目的地。
- prerouting链,数据包到达防火墙(filter)前,进行规则判断,如修改数据包的目的地,目的端口。
如将80端口的请求数据包,转发到9090端口

- postrouting链,数据包离开防火墙之后,修改数据包的源地址。
如,笔记本,vmware的机器,都是局域网的地址,但是被路由器将源地址,改成了公网的地址。

看到这大家记住浏览的转发就好了。

相关推荐
用户9623779544816 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机19 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机19 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544821 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star21 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Sinclair4 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean5 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek