Linux九阴真经之大伏魔拳残卷2(linux防火墙)

防火墙概念

从逻辑上讲,防火墙可以答题分为主机防火墙和网络防火墙

主机防火墙: 针对于单个主机进行防护。

网络防火墙:往往处于网络入口或边缘,针对于网路入口进行防护,服务于防火墙背后的本地局域网。

网络防火墙和主机防火墙并不冲突,可以理解为 网络防火墙主外(集体), 主机防火墙主内(个人)。

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

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

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

iptables

简介

iptables 其实不是真正的防火墙,我们可以把它理解为一个客户端代理,用户通过iptables 这个代理,将用户的安全设定执行到对应的“安全框架”中, 这个“安全框架” 才是真正的防火墙,这个框架的名字是netfilter

netfilter是linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:

网络地址转换--NAT

数据包内容修改

数据包过滤的防火墙功能

所以说 虽然我们使用service  iptables  start 启动服务 ,但其实准确来说,iptables 并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

iptables基础

当客户端访问服务器的web服务时,客户端发送报文到网卡上,而tcp/ip 协议栈是属于内核的一部分,所以客户端的信息回通过内核的TCP 协议传输到用户空间中的web服务中,而此时客户端报文的目标终点为web服务所监听的套接字(IP : Port)上,当web服务需要相应客户端请求时,web服务发送的响应报文的目标终点则为客户端,这个时候。web服务所监听的IP 与端口反而变成了原 ;我们说过 netfilter 才是真正的防火墙,它是内核的一部分,所以 如果我们想要防火墙能够达到 “防火”的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的需要被阻挡,于是就出现了input 和 output 关卡, 而这些 关卡 在iptables 中 被称为 “

我们上面描述的 并不完善,因为客户端发来的报文访问的目标地址可能并不是本机,而是其他服务器,当本机的内核支持IP_FORWARD时, 我们可以将报文转发给其他服务器,所以 这个时候,我们就会用到 “关卡”,也就是“链”,他们就是“路由前”、“转发”、“路由后”、,他们的英文名是PREROUTING、FORWARD、POSTROUTING

也就是说,当我们启用了防火墙功能时,报文需要经过如下关卡, 要根据实际情况不同,报文经过的“链”可能不同。如果报文需要转发,那么报文则不会经过input 链发往用户空间,而是直接在内核空间中经过forward链和 postrouting 链转发出去的

 根据上图,我们能够总结出 报文流向的三种场景

1、到本机进程的报文:PREROUTING---> INPUT

2、由本机转发的报文:PREROUTING --> FORWARD -->POSTROUTING

3、由本机的某进程发出报文(通常为响应报文) :OUTPUT --> POSTROUTING

链  

 我们知道,防火墙的作用就在于对经过的报文匹配“规则”,然后执行对应的“动作”,所以当报文经过这些关卡的时候,必须匹配到这个关卡上的规则,但是这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了“链”, 所以我们把每一个关卡想象成如下图 所示的模样,这样来说,把他们称为“链” 更为合适,每个经过这个“关卡”的报文, 都要讲这条“链”上所有的规则匹配一遍, 如果有符合条件的规则, 则执行规则对应的动作。

 

 表

我们把相同功能的规则集合叫做“表”,所以说不同功能的规则,我们可以放置在不同的表中济宁管理,而iptables 已经为我们定义了4种表,每种表对应了不同的功能,二我们定义的规则也都逃脱不了这4种功能范围,所以学习iptables 之前 ,我们要搞明白每种表的作用。

iptables 为我们提供了如下规则的分类, 或者说 iptables 为我们提供了如下“表”

filter表:负责过滤功能,防火墙;内核模块:iptables_filter

nat表:network address translation ,网络地址转换功能;内核模块:iptable_nat

mangle表 :拆解报文,做出修改,并重新封装的功能; iptable_mangle

raw表:关闭nat表上启用的连接追踪机制; iptable_raw

也就是说,我们自定义的所有规则,都是这四种分类中的规则,或者说 所有规则都存在于这4张表中

iptables规则管理

iptables  -F  :清除所有规则

iptables  -F  INPUT: 清除 INPUT 里所有规则

iptables  -nvL  INPUT : 查看规则的详细信息,包括端口,IP地址

猜你喜欢

转载自www.cnblogs.com/huxiaojun/p/9248596.html