信息安全
文章平均质量分 82
honghu79
技术总监、运维总监; ITIL service manager,ISO 20000,ISO 27001主任审核员,PMP,信息系统项目管理师,OCP, IBM高级认证工程师、IBM DB2数据库高级认证工程师。对IT服务和运维标准化、自动化运维有较深的理解和研究;网络路由和交换(CISCO)、操作系统(LINUX,AIX,WIN,HPUNIX)、数据库(ORACLE,MYSQL,DB2) ,中间件,数据安全等;对软件开发有一定程度的实施经验,以J2EE框架和MVC框架为主,近几年主要精力在信息安全、虚拟化、云计算、大数据等的研究;
展开
-
Iptables命令语法
iptables -t tablename option tablename可选为:filter、nat、mangle、raw option: -L 列出table内容 -F 清除table内容 -A 加入新的规则 -P 设定Default Policy -I 插入新的规则 -R 取代规则 -D 删原创 2014-12-07 19:49:28 · 712 阅读 · 0 评论 -
(六)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【中】
Netfilter连接跟踪的详细流程 上一篇我们了解了连接跟踪的基本框架和大概流程,本篇我们着重分析一下,数据包在连接跟踪系统里的旅程,以达到对连接跟踪运行原理深入理解的目的。 连接跟踪机制在Netfilter框架里所注册的hook函数一共就五个:ip_conntrack_defrag()、ip_conntrack_in()、ip_conntrack_local()、i转载 2014-12-11 10:24:13 · 472 阅读 · 0 评论 -
(十二)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
iptables用户空间和内核空间的交互iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,是Netfilter的一个编程接口,通常被用来显示、操作(查询、修改、添加和删除)netfil转载 2014-12-11 10:32:02 · 533 阅读 · 0 评论 -
(四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filter
今天我们讨论一下防火墙的数据包过滤模块iptable_filter的设计原理及其实现方式。 内核中将filter模块被组织成了一个独立的模块,每个这样独立的模块中都有个类似的init()初始化函数。编写完该函数后,用module_init()宏调用初始化函数;同样当模块被卸载时调用module_exit()宏将该模块卸载掉,该宏主要调用模块的“析构”函数。这当中就牵扯到内核ko模转载 2014-12-11 10:19:46 · 835 阅读 · 0 评论 -
TCP 3 way handshake (三向握手,三次握手)--TCP连接建立过程
TCP连接建立过程(1)客户端先发送一个带有syn标志的封包给服务器端,这个封包就是连接请求封包(2)服务器端响应一个带有syn及ACK标志的封包给客户端,表示服务器端已经接受客户端的连接请求动作(3)最后客户端响应一个带有ACK标志的封包给服务器端在完成以上流程后,客户端及服务器端的TCP连接正式建立。原创 2014-12-11 11:28:45 · 1150 阅读 · 0 评论 -
(三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target
作为ipchains的后继者,iptables具有更加优越的特性,良好的可扩展功能、更高的安全性以及更加紧凑、工整、规范的代码风格。 在2.6的内核中默认维护了三张表(其实是四张,还有一个名为raw的表很少被用到,这里不对其进行分析介绍了):filter过滤表,nat地址转换表和mangle数据包修改表,每张表各司其职。我们对这三张表做一下简要说明: 1)、转载 2014-12-11 10:17:46 · 543 阅读 · 0 评论 -
(十)洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT
源地址转换:SNAT SNAT主要应用于下列场景: 这种情况下,我们只有一个公网地址A,而又有三台主机需要同时上网,这时就需要SNAT了。它的主要作用是将那些由私网发来的数据包skb的源地址改成防火墙的公网地址A,这是因为目的主机在响应源地址为私网地址的数据包时,私网地址不能在网络上路由的缘故。 SNAT仅可以在LOCAL_OUT和POSTROUT转载 2014-12-11 10:28:45 · 498 阅读 · 0 评论 -
Netfilter之连接跟踪实现机制初步分析
Netfilter之连接跟踪实现机制初步分析什么是连接跟踪连接跟踪(CONNTRACK),顾名思义,就是跟踪并且记录连接状态。Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项(Connection entry)。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前转载 2014-12-11 10:12:22 · 638 阅读 · 0 评论 -
TCP协议中FLAG的含义
Jesse备注:TCP-FLAGs为TCP连接控制之用。如果一个封包中同时存在syn及fin标志的话,封包的目的是服务请求或是终止连接呢?可能就是恶意攻击包。可能会导致系统宕机。TCP FLAG 标记基于标记的TCP包匹配经常被用于过滤试图打开新连接的TCP数据包。 TCP标记和他们的意义如下所列F : FIN - 结束; 结束会话 S : SYN原创 2014-12-11 11:48:54 · 2334 阅读 · 0 评论 -
iptables中DNAT与SNAT的理解
文章出处:http://blog.myhnet.cn/2009/01/12/my-understanding-about-dnat-and-snat-in-iptables/ DNAT(Destination Network Address Translation, 目的地址转换)通常被叫做目的映射。而SNAT(Source Network Address Translation转载 2014-12-11 09:42:05 · 592 阅读 · 0 评论 -
(七)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【下】
连接跟踪系统的初始化流程分析 有了前面的知识,我们再分析连接跟踪系统的初始化ip_conntrack_standalone_init()函数就太容易不过了。还是先上ip_conntrack_standalone_init()函数的流程图:该函数的核心上图已经标出来了“初始化连接跟踪系统”和“注册连接跟踪的hook函数”。其他两块这里简单做个普及,不展开讲。至少让大家明白连转载 2014-12-11 10:25:26 · 459 阅读 · 0 评论 -
深入理解netfilter
如果我们希望netfilter能为我们做些什么事情,那么我们就需要为netfilter设定一些执行规则,有了规则之后,netfilter才会知道哪些封包是可以被接受的,哪些是必须被过滤掉的等等。netfilter存放规则的内存区块分为4个表:filter ,nat,mangle,raw.filter:是netfilter内最为重要的机制,其任务是执行封包的过滤动作也就是防火原创 2014-12-07 20:05:58 · 714 阅读 · 0 评论 -
(五)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【上】
如何理解Netfilter中的连接跟踪机制? 本篇我打算以一个问句开头,因为在知识探索的道路上只有多问然后充分调动起思考的机器才能让自己走得更远。连接跟踪定义很简单:用来记录和跟踪连接的状态。问:为什么又需要连接跟踪功能呢?答:因为它是状态防火墙和NAT的实现基础。OK,算是明白了。Neftiler为了实现基于数据连接状态侦测的状态防火墙功能和NAT地址转换功能才开发转载 2014-12-11 10:21:33 · 540 阅读 · 0 评论 -
(九)洞悉linux下的Netfilter&iptables:网络地址转换原理之DNAT
网络地址转换:NAT Netfitler为NAT在内核中维护了一张名为nat的表,用来处理所有和地址映射相关的操作。诸如filter、nat、mangle抑或raw这些在用户空间所认为的“表”的概念,在内核中有的是以模块的形式存在,如filter;有的是以子系统方式存在的,如nat,但它们都具有“表”的性质。因此,内核在处理它们时有很大一部操作都是相同的,例如表的初始化数据、表转载 2014-12-11 10:27:51 · 567 阅读 · 0 评论 -
(十一)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】
预备知识:part1: 初见getopt_long() 在分析iptables源码时,作为命令解析的核心函数getopt_long()不得不提。随便百度或google搜索关于该函数的介绍有很多例子和解释,这里我只举一例,目的是让大家了解传递给iptables命令的每个参数是如何被正确识别并处理的。getopt_long(int argc,char * const argv[转载 2014-12-11 10:30:17 · 704 阅读 · 0 评论 -
如何理解Netfilter中的连接跟踪机制
连接跟踪定义很简单:用来记录和跟踪连接的状态。为什么又需要连接跟踪功能呢?因为它是状态防火墙和NAT的实现基础。Neftiler为了实现基于数据连接状态侦测的状态防火墙功能和NAT地址转换功能才开发出了连接跟踪这套机制。那就意思是说:如果编译内核时开启了连接跟踪选项,那么Linux系统就会为它收到的每个数据包维持一个连接状态用于记录这条数据连接的状态。接下来我们就来研究一下转载 2014-12-11 10:10:59 · 559 阅读 · 0 评论 -
(八)洞悉linux下的Netfilter&iptables:状态防火墙
基于连接跟踪机制的状态防火墙的设计与实现连接跟踪本身并没有实现什么具体功能,它为状态防火墙和NAT提供了基础框架。前面几章节我们也看到:从连接跟踪的职责来看,它只是完成了数据包从“个性”到“共性”抽象的约定,即它的核心工作是如何针对不同协议报文而定义一个通用的“连接”的概念出来,具体的实现由不同协议自身根据其报文特殊性的实际情况来提供。那么连接跟踪的主要工作其实可以总结为:入口处,收到转载 2014-12-11 10:26:29 · 487 阅读 · 0 评论 -
TCP三次握手、四次挥手
本文转自:http://blog.chinaunix.net/uid-25544300-id-3314564.html相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:转载 2014-12-11 11:34:16 · 551 阅读 · 0 评论 -
(一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了。趁有时间,好好把这方面的东西总结一番。一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共同学习,共同进步。 能在CU上混的人绝非等闲之辈。因此,小弟这里说明一下:本系列博文主要侧重于分析Netfilter的实现机制,原理和设计思想层面的东西,同时从用户态的iptable转载 2014-12-11 09:45:56 · 467 阅读 · 0 评论 -
netfiletr libipq用户定义chain描述
LIBIPQ(3)NAMElibipq —— iptables用户空间数据包排队库SYNOPSIS#include #include DESCRIPTIONlibipq是一个iptables用户空间数据包排队开发库。用户空间数据包排队Netfilter提供一个机制,将数据包送到栈外在用户空间排队,然后这些数据包送回内核并附带上一个如何处理这个数据原创 2014-12-12 11:11:53 · 728 阅读 · 0 评论