IPtables之一:基本概念介绍

2023-11-08

原文地址: http://www.2cto.com/Article/201207/142771.html
防火墙按照实现方法可以分为软件防火墙和硬件防火墙
纯硬件防火墙是很少的,一般见到的防火墙设备都是依靠软件搭配实现
 
按照功能可以将防火墙分为包过滤防火墙和网关代理型防火墙
包过滤防火墙
工作在网络层和传输层。特点:效率高,安全性不及网关型防火墙
包过滤防火墙又可以分为“状态检测型”和“简单包过滤型”
网关代理型
工作于应用层,位于OSI的最高层。特点:效率低,安全性好
 
而在linux中,iptables是一款自带的防火墙软件,基于内核实现网络流量的过滤
针对数据包的IP地址,端口,标志位,连接状态定义相应的防火墙规则,匹配规则后用指定的处理机制进行处理,可以是允许,可以是丢弃
 
首先简单介绍一下一个数据包进入linux后是如何处理的
 
数据包从网卡1进入linux主机后,首先进入内核维护的网络内存空间队列。内核接手数据包后,会进行一系列的流水线处理
 
内核的TCP/IP协议栈解封IP头部后,先是检测数据包的目的IP,然后对比路由表
如果目标IP是指向自己,于是检测TCP首部,将数据包递交给处于内核空间和用户空间的套接字(即端口),让用户空间的程序进行处理。用户程序从套接字取出数据后,进行处理后,改写目标IP和源IP,从新递交给对应的套接字。然后TCP/I协议栈进行数据包的封装,原路返回
如果目标IP不是自己,对比路由表,如果是将要从网卡2发送出去的。TCP/IP协议栈就直接将数据从内存中取出,交由网卡2发送出去,这一切将都在内核空间完成,无需进入用户空间
IPtables分为2部分,一部分位于内核中,用来存放规则,称为NetFilter。还有一段在用户空间中,用来定义规则,并将规则传递到内核中,这段在用户空间中的程序就叫做iptables。
其中存放规则有5个地方,分别位于1、2、3、4、5 这5个点
1是由内部主动发往外部的规则,2是由外部发往内部的规则,3是不进入用户空间,进行路由转发的规则,4是数据进来,还未查询路由表之前的规则,5是查询完路由表,将要出去的规则
在这5个点都可以定义不同的规则,用以实现处理不同流向的数据包
这5个过滤点,在内核中也叫做hook function(钩子函数)
而这5个钩子,也有着个自的名字
1:input 2:output 3:forward 4:prerouting 5:postrouting
对于4和5,主要是为了实现NAT功能
真正做数据过滤的地方在123这3个点
具体数据的流向
 

 
在这张图中,raw用的比较少不多做介绍,而mangle主要用以数据包的的修改。在处理数据包时,优先级依次以mangle、nat、filter排序
 
在iptables中,以链为单位定义一组规则,对于不同功能的链又组成不同的表
 
链也可以自定义创建,但不会直接生效,需要在默认的链中建立规则跳转,可以将数据包的匹配检查跳转到自定义创建的链中。如果在自定义创建的链中匹配到,就直接进行处理,如果匹配不到,就跳转会默认的链中
 
由于这一切都是在内核中完成的,所以在用户空间中的iptables传递规则给netfliter后,并不会永久有效,在重启后规则就会丢失,于是可以将规则写成脚本,在每次启动系统时将规则传递给内核
 
而redhat则使用另外一种机制来应用规则和取消规则,具体的实现方法,下篇博文再细细介绍
摘自:lustlost.blog.51cto.com/2600869/937471


