Netfilter学习和使用
文章平均质量分 92
Ch_ty
这个作者很懒,什么都没留下…
展开
-
Netfilter学习之NAT类型动态配置(一)iptables和Netfilter简介
通过一段时间的学习,我发现目前尚未有公开的技术实现NAPT的动态配置,仅仅通过iptables实现一些固定的配置无法满足动态配置的需求。因此,本系列博客目的在于通过对Netfilter和Iptables的学习,通过内核编程实现Full Cone, Restricted Cone, Port Restricted Cone和Symmetric NAPT的配置。 介绍iptables和Net...原创 2017-11-28 23:35:58 · 1672 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(二)NAT类型介绍及MASQUERADE用户层的实现
在上一节中,我们介绍了iptables和netfilter的基本关系,在这里我们会进一步介绍现有的NAT以及Linux中大多已实现的MASQUERADE实现原理。1. NAT类型介绍 常用的NAT类型主要有Full Cone NAT(全锥型), Restricted NAT(限制型锥型), Port Restricted NAT(端口限制型锥型), Symmetric NAT(对...原创 2018-02-04 20:38:20 · 3004 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(三)MASQUERADE内核空间的实现
本节中,我们分析MASQUERADE在内核空间的实现。详细分析在代码中以注释的形式说明。1.ipt_MASQUERADE.c源码分析 iptables 命令行在用户空间配置之后,会激活相应的内核空间的钩子函数。此源码即为钩子函数的注册。/* Masquerade. Simple mapping which alters range to a local IP addre......原创 2018-03-25 23:14:57 · 2858 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(五)全锥型、限制型锥形、端口限制型锥型、对称型NAT的实现思路
本节中,我们根据上节的分析,从理论上分析不同NAT的实现思路。对NAT不了解的可以看Netfilter学习之NAT类型动态配置(二)。1. 端口限制型NAT Port Restricted NAT是Netfilter中自带的NAT转化规则,即MASQUERADE。此种情况下,需要检测外部tuple和目标tuple四个变量,均相同才可以成功访问内部tuple。2. 限制型N...原创 2018-04-14 20:19:59 · 33077 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(四)nf_nat_core.c源码解析
在研究了masquerade的用户空间和内核源码之后,我们发现最后进入了nf_nat_setup_info()函数,该函数位于nf_nat_core.c之中,是Netfilter的NAT表核心函数的实现。1 nf_nat_core.c源码分析 本小节分析了nf_nat_core的源码,重点分析当Iptables指定的钩子函数激活后,在Netfilter中是如何识别和起作用的。这里...原创 2018-04-06 11:39:42 · 4230 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(六)全锥型NAT用户空间iptables命令行实现
本文主要实现全锥型NAT的用户空间iptables命令行扩展的实现,实现思路见上文,具体可以模仿MASQUERADE的源码进行改写。1.关键部分实现代码 由于fullcone类型并不需要输入参数,因此parse可以为空,print和save也很简单,只需要help和结构注册两部分保证正确即可。 help如下:static void FULLCONE_help(voi...原创 2018-04-22 22:10:32 · 1585 阅读 · 1 评论 -
Netfilter学习之NAT类型动态配置(八)nf_nat_proto_common.c代码解析
nf_nat_proto_common.c实现了对称型的端口改变,在此我决定对其代码进行分析,以便实现对对称型NAT的随意改动。 具体代码如下:#include <linux/types.h>#include <linux/random.h>#include <linux/netfilter.h>#include <linux/原创 2018-05-25 21:26:45 · 1373 阅读 · 0 评论 -
Netfilter学习之NAT类型动态配置(七)全锥型NAT内核空间实现
本文主要实现全锥型NAT的用户空间iptables命令行扩展的实现。实现思路见上文。1.关键部分实现代码2.小结原创 2018-05-24 20:34:12 · 2432 阅读 · 14 评论