码迷,mamicode.com
首页 > 其他好文 > 详细

iptables详解(1):iptables概念

时间:2019-12-05 22:41:52      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:源地址   mic   部分   linux   命令行   需要   系统   font   处理模块   

防火墙相关概念。

逻辑上,防火墙可以分为主机防火墙和网络防火墙。

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

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

网络防火墙和主机防火墙并不冲突,网络防火墙主外(集体),主机防火墙主内(个人)

 

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

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

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

 

iptables其实不是真正的防护群殴爱你个,理解为一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应内核空间netfilter

iptables是命令行工具,位于用户空间,利用命令行操作内核空间的netfilter,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

netfilter是Linux操作系统核心层内部的数据包处理模块,功能如下:

1.网络地址转换(Network Address Translate)

2.数据包内容修改

3.数据包过滤的防火墙功能

 

iptables基础

iptables是按照规则处理数据包。

规则 存储在内核空间的信息包过滤表中。

        规则指定 源地址、目的地址、传输协议(如TCP、UDP、ICMP)、服务类型(如HTTP、FTP、SMTP)等。

处理 当数据包的包头符合规则指定的内容,iptables就执行所定义的方法来处理这些数据包。

        处理方法主要有放行(accept)、拒绝(reject)、丢弃(drop)

配置防火墙的主要工作就是添加、修改和删除这些规则。

 

客户端访问服务器的web服务时,客户端发送报文到网卡,而tcp/ip协议栈是属于内核一部分,客户端信息会通过内核的TCP协议传输到用户空间的web服务中,此时的客户端报文的目标终点为web服务所监听的套接字(IP:port)上,当web服务需要响应客户端请求时,web服务发出的响应报文的目标终点则为客户端,这个时候,web服务所监听的ip和端口反而变成了原点。

 

 技术图片

 

技术图片

 

 

①客户端报文访问目标地址是本机某进程。经过的内核链是  PREROUTING链 --> INPUT链--> web服务

②由本机某进程发出的报文。OUTPUT链 --> POSTROUTING链

③客户端访问的目标地址是其他服务器,转发作用,则不会经过INPUT链,也不会发往用户空间,而是直接在内核空间中经过forward链和postrouting链转发出去,经过的链是路由前、转发、路由后,PREROUTING链 -->  FORWARD链  --> POSTROUTING链

 

 链的概念

因为经过一个链的时候不可能只有一条规则,所以很多规则在链上就是下图

技术图片

 

 

表的概念

每个链上都有一串规则,但是有些规则是类似的A类规则都是对 ip 或者 端口的过滤,B类规则都是修改报文,实现相同规则的报文应该是可以放在一起的,规则分类相同功能放在一起的集合叫做“表”

filter表:过滤。                                                   内核模块:iptables_filter

nat表:网络地址转换。                                       内核模块:iptables_nat

mangle表:拆解报文,做出修改,并重新封装。内核模块:iptables_mangle

raw表:关闭nat表上启用的连接追踪机制。        内核模块:iptables_raw

 

表和链的关系

某些 “链” 中注定不会包含某种规则,就好像游戏中A关卡只负责打击陆地敌人,没有防空能力,B关卡可能只负责空中敌人没有防御步兵能力

                                 技术图片

 

prerouting链只拥有 nat 表、raw表和mangle表所对应功能,prerouting规则只存放在nat、raw和mangle表

PREROUTING  规则可以存在  raw表,mangle表,nat表

INPUT               规则可以存在                mangle表,filter表

FORWARD       规则可以存在                mangle表,filter表

OUTPUT           规则可以存在  raw表, mangle表,filter表,nat表

POSTROUTING 规则可以存在               mangle表,nat表

 

但是在实际的使用过程中,是以“表”作为操作入口,对规则进行定义,表(功能)< -- > 链 (钩子)

raw表             规则可以被使用的链   PREROUTING、OUTPUT

mangle表       规则可以被使用的链    

 

iptables详解(1):iptables概念

标签:源地址   mic   部分   linux   命令行   需要   系统   font   处理模块   

原文地址:https://www.cnblogs.com/chenxiaomeng/p/11991912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!