文章目录
- 1.防火墙
- 2.Iptables基本介绍
- 2.1 什么是iptables
- 2.2 什么是包过滤防火墙
- 2.3 包过滤防火墙如何实现
1.防火墙
Linux防火墙
主要工作在网络层,针对 TCP/IP
数据包实施过滤和限制,典型的包过滤防火墙,基于内核编码实现,具有非常稳定的性能和高效率。通过控制进入和离开网络的流量来保护计算机或者网络免受攻击和未经授权的访问。防火墙可以根据预设规则对进出网络的数据包进行过滤、阻止或转发,从而有效地限制了网络上的非法或恶意行为,并提高了网络的安全性。
2.Iptables基本介绍
Iptables 是配置 Netfilter 过滤功能的用户空间工具。netfilter 才是防火墙真正的安全框架(framework),netfilter 位于内核空间。iptables 其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。Iptable 根据规则所定义的方法来处理数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。
iptables
:用来管理 Linux 防火墙的命令程序,位于/sbin/iptables
目录下,属于用户空间
的防火墙管理体系。netfilter:Linux
内核中实现包过滤防火墙的内部结构,一般不以程序
或文件
的形式存在,属于内核空间
的防火墙管理体系。
iptables 的作用
:为包过滤机制的实现提供规则,通过各种不同的规则,来告诉netfilter
对来自某些源以及前往某些目的或具有某些协议特征的数据包是如何进行处理的。
2.1 什么是iptables
可以把iptables理解为一个代理程序(用户空间),用户可以通过这个代理程序把安全规则添加到安全框架。这个安全框架才是真正的防火墙,这个安全框架就是netfilter ( 内核空间 )。
用户--》iptables代理程序(用户空间) --》安全规则--》安全框架 --》netfilter ( 内核空间 )
netfilter/iptables实际上是包过滤型防火墙,实现数据包过滤、数据包转换。
2.2 什么是包过滤防火墙
iptables是一个包过滤防火墙,在网络层去拦截网络数据包的包头header,与预先定义好的防火墙的规则进行比对,也就是包头与IPtables的规则进行比对。与规则相匹配的包可以放行,不匹配的则会丢弃,或者执行一些复杂的动作。包过滤防火墙一般作用在网络层,故也称之网络层防火墙。
那个与header中的什么作比对?
客户端--》服务端
客户端源IP 源端口
目标IP 目标端口 协议类型 tcp、udp、icmp
2.3 包过滤防火墙如何实现
包过滤防火墙究竟是如何实现的呢?其实包括包过滤防火墙由netfilter这个安全框架来实现的,它是内核的一部分。想防火墙能够达到防火的目的,需要在内核中设定一些个关卡。那么所有进出的报文都需要经过所设定的这些个关卡进行检查,将符合条件的放弃,不符合的进行阻止,那么这些个关卡在IPtables中不叫关卡,叫链的概念。
例如当客户端访问服务器的web服务时,客户端发送报文到网卡,而 tcp/ip 协议栈是属于内核的一部分,所以,客户端的信息会通过内核的 TCP 协议传输到用户空间中的 web 服务中,而此时,客户端报文的目标终点为 web 服务所监听的套接字(IP:Port)上,当web服务需要响应客户端请求时,web 服务发出的响应报文的目标终点则为客户端,这个时候,web 服务所监听的 IP 与端口反而变成了原点,netfilter 才是真正的防火墙,它是内核的一部分,所以,如果想要防火墙能够达到”防火”的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止。