如何从旁路控制一个网络流量具体实现?

szclm 2004-03-22 04:04:26
之前我问过这个问题:

http://expert.csdn.net/Expert/topic/2817/2817741.xml?temp=.8323328

经大家的推荐实现了tcmp源站抑制差错type = 4, code = 0的流量控制程序,

自己构造tcmp包,根据要限制的IP地址构造的,具体程序如下:
//使用winpcap库
//uIpData 是网络上的原始数据包
void CTestICMPDlg::MakeICMP( UCHAR *uIpData )
{
//构建一个区域,来保存icmp包
UCHAR uTmpIcmp[2048] = "";
memset( uTmpIcmp, 0 , 2048 );
Packet *src_p = new Packet, *dst_p = new Packet;
dst_p->pkt = uTmpIcmp;
src_p->pkt = uIpData;
dst_p->eh = (EtherHdr*)uTmpIcmp;
src_p->eh=(EtherHdr*)uIpData;
//处理链路层数据
memcpy( dst_p->eh->ether_dst, src_p->eh->ether_src, 6 ); //将mac目->源
memcpy( dst_p->eh->ether_src, src_p->eh->ether_dst, 6 ); //将mac源->目
dst_p->eh->ether_type = src_p->eh->ether_type;
//处理IP包数据
if( src_p->eh->ether_type== ETHERNET_TYPE_IP)
{
src_p->iph=(IPHdr*)(src_p->pkt+ETHERNET_HEADER_LEN);
dst_p->iph=(IPHdr*)(dst_p->pkt+ETHERNET_HEADER_LEN);
//只对tcp和udp包抑制
if( src_p->iph->ip_proto == IPPROTO_TYPE_TCP ||
src_p->iph->ip_proto == IPPROTO_TYPE_UDP )
{
//复制ip信息
dst_p->iph->ip_dst = src_p->iph->ip_src;
dst_p->iph->ip_src = src_p->iph->ip_dst;
dst_p->iph->ip_ver = src_p->iph->ip_ver;
dst_p->iph->ip_hlen = 5;
dst_p->iph->ip_tos = 0;
dst_p->iph->ip_len = 0x3800;
dst_p->iph->ip_id = 0x5144;
dst_p->iph->ip_csum = 0;
dst_p->iph->ip_proto = 1;
dst_p->iph->ip_ttl = 128;
dst_p->iph->ip_csum = checksum( (USHORT *)(dst_p->pkt+ETHERNET_HEADER_LEN), 20 );//效验
//设置ICMP信息
dst_p->icmph=(ICMPHdr*)(dst_p->pkt+ETHERNET_HEADER_LEN+dst_p->iph->ip_hlen*4);
dst_p->icmph->code = 0;
dst_p->icmph->type = 4;
dst_p->icmph->csum = 0;
//拷贝原始包的ip首部和数据的前8个字节
memcpy( dst_p->pkt+ETHERNET_HEADER_LEN+dst_p->iph->ip_hlen*4 + 8, src_p->pkt+ETHERNET_HEADER_LEN, 32 );
//计算效验和
dst_p->icmph->csum = checksum( (USHORT *)(dst_p->pkt+ETHERNET_HEADER_LEN), 56 );
//发送这个包
pcap_sendpacket( fp, uTmpIcmp, 70 );
}
}
if( src_p != NULL )
delete src_p;
if( dst_p != NULL )
delete dst_p;
}

现在发现这个方法达不到效果!

请问大家还有其它的方法吗?或是我的运用上有问题呢?
...全文
315 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2004-03-23
  • 打赏
  • 举报
回复
呵呵,我对网络编程不太了解。帮不了你哦。
szclm 2004-03-23
  • 打赏
  • 举报
回复
这个真是做不到的吗?
szclm 2004-03-22
  • 打赏
  • 举报
回复
我的TCMP包是没有错的!我是指它的作用没有体现出来!

我的意思是说:我想让局域网里的一台机子的流量变慢~

不知还有什么方法呢?
flinming 2004-03-22
  • 打赏
  • 举报
回复
还有付值的时候你应该注意高低为的转换。。。。。。。。
flinming 2004-03-22
  • 打赏
  • 举报
回复
自己组icmp包不可以么。。。我做的都可以