其他资料:http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html
                     http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IPtables之一:基本概念介绍 的相关文章

  • 关于:Google Chrome 官方下载地址

    1 官方在线安装版 Google Chrome 网络浏览器https www google cn intl zh CN chrome 2 官方离线安装版
  • 全球根服务器分别部署在哪里?

    全球真的只有13台根服务器么 10台根服务器都在美国 如果根服务器被关闭 我们会不会被断网 关于DNS部署与根服务器的几点论述 知名网络黑客防御专家 东方联盟创始人郭盛华透露 根名称服务器是任何域名系统 DNS 服务器 它响应 DNS 根区
  • 词云制作(中文分词+英文)

    英文文本制作词云图 pip install wordcloud filename XX txt 将目标文本文件放入这里 with open filename encoding utf8 as f mytext f read mytext 查
  • openstack镜像的管理与使用

    1 创建项目和用户 1 1 创建项目和用户 用SSH工具连接控制节点 这里是10 10 83 3 使用admin用户权限 执行如下命令 root admin openrc 1 2创建一个test项目 openstack project cr
  • HIT-ICS2022大作业(程序人生-Hello’s P2P)

    计算机系统 大作业 题 目 程序人生 Hello s P2P 专 业 计算机科学与技术 学 号 班 级 学 生 指 导 教 师 计算机科学与技术学院 2022年5月 摘 要 一个简单的Hello程序 其生命周期的整个P2P与020过程需要计
  • eNSP:ospf相关实验

    一 实验要求 二 实验步骤 1 建设如下图拓扑并划分网段 2 配置R1 R4的接口和回环地址 R1 r1 int g0 0 0 r1 GigabitEthernet0 0 0 ip add 192 168 1 1 27 r1 int l 0
  • 开源P2P视频流媒体源代码研究

    1 Azureus http azureus sourceforge net 这是java版的betorrent 最新版本2 4 0 2 从网上直接下载的源代码是没法构建的 所用的库没有在包里面 可以到 http azureus cvs s
  • Windows10如何添加开机启动项

    在日常生活中 偶尔要求其中的软件在开机时便能自动启动 比如MySQL一般被设置为自启动项 今天将为大家介绍window10中如何添加开机启动项 操作过程 1 按下win R调出运行窗口 并输入 shell startup 即可进入开机启动文
  • 点对点如何通过路由器工作?

    一台电脑如何通过互联网连接到另一台电脑 例如 程序侦听 PC 1 上的连接 PC 1 位于路由器 1 后面 PC 2 有一个客户端程序尝试连接到 PC 1 在这种情况下 用作听力程序的正确技术 技巧是什么 This 布莱恩 福特的文章解释跨
  • Android 可以进行点对点自组织网络吗?

    是否可以将 Android 设置为 ad hoc 对等 wifi 模式 例如 我想让一部电话广播一条消息 并让网络中的所有对等方接收广播 而无需服务器 我想使用 wifi 因为蓝牙范围更有限 这是有关您请求的功能的错误报告 它的状态是 已审
  • 使用 Java 和 Corba 识别对等文件共享中的客户端。并在 2 个客户端之间建立套接字套接字

    我正在使用 Java 和 CORBA 开发一个点对点文件共享应用程序 我是 CORBA 新手 到目前为止 我已经成功创建了一个客户端程序 该程序通过 CORBA 在 SQL 数据库中注册一个文件 该表存储以下信息 filename 共享 基
  • NAT 后面的 UDP 打洞

    我正在尝试用 Java 实现 UDP Holepunching 的简单草图来测试它的概念 并稍后在我的 C C 应用程序中使用它 Concept 根据维基百科 我对这个概念的理解是这样的 假设 A 和 B 是未定义网络结构后面的客户端 C
  • 在 Kademlia 中,为什么建议使用 160 位节点 ID 和密钥而不是 128 位?

    Kademlia 论文指出 节点被分配了随机的 160 位 ID 和密钥 这是一个严格的限制吗 如果我觉得足够好 我还可以继续使用 128 位密钥空间吗 选择这个长度是因为用作哈希表键的哈希函数的 SHA1 输出 160 位 这是当时使用最
  • NAT后的两个节点如何通信?

    我有一些节点 每个节点都属于其他网络 每个节点都有私有IP 例如192 168 0 2并保持在 NAT 之后 节点之间是否有可能进行通信 实际上 我需要在这些独立节点之间传输文件 我尝试使用这个项目 https github com lib
  • 种子中的 DHT

    我正在编写一个 P2P 实现 我希望将其去中心化 然而我在掌握如何做时遇到了一些困难DHT https en wikipedia org wiki Distributed hash table在像 BitTorrent 这样的协议中是有效的
  • “dat”协议能否有效支持视频直播?

    我希望能够通过以下方式实时流式传输视频 或任何其他大型且不断修改 附加的文件 dat Here https github com beakerbrowser webdb performance它说 dat 协议不支持文件级别的部分更新 这意
  • WCF 是否支持点对点实现?

    我正在尝试在 LAN 内实现点对点消息传递和文件共享实用程序 那么 WCF 支持 p2p 吗 有人尝试过通过 WCF 进行文件共享吗 是的 它确实 请参见如何在对等网络中设计状态共享 http msdn microsoft com en u
  • 为什么我在使用 WifiP2pManager 时总是显示 BUSY?

    我正在尝试使用 Wi Fi Direct 连接两个 Android 设备 在我的 HTC 手机 One SV 上它似乎可以工作 但在我的第二台设备 LG Optimus 4xhd 上它不起作用 在我的 onResume 函数中 我启动以下线
  • 使用 STUN 打孔

    我目前正在尝试通过 Internet 发送 UDP 消息 并且必须为端点 A 和 B 都位于 NAT 后面 设置防火墙 为此 我想使用 STUN 服务器进行打孔 当 A 创建对 STUN 服务器的请求 例如 私有 85 1 1 12 600
  • 智能手机可以通过 3G/4G 进行点对点通信吗?

    我正在尝试编写一个应用程序 将数据从一个 Android 设备传输到另一个 Android 设备 但这些设备很可能位于城市 州或国家的不同部分 直接的方法是拥有一台中央服务器 或任何类型的服务器 但我试图避免使用中央服务器 我试图传递的数据

