linux网络Netfilter与iptables技术
1、iptables基础
1.1 Netfilter与iptables引入
百度百科:Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。netfilter的架构就是在整个网络流程的若干位置放置了一些检测点(HOOK),而在每个检测点上登记了一些处理函数进行处理。
iptables是使用这个模块的软件,位于应用空间,Netfilter组件位于内核空间,是内核网络的一部分。通过它可以插入、修改、删除一些表,从而很好对对网络数据包进行有效安全管控。
1.2 Netfilter钩点
1.3 表与规则
表是链的容器、链是规则(policys)的容器。规则(policy)就是iptables过滤信息的具体方法。
表分为四种, 链分为五种。
表名包括:
raw:高级功能,如:网址过滤。
- mangle:数据包修改(QOS),用于实现服务质量。
- net:地址转换,用于网关路由器。
- filter:包过滤,用于防火墙规则。
规则链包括:
- INPUT链:处理输入数据包。
- OUTPUT链:处理输出数据包。
- PORWARD链:处理转发数据包。
- PREROUTING链:用于目标地址转换(DNAT)。
- POSTOUTING链:用于源地址转换(SNAT)。
表(table) | 链(chain) | |
filter | 默认表,实现防火墙数据过滤功能。 | |
INPUT | 对于指定到本地套接字的包,即到达本地防火墙的数据包。 | |
OUTPUT | 本地创建的数据包。 | |
FORWARD | 路由穿过的数据包,即经过防火墙的数据包。 | |
NAT | 当遇到新创建的数据包连接时将参考这个表。 | |
PREROUTING | 一进来就对数据包进行改变。 | |
OUTPUT | 本地创建的数据包在路由之前进行改变。 | |
POSTROUTING | 在数据包即将出去时改变数据包信息。 | |
mangle | 专门用于改变数据包 | |
INPUT | 进入到设备本身的包 | |
FORWARD | 对路由后的数据包进行修改 | |
PREROUTING | 在路由之前更改传入的包 | |
OUTPUT | 本地创建的数据包在路由之前进行改变 | |
POSTROUTING | 在数据包即将离开时更改数据包信息 | |
raw | 有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能 |
iptables中表和链的对应关系
INPUT | FORWARD | PREROUTING | OUTPUT | POSTROUTING | |
filter | YES | YES | NO | YES | NO |
NAT | NO | NO | YES | YES | YES |
mangle | YES | YES | YES | YES | YES |
raw | NO | NO | YES | YES | NO |
filter表
filter表 |
强调:主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包) filter表示iptables默认使用的表,定义了三个链 企业工作场景:主机防火墙 |
INPUT | 负责过滤所有目标地址是本机地址的数据包 |
FORWARD |
负责转发流经主机的数据包。起转发作用,和NAT关系很大。 LVS NAT模式:net.ipv4.ip_forward=0 |
OUTPUT | 处理所有源地址是本机地址的数据包 |
NAT表
NAT表 |
负责网络地址转换的,即来源和目的ip地址的port的转换 应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关。 工作场景: 1. 用于企业路由(zebra)或网关(iptables),共享上网(POSTROUTING) 2. 做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,FTP服务(PREROUTING) 3. WEB,单个端口的映射,直接映射端口80端口(PREROUTING) |
OUTPUT | 和主机放出去的数据包有关,改变主机发出数据包的目的地址 |
PREROUTING | 在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址,目的端口等。 |
POSTROUTING | 在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。 |
mangle表
mangle表 | 主要负责修改数据包中特殊的路由标记,例如TTL,TOS,MARK等。 |
raw表
有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能。RAW 表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链 上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度。
linux网络Netfilter与iptables技术相关推荐
- Linux网络架构: XDP, iptables/netfilter和iproute2/tc/ip/Qdiscs
本文目录 1.架构框图 2.网络架构分成三大块 3.网络架构-----对应的配置工具-----对应的原理与概念 说到Linux的网络架构,就离不开谈...这些东西.这几个概念很容易混淆起来,但如果仔细 ...
- Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)
Table of Contents 1.传统linux网络协议栈流程和性能分析 协议栈的主要问题 针对单个数据包级别的资源分配和释放 流量的串行访问 从驱动到用户态的数据拷贝 内核到用户空间的上下文切 ...
- Linux网络防火墙:iptables与netfilter
目录 netfilter iptables iptables示例 nftables 参考文档 iptables是一个配置Linux内核防火墙的命令行工具,它基于内核的netfilter机制.新版本的内 ...
- linux网络_防火墙-iptables基础
2019独角兽企业重金招聘Python工程师标准>>> 定义: 防火墙:是用于实现Linux下访问控制的功能. 分类:硬件或者软件防火墙. 3.4层的防火墙,叫网络层的防火墙:7层的 ...
- Linux网络处理“零拷贝”技术mmap()内核进程间通信设计8086分页管理——摆在一起来谈谈...
Jack:最近听说了网络处理的"零拷贝"技术,觉得非常神奇,在网上查阅了很多资料.不过,并不是太明白--知其然,而不知其所以然.你能通俗地解释一下吗? 我:这是一个相对比较复杂的话 ...
- linux防火墙Netfilter(iptables)
Linux的防火墙由Netfilter实现: Netfilter的过滤功能在内核中实现,不依靠daemon. 工作于OSI 7层模型的第2, 3, 4层. 只检测报文头. iptables是Netfi ...
- Linux网络:聚合链路技术
目录 一.聚合链路技术 1.bonding作用 2.Bonding聚合链路工作模式 3.Bonding实现 一.聚合链路技术 1.bonding作用 将多块网卡绑定同一IP地址对外提供服务,可以实现高 ...
- Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...
- 七周三次课(11月29日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法...
2019独角兽企业重金招聘Python工程师标准>>> 10.11 Linux网络相关 ifconfig 查看网卡ip (yum install net-tools) 安装 -a ...
- Linux网络相关、firewalld、netfilter及其5表5链、iptables语法
2019独角兽企业重金招聘Python工程师标准>>> 1.Linux 网络相关 ifconfig 查看网卡IP,见下图, net-tools 包之前安装过了,这边还可以执行这个命令 ...
最新文章
- vb mysql数据导入到mssql,[请教]怎样把*.txt文本的数据导入sql数据库中?
- MFC中OnCtlColor的用法(改变控件颜色)
- django--rtbac权限管理
- 你好,欢迎来到我的空间,
- mysql的网址是什么意思_Mysql数据库地址是什么怎么填写
- Spring-boot + Mybatis-plus 3.0-gamma 配置记录
- matlab信号建模,Matlab在信号处理中的建模仿真
- POJ 3641 Pseudoprime numbers (miller-rabin 素数判定)
- 现代书法脚本字体Tifany Script
- ubuntu 安装 网易云音乐
- 詹姆斯titan_再见,詹姆斯!
- win10计算机怎么拨号上网,win10系统怎么设置拨号上网 设置拨号上网的方法
- win10开机黑屏不显示桌面,怎么办
- FC-SAN存储技术
- 个人公众号,用于开发经验分享
- 计算机相关学科查找英文paper的一般方法
- 78个学术网站!史上最全常用文献数据库汇总!
- 行测-判断推理-类比推理-语法关系
- 公司现有一个工作组workgroup,需要添加samba服务器作为文件服务器,并发布共享目录
- 高逼格的年终总结怎么写?这是我见过最系统的写法
热门文章
- 网络协议和标准——IEEE802
- 华为vrrp默认优先级_华为vrrp配置实例
- Invalid arguments ' Candidates are: int fseek(__sFILE *, long int, int) '
- 杭电、POJ、ZOJ ACM刷题顺序和题目分类详解
- 大数据告诉你,从北大青鸟毕业的学生未来发展到底怎么样?
- macbook安装免费vmware fusion
- 卡巴斯基7.0反病毒一年激活码免费领取(官方活动,现已停止)
- 情人节程序员用HTML网页表白【表白对话】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- 如何在WordPress中使用SEO写作助手来改善SEO
- python实现海康sdk二次开发,移动侦测事件(一)