//////////////////////////////////////////////////////////////////////////
//icmp结构
struct icmp //包含在IP包中,是IP的上层为0X01的应用
{
WORD head[7]; //以太网头
WORD iphead[10]; //IP头
unsigned char type; //0X08 PING请求 0X00 PING应答
unsigned char option; //0X00 PING
WORD crc;
WORD id;
WORD seq;
unsigned char icmpdata[MY_MAX_SEGMENT_SIZE];
};
szclm 2004-03-22
  • 打赏
  • 举报
回复
唉——我倒!上CSDN问问题,总是有点让人失望!
本软件来源于网络,本人搜集,如影响您的权益,请通知删除。 网络岗 旁路监控   如果用户以硬件路由器(或FireWall)为出口上Internet,为实现“通过一台机器监控整个网络”的目的,通常采用下面几种手段:   1.在网关处添加共享式HUB(集线器),Internet出口网络线和监控机网络线均接入HUB。   2.在主交换机网口上设置镜像端口(一个镜像端口,一个被镜像端口);监控机网络线接入镜像端口。   上面实现的监控就是所谓的“旁路监控”。   打个更形象的比喻:交警为监视公路上汽车行驶状况,为不影响交通,仅在路边配置一台监控设备,同步监视路上的每辆车,并不需要在路中间设卡检查车辆,这种方式相当与“旁路监控”。如果设卡监控,那就应该属于“非旁路监控” 优点:  对网速影响甚小,如果不考虑封堵,可实现电信级的网络监视;所以网络流量庞大且封包需求很少时,必须采用该监控方式。 缺点:  1、封堵TCP连接时采用发送带RST标记的IP包,以破坏TCP连接;系统控制不好的话,则可能导致发送的封包太多,影响网络。  2、不能封堵UDP通讯包。  3、如果监控机处理速度慢,而流量太大,则可能导致分析包丢失。 非旁路监控(拦截式)   1.网路岗NAT  2.网路岗虚拟网桥(单网卡)  3.网路岗网桥(双网卡)     防火墙产品是单纯采用“拦截式”技术的典型网络产品,所有进出FireWall数据包,都必须经过筛选,符合过滤过滤条件的数据包,将被抛弃。  因此,防火墙的处理器性能和筛选规则的复杂程度,将直接影响到防火墙对数据包的处理速度,进而影响到网络速度。 基于网卡、基于帐户、基于IP   所有的网络监控产品,都必须面对这个问题:在对具体电脑进行监控时,以什么信息来判断所捕获的数据包是由哪台机器发出的?   “网路岗”提供了多种选项给客户选择,当用户网络是单网段,也就是说没有划分不同的IP段,我们建议客户选用“基于网卡”的方式,也就是说以“网卡地址MAC”来作为判断数据包的依据。  相对IP地址来讲,网卡地址一般是不会改变的,而且是全球唯一的。针对单一网段内机器而言,网卡地址是网络寻址的重要依据,一旦网卡地址重复或不确定,必然造成网络通讯的紊乱或不稳定。   针对多网段(划分VLAN)的情况,情况比较复杂,当数据包从某个VLAN转到其他VLAN时候,数据包中的网卡地址会发生改变,所以,我们捕获的网卡地址是发生变化了的,这时,如果系统对该MAC不加处理而简单使用,必然导致监控错乱。  但是,这种情况,“网路岗”已经充分考虑了其应对策略,我们的客户依然可以选择“基于网卡”的方式,正如单一网段环境一样。   当然,如果客户网络庞大,IP地址相对固定,从操作的简单性方面考虑,选择“基于IP”地址来监控也是可以的,用户也必须容忍IP地址是经常变化的。 如果客户对某个范围IP的电脑行为感兴趣,那么用户也可以以“自定义的IP范围”作为一个监控对象来对待。   最后,我们要谈谈“基于帐户”。当客户机通过浏览器上网时候,会出现一个输入用户名和密码的画面,此时,只有当客户拥有了自己的用户名和密码,才拥有了上网的权限,这就是“基于帐户”模式的具体表现。   “基于帐户”的方式从理论上讲,是完美的,因为该方式下,与被监控电脑的网卡地址和IP地址均无关系,而只需要根据用户帐号来判断监控对象。但其缺点也非常明显,因为客户机每次上网时候,都必须输入帐号及其对应的密码,给客户机上网带来麻烦,而且因为密码容易被忘记,网络管理员还不得不经常为客户机Reset密码。 从目前客户的使用情况来看,“基于帐户”在“宾馆客房”上网方面似乎是非常好的方案。   网桥   先解释一下通常意义下的“网桥”概念。   网桥工作在数据链路层,将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。它可以有效地联接两个LAN,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于联接数量不多的、同一类型的网段。  网桥通常有透明网桥和源路由选择网桥两大类。  1、透明网桥  简单的讲,使用这种网桥,不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数。只须插入电缆就可以,现有LAN的运行完全不受网桥的任何影响。  2、源路由选择网桥  源路由选择的核心思想是假定每个帧的发送者都知道接收者是否在同一局域网(LAN)上。当发送一帧到另外的网段时,源机器将目的地址的高位设置成1作为标记。另外,它还在帧头加进此帧应走的实际路径。  下面图示的是在WinXP和Win2003系统下创建“网桥”:(Win2k下无此功能) 同时选中两块网卡,点Mouse右键,会弹出上图中的菜单。   网桥一旦建立完成,其网卡原配的IP地址将消失,网内其他机器无法通过原来的两块网卡的IP地址来访问该机器。是不是该机器作废了? 不是,用户仍然可以在上面显示的“网络桥”上配置另外的IP。   透明网桥示意图: 左右两边的机器可以相互访问,不用做任何额外的配置,就象两台交换机之间接入新的交换机设备一样。 启用《网路岗》“网络桥”   网路岗也提供了“网络桥”功能,可以在WinXP/2K/2003上使用,应用更加广泛,如用户需要较严格的上网过滤,请启用网路岗网桥功能,记住:启用网路岗网桥之前,请确认系统自带的“网络桥”已经删除. 虚拟网桥   “虚拟网桥”实际上是“网路岗”为一种“网络监控技术”而命名的一个技术名词。和实际“网桥”概念完全不同,仅仅因为其通讯过程类似“网桥”罢了。   通常意义上的“网桥”一般需要两块网卡来实现, 而这里所谓的“虚拟网桥”只需要一块网卡。   下面的网络结构是非常常见的: 机器:192.168.0.2发出的Internet数据包,直接发向网关192.168.0.1   以下是“网路岗”启用“虚拟网桥”功能后,数据包走向图:   当“网路岗”主机启用“虚拟网桥”功能后,从客户机192.168.0.2发向Internet的数据包,先送到“网路岗”主机,然后由“网路岗”主机转发到网关192.168.0.1,反之亦然。   不难看出,要达到一台机器监控整个网络的目的,只需要启用“虚拟网桥”功能就可以了,这种监控技术可以在纯交换机环境下实现,不需要添加HUB,也不需要设置镜像端口。行话称之为“装在任何一台电脑上就可以监控整个网络”。  而实际使用中,该技术的缺点非常明显,虽然“网路岗”已经加入该技术,但有必要向客户交代其中问题所在。 缺点1:客户机盲目安装.   既然装在任何一台电脑就可以实现对整个网络的监控,员工或学生是否会随意下载、随意安装、随意监控?这是完全可能的,因为毕竟实现监控的门槛太低。不过,当同时多台机器启用这类监控方式后,网络会出现紊乱状况,很可能导致无法上网。 缺点2:很容易逃避监控   所有采用类似监控技术的产品,均需要发送ARP欺骗包,以使正常上网路径发生改变。但是象瑞星等杀毒软件可以识别并抛弃ARP欺骗包,使对本机的监控不能得逞。另外用户也可以通过添加静态路由轻松避免被监控。   因此,在单网段环境下,我们建议客户仍然采用传统的“监控手段”。如果客户执意采用该监控手段,那么请注意:“网路岗”可以自动探测出网内其他机器是否启用过类似的监控手段(也许是其他监控产品),并记录在历史记录中。 如何启用“虚拟网桥”? 1、选中“非旁路监控”选项 2、设置“虚拟网桥”相关选项 3、选中并启用“虚拟网桥”   共享上网NAT   “网络地址转换”(NAT) 是一种 Internet Engineering Task Force (IETF) 标准,用于允许专用网络上的多台 PC 机(使用专用地址范围,例如 10.0.x.x、192.168.x.x、172.x.x.x)共享单个、可全局路由的 IPv4 地址。经常部署 NAT 的一个主要原因就是 IPv4 地址日渐紧缺。Windows XP 和 Windows Me 中的“Internet 连接共享”及许多 Internet 网关设备都使用 NAT,尤其是在通过 DSL 或电缆调制解调器连接宽带网的情况下。  NAT 对于解决 IPv4 地址耗费问题(在 IPv6 部署中却没必要)尽管成效及时,但毕竟属于临时性的解决方案。这种 IPv4 地址耗费问题在亚洲及世界其它一些地方已比较严重,且日渐成为北美地区需要关注的问题。这就是人们为什么长久以来一直关注使用 IPv6 来克服这个问题的原因所在。  除了减少所需的 IPv4 地址外,由于专用网络之外的所有主机都通过一个共享的 IP 地址来监控通讯,因此 NAT 还为专用网络提供了一个隐匿层。NAT 与防火墙或代理服务器不同,但它确实有利于安全。 跨VLAN/单网段/多网段   VLAN,是英文Virtual Local Area Network的缩写,中文名为"虚拟局域网", VLAN是一种将局域网(LAN)设备从逻辑上划分(注意,不是从物理上划分)成一个个网段(或者说是更小的局域网LAN),从而实现虚拟工作组(单元)的数据交换技术。  VLAN这一新兴技术主要应用于交换机和路由器中,但目前主流应用还是在交换机之中。不过不是所有交换机都具有此功能,只有三层以上交换机才具有此功能,这一点可以查看相应交换机的说明书即可得知。    VLAN在交换机上的实现方法,可以大致划分为六类:  1. 基于端口的VLAN(最常应用的一种VLAN划分方法)  2. 基于MAC地址的VLAN  3. 基于网络层协议的VLAN  4. 根据IP组播的VLAN   5. 按策略划分的VLAN  6. 按用户定义、非用户授权划分的VLAN   在监控产品中,所谓“跨VLAN”监控就是所监控的客户机位于多个VLAN中。   单网段:整个局域网只有一个IP段,如:192.168.0.x (255.255.255.0)   多网段:整个局域网有多个不同IP段,如:192.168.1.x(255.255.255.0) / 192.168.2.x(255.255.255.0) 镜像端口/监控端口/被监控端口   在一些交换机中,我们可以通过对交换机的配置来实现将某个端口上的数据包,拷贝一份到另外一个端口上,这个过程就是“端口镜像”,如下图:   端口1 为镜像端口,端口2 为被镜像端口;因为通过端口1可以看到端口2的流量,所以,我们也称端口1为监控端口,而端口2为被监控端口。   市面上,绝大多数交换机(如cisco产品)的某个口被设置为镜像端口后,接到该端口的主机将无法发送数据包到网内其他机器,变成了“单向接受”模式;这类情况,并不利于监控,因为系统无发发送封包到客户机,而导致无法对客户机进行控制;不过“网路岗”针对此类情况有专门的解决手段,如碰到此类情况,用户可以咨询我公司技术人员。   不过仍然有部分交换机除外,比如:TPLink-SF2008 或TPLink-SF2008(web),因为其价格便宜,功能实用,因此我们一般建议客户购买此款交换机进行监控。 汇聚MAC   在多VLan环境下,假如 Vlan-1最靠近因特网,通常情况下,其他 Vlan 的机器发出的数据包都需经过 Vlan-1 借道连入因特网,那么,其他Vlan下的机器发出的IP包经过这样的“路由”进入 Vlan-1 时,其数据包中原来的网卡地址通常会改变,改变后的地址就是我们这里提到的“汇聚MAC”。  建议用“工具”菜单下的“ip包分析工具”抓包,如发现某个MAC对应多个不同的内网IP,那么这个MAC就是我们要找的MAC值。   MAC采集点   见安装包中程序MacSetup.exe,网卡地址“采集”程序,在跨VLAN环境、且选择“基于网卡MAC”的方式监控时才用,一般可在每个VLAN中安装一个,不安装也可以,安装“MAC采集点”程序是为了获取更及时、准确、全面的客户机网卡地址情况,且可有效进行IP-MAC绑定。    尽管客户不安装该程序,系统仍然可以跨VLAN获取机器MAC信息,所以本程序并非必须安装。   安装方法极其简单,只需要在选定的机器上运行此程序即可,不用任何配置.
附件: 数据库审计系统需求说明 序号 指标项 具体要求 1 硬件指标 标准机架式设备,不少于 6个1000M电口,不少于 2个SFP光口(带SFP模块), 具备独立的管理口和 HA 口;可用磁盘空间不小于 2T;吞吐能力》2000M峰值处 理能力》18000条/秒,根据任意sql条件查询性能》2000万条/秒;日志存储量 > 6亿条;双冗余电源。 2 工作模式 旁路镜像模式部署,不影响数据库性能和网络架构;支持 IPV6环境部署和IPV6 环境下数据库的审计;支持分布式部署,管理中心可实现统一配置、统一报表、 统一查询。 管理中心和探测器都可存储审计数据,实现大数据环境下磁盘空间的有效利用和 扩展;管理中心和探测器直接的数据传输速率、时间、端口都可自定义。 3 协议支持 支持主流数据库: Oracle、SQLServer、Mysql、DB2 infomix、Sybase、CACH、 达梦、人大金仓、神舟 Oscar、南大通用 GBASE数据仓库teradata。 支持主流业务协议: TeInet、SMTP POP3 DCOM 4 审计内容 审计日志包括账号、 SQL语句、表、字段、存储过程、客户端工具、 IP、MAC实 例名、主机名等条件。 支持双向审计,特别是返回字段和结果、执行状态、返回行数、执行时长等内容, 并能够根据返回结果设置审计策略,要求在不连接被审计数据库情况下完成。 支持HTTP请求审计,提取URL POST/GETf直、cookie、操作系统类型、浏览器 类型、原始客户端IP、MAC地址、提交参数等。 可与堡垒主机进行联动,实现用户信息的定位。 5 智能发现 自动识别流量中存在的数据库,也可通过扫描发现网络中的数据库。 支持定期自动扫描数据库漏洞和不安全配置,提供漏洞扫描报告。 6 运维审计 支持tel net、ftp、SSH协议及其他私有协议的旁路会话审计;会话审计日志应含 源IP、目的IP、会话起始时间、会话结束时间、连接时长、会话总流量等维度。 支持数据库协议解析成会话形式,并支持一键关联到具体的 SQL操作会话。 支持根据目的IP、目的端口、源IP及时间范围对会话进行检索。 7 模型分析 可智能学习数据库的访问行为建立模型。 可通过行为轨迹图方式展示数据库访问行为。 可基于账号、IP地址、访问权限、客户端工具等维度对行为模型做钻取分析、变 更分析,对学习的安全基线以外的行为自动智能的进行告警。 可以自动对比不冋时期的行为模型,以区分其审计日志数趋势、用户、 IP地址、 工具、访问权限的差异情况。 8 规则分析 支持账号、IP地址、MAC地址、操作类型、返回行数、执行时 、表、字段、主 数据库审计系统需求说明全文共2页,当前为第1页。 数据库审计系统需求说明全文共2页,当前为第1页。 机名、操作系统名、关联表数,实现对敏感信息的精细监控。 支持基于返回结果集大小、返回内容、具体报文内容的细粒度审计规则。 内置高危SQL查询和注入、远程命令执行、跨站脚本攻击、 FTP和telnet高危指 令等审计规则不少于 300种。 规则可支持导入、导出、优先级调整、分组、批量加载等。 9 白名单 支持用户名、操作类型、IP地址、客户端工具、系统用户名、主机名、 MAC地址、 SQL语句等条件设置白名单,条件不少于 10个。 10 告警与报表 支持短信、邮件、syslog、snmp ftp等告警方式,支持冋时发送多人、 聚合发送、 单条发送、重发、发生统计等高级告警功能。 可以根据单个库、数据库组生成报表,包括支持严格按照塞班斯( SOX法案、等 级保护标准要求生成多维度综合报告。 支持按照数据库访问行为生成报表,智能识别帐号的增删、权限变更、密码修改、 特权操作等行为。 支持按照时间曲线统计流量、在线用户数、并发会话、 DDL操作数、DML操作数、 执行量取多的SQL语句等报表。 11 日志数据管 理 审计数据保留策略应至少满足天数和百分比两个控制参数,且支持 web界面可配 置,且恢复数据不影响正常的审计功能。 支持自动备份审计日志,备份完后通过 FTP方式外送到外部设备;备份文件需要 进行加密,且必须导入设备才能够进行恢复查看。 12 系统排错 系统内置故障排错系统,可以支持一键排错对服务异常、许可证异常、流量异常 等大部分常见故障的检测,并可提供快速的解决办法。 支持流量分析功能,包括抓包、包内容查看、自动探测 sql语句等。 13 资质要求 具备公安部颁发的《计算机信息系统安全专用产品销售许可证》。 14 售后服务 原厂五年售后服务,包括安装调试、硬件质保、软件升级、特征库升级等。 数据库审计系统需求说明全文共2页,当前为第2页。 数据库审计系统需求说明全文共2页,当前为第2页。 数据库审计系统需求说明

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