随机推荐

  • RAID详解与配置

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 RAID阵列详解 1 RAID级别 2 RAID0 条带化存储 3 RAID1 镜像存储 4 RAID5 条带加检验 5 RAID1 0 先做镜象 再做条带 6
  • AttributeError: ‘sqlalchemy.cimmutabledict.immutabledict‘ object has no attribute ‘setdefault‘

    原因和解决办法 AttributeError sqlalchemy cimmutabledict immutabledict object has no attribute setdefault 本报错是因为SQLAlchemy版本过高导致
  • vmwere安装ubuntu记录

    一 vmwere安装ubuntu 不选静默安装 先安装空的虚拟机 再从虚拟光盘启动ubuntu镜像 方便语言 时区等信息的选择 二 允许root登陆 1 sudo passwd root 2 sudo vim usr share light
  • 标准签到题

    链接 https ac nowcoder com acm contest 6840 H 来源 牛客网 题目描述 在大家的努力下 终于要进行第一届ACM集训队的选拔赛了 华华和辉辉商议了一下 准备一起给这次比赛出题 那么既然是比赛 为了不难为
  • cout顺序,i++和++i,*p++和*++p

    1 cout输出流顺序 cout是从右到左读取参数 如果参数是函数 则先执行函数体 再将返回的值压栈 否则直接将值压栈 最后再将栈中的值输出来 include
  • 【ChatGPT】用ChatGPT和通义千问写2023年高考语文作文——全国甲卷

    试题内容 阅读下面的材料 根据要求写作 60分 人们因技术发展得以更好地掌控时间 但也有人因此成了时间的仆人 这句话引发了你怎样的联想与思考 请写一篇文章 要求 选准角度 确定立意 明确文体 自拟标题 不要套作 不得抄袭 不得泄露个人信息
  • 题目 1017: [编程入门]完数的判断

    题目描述 一个数如果恰好等于不包含它本身所有因子之和 这个数就称为 完数 例如 6的因子为1 2 3 而6 1 2 3 因此6是 完数 编程序找出N之内的所有完数 并按下面格式输出其因子 核心和关键是如何求因数 双循环 使用if i j 0
  • Redis集群方案及实现

    之前做了一个Redis的集群方案 跑了小半年 线上运行的很稳定 差不多可以跟大家分享下经验 前面写了一篇文章 数据在线服务的一些探索经验 可以做为背景阅读 应用 我们的Redis集群主要承担了以下服务 1 实时推荐 2 用户画像 3 诚信分
  • 扩展欧几里得算法求特解以及通解

    扩展欧几里得算法 裴蜀定理 百度百科上的解释 裴蜀定理 或贝祖定理 得名于法国数学家艾蒂安 裴蜀 说明了对任何整数a b和它们的最大公约数d 关于未知数x和y的线性不定方程 称为裴蜀等式 若a b是整数 且gcd a b d 那么对于任意的
  • 软件测试报告包含哪些内容?

    软件测试报告一般包含以下内容 1 引言 目的 背景 缩略语 参考文献 2 测试概述 测试目的 项目介绍 测试目标 3 测试资源 测试人员 测试软硬件环境及配置 测试环境的网络拓扑 4 测试参考资料 在测试过程中所参考的文献资料等 5 测试进
  • moviepy简介及安装

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 概述 MoviePy是一个用于视频编辑的Python模块 可用于进行视频的基本操作 如
  • 特征工程(补充)--特征组合

    特征组合变化也属于特征选择的一种手段 这部分工作可发挥的空间就看你的想像力和经验了 这里的组合变化远不限于把已有的特征加减乘除 比如Kernel Tricks之类 举个比较有想像力的例子 现在市面上社交网络里面 你可能认识的人 的推荐算法几
  • 用通俗易懂的方式讲解大模型分布式训练并行技术:概述

    近年来 随着Transformer MOE架构的提出 使得深度学习模型轻松突破上万亿规模参数 传统的单机单卡模式已经无法满足超大模型进行训练的要求 因此 我们需要基于单机多卡 甚至是多机多卡进行分布式大模型的训练 而利用AI集群 使深度学习
  • linux配置sonarqube遇到的坑

    1 9000端口开了 sonar配置的9000端口 但是连接失败 sonar localhost linux x86 64 curl http localhost 9000 curl 7 Failed connect to localhos
  • Python记4(NumPy计算库

    目录 1 安装NumPy库 2 数组属性 3 创建数组 array 列表 或者array 元组 3 1 多维数组 3 2 数据类型 3 3 创建特殊的数组 3 4 asarray 将列表或元组转化为数组对象 3 5改变数组形状 reshap
  • c++ static修饰变量、函数、对象、数组

    文章目录 static相关语法 一 static 修饰变量 修饰局部变量 修饰全局变量 修饰类中变量 内存初始化时机 二 static修饰函数 修饰普通函数 全局静态函数 修饰类中的函数 静态成员函数 三 static修饰类对象 stati
  • CSS解决高度自适应问题

    高度自适应问题 我很抵触用js去解决 因为不好维护 也不够自然 但是纯用CSS 难度不小 比如下面我要说的例子 需求 1 这个矩形的高度和浏览器窗口的高度相同 不能出现纵向滚动条 2 绿色部分高度固定 比如50px 3 紫色部分填充剩余的高
  • 32位/64位WINDOWS驱动之保护特定名字进程【蓝屏修复】

    32位 64位WINDOWS驱动之保护特定名字进程 蓝屏修复 1 驱动层 进程保护 c 在const char PsGetProcessImageFileName PEPROCESS arg1 下添加 功能 进程ID 进程名称 const
  • Nginx 反向代理 proxy_pass 规则配置

    Nginx 其中一个作用是反向代理 有的时候 需要将某个请求转发到另外的地址做其他用途 基于某些原因 原请求地址 可能是比较长的 具体的请求地址 且不方便修改 因此需要在 proxy pass 中配置规则 用以满足条件 转发 Nginx p
  • IPtables之一:基本概念介绍

    原文地址 http www 2cto com Article 201207 142771 html 防火墙按照实现方法可以分为软件防火墙和硬件防火墙 纯硬件防火墙是很少的 一般见到的防火墙设备都是依靠软件搭配实现 按照功能可以将防火墙分为包