ÕªÒª£º·À»ðǽÔÚÍøÂ簲ȫÖÐÆð×ÅÖØÒª×÷Óᣵ«ÊÇ£¬Ä¿Ç°´«Í³µÄ±ß½ç·À»ðǽ±©Â¶³öÔ½À´Ô½¶àµÄȱÏÝ£¬ÎÞ·¨ÊÊӦеÄÍøÂçÓ¦Ó᣷ֲ¼Ê½·À»ðǽÊǶԴ«Í³·À»ðǽµÄ¸Ä½ø¡£ÎÄÖнéÉÜÁË·Ö²¼Ê½·À»ðǽµÄ¸ÅÄ²¢¸ø³öÁËÆäÔÚLinuxÉϵÄÉè¼ÆÓëʵÏÖ¡£
1 ´«Í³·À»ðǽ¼°ÆäȱÏÝ
·À»ðǽÊÇÖ¸ÉèÖÃÔÚ²»Í¬ÍøÂç»òÍøÂ簲ȫÓòÖ®¼ä£¬¸ù¾ÝÒ»¶¨µÄ°²È«²ßÂÔ¶ÔÍøÂç¼äµÄͨÐÅʵʩ·ÃÎÊ¿ØÖƵÄһϵÁв¿¼þµÄ×éºÏ¡£
´«Í³ÒâÒåÉϵķÀ»ðǽ¾ÍÊÇÖ¸±ß½ç·À»ðǽ£¬Ëü½«ÍøÂç·ÖΪÄÚÍøºÍÍâÍøÁ½²¿·Ö¡£ËüÊÇÍøÂç¼äÐÅÏ¢´«ÊäµÄΨһ³öÈë¿Ú£¬Äܹ»¸ù¾Ý°²È«²ßÂÔ¿ØÖÆ£¨ÔÊÐí¡¢¾Ü¾ø¡¢¼à²â£©³öÈëÍøÂçµÄÐÅÏ¢Á÷£¬ÇÒ±¾Éí¾ßÓнÏÇ¿µÄ¿¹¹¥»÷ÄÜÁ¦¡£ËüÊÇÌṩÐÅÏ¢°²È«·þÎñ¡¢ÊµÏÖÍøÂçºÍÐÅÏ¢°²È«µÄÖØÒªµÄ¡¢»ù±¾µÄ°²È«×°Öá£ÔÚÂß¼ÉÏ£¬·À»ðǽÊÇÒ»¸ö·ÖÀëÆ÷£¬Ò»¸öÏÞÖÆÆ÷£¬Ò²ÊÇÒ»¸ö·ÖÎöÆ÷£¬ÓÐЧµØ¼à¿ØÁËÄÚ²¿ÍøºÍInternetÖ®¼äµÄÈκλ£¬±£Ö¤ÁËÄÚ²¿ÍøÂçµÄ°²È«¡£
´«Í³·À»ðǽÒÀÀµÓÚÍøÂçµÄÍØÆËÏÞÖÆ£¬Ëü¼Ù¶¨ÄÚÍøÉϵÄËùÓÐÖ÷»ú¶¼ÊÇ¿ÉÐÅÈε쬶øÍâÍøÉϵÄËùÓÐÖ÷»ú¶¼ÊDz»¿ÉÐŵġ£µ±ÍøÂç×ñÕÕÍØÆËÏÞÖÆÊ±£¬ÕâÖÖÄ£Ð͹¤×÷µÃºÜºÃ£»µ«ÊÇ£¬Ëæ×ÅÍøÂçÁ¬½ÓµÄÀ©³äºÍеÄÍøÂçÓ¦Óõķ¢Õ¹£¬ÕâÖÖÄ£Ðͱ©Â¶³öÁËÔ½À´Ô½¶àµÄȱÏÝ£¬ÃæÁÙ׿«´óµÄÌôÕ½¡£Ö÷Òª±íÏÖÔÚ£º
(1) ¶ÔÈÆ¹ý·À»ðǽµÄ¹¥»÷ÎÞÄÜΪÁ¦£»Èç¹û·À»ðǽµÄ¹æÔòÉèÖò»µ±£¬ÄÚÍøÉϵÄËùÓÐÖ÷»ú½«±©Â¶ÔÚÍⲿ¹¥»÷µÄÖ±½ÓÍþв֮Ï¡£
(2) ÓÉÓÚÐÅÈÎÄÚÍøÉϵÄËùÓÐÖ÷»ú£¬¶ø¶ÔÀ´×ÔÍøÂçÄÚ²¿µÄ¶ñÒâ¹¥»÷¡¢Î´ÊÚȨ·ÃÎÊ»òÎÞÒâµÄÎó²Ù×÷¡°ÊÓ¶ø²»¼û¡±¡£
(3) ÊÇDZÔÚµÄͨÐÅÆ¿¾±ºÍµ¥Ò»¹ÊÕϵ㡣
(4) Óë¶Ëµ½¶Ë¼ÓÃÜ£¨ÈçVPN£©ÓгåÍ»¡£
(5) ÓÉÓÚÒÀÀµÓÚÍøÂçÍØÆË£¬ÎÞ·¨Ö§³ÖÒÆ¶¯¼ÆËã¡£
ΪÁ˿˷þÉÏÊöȱÏÝ£¬²úÉúÁË¡°·Ö²¼Ê½·À»ðǽ¡±£¨ Distributed Firewall £©µÄ¸ÅÄî¡£
2 ·Ö²¼Ê½·À»ðǽ
¶ą̀»ùÓÚÖ÷»úµ«Êܼ¯ÖйÜÀíºÍÅäÖõķÀ»ðǽ×é³ÉÁË·Ö²¼Ê½·À»ðǽ¡£ÔÚ·Ö²¼Ê½·À»ðǽÖУ¬°²È«²ßÂÔÈÔÈ»±»¼¯Öж¨Ò壬µ«ÊÇÔÚÿһ¸öµ¥¶ÀµÄÍøÂç¶Ëµã£¨ÀýÈçÖ÷»ú¡¢Â·ÓÉÆ÷£©ÉÏʵʩ¡£
·Ö²¼Ê½·À»ðǽÖк¬ÓÐÈý¸ö±ØÐèµÄ×é¼þ£º
(1) ÃèÊö°²È«²ßÂÔµÄÓïÑÔ¡£
(2) °²È«µØ·¢²¼²ßÂԵĻúÖÆ¡£
(3) Ó¦Óá¢ÊµÊ©²ßÂԵĻúÖÆ¡£
°²È«²ßÂÔÓïÑԹ涨ÁËÄÄЩͨÐű»ÔÊÐí£¬ÄÄЩͨÐű»½ûÖ¹£¬ËüÓ¦¸ÃÖ§³Ö¶àÖÖÀàÐ͵ÄÓ¦Ó㬻¹Ó¦Ö§³ÖȨÀûίÅɺÍÉí·Ý¼ø±ð¡£²ßÂÔÖÆ¶¨ºó±»·¢²¼µ½ÍøÂç¶ËµãÉÏ¡£²ßÂÔ·¢²¼»úÖÆÓ¦¸Ã±£Ö¤²ßÂÔÔÚ´«Êä¹ý³ÌÖеÄÍêÕûÐÔºÍÕæÊµÐÔ¡£²ßÂÔ·¢²¼ÓжàÖÖ·½Ê½£¬¿ÉÒÔÖ±½Ó¡°ÍÆ¡±µ½ÖÕ¶ËϵͳÉÏ£¬¿ÉÒÔÓÉÖն˰´Ðè»ñÈ¡£¬Ò²¿ÉÒÔÒÔÖ¤ÊéµÄÐÎʽÌṩ¸øÓû§¡£²ßÂÔʵʩ»úÖÆÎ»ÓÚÒª±£»¤µÄÖ÷»úÉÏ£¬ÔÚ´¦Àí³öÈëµÄͨÐÅ֮ǰ£¬Ëü²éѯ±¾µØ²ßÂÔÔÙ×ö³öÔÊÐí»ò½ûÖ¹µÄ¾ö¶¨¡£
·Ö²¼Ê½·À»ðǽ¿Ë·þÁË´«Í³·À»ðǽµÄȱÏÝ£¬ËüµÄÓÅÊÆÔÚÓÚ£º
(1) ÔÚÍøÂçÄÚ²¿Ôö¼ÓÁËÁíÒ»²ã°²È«¡£
(2) ÓÐЧµÖÓùÀ´×ÔÄÚ²¿µÄ¹¥»÷¡£
(3) Ïû³ýÍøÂç±ß½çÉϵÄͨÐÅÆ¿¾±ºÍµ¥Ò»¹ÊÕϵ㡣
(4) Ö§³Ö»ùÓÚ¼ÓÃܺÍÈÏÖ¤µÄÍøÂçÓ¦Óá£
(5) ÓëÍØÆËÎ޹أ¬Ö§³ÖÒÆ¶¯¼ÆËã¡£
Thisyear ÓÚ 2007-02-06 00:26:12·¢±í:
3 ×ÜÌåÉè¼Æ
·Ö²¼Ê½·À»ðǽµÄǰÁ½¸ö×é¼þ´Ó±¾ÖÊÉÏ˵Êǰ²È«ÊÚȨÎÊÌâ¡£´«Í³µÄÊÚȨ»úÖÆ°üÀ¨·ÃÎÊ¿ØÖÆÁÐ±í£¨ACL£©ºÍ¹«Ô¿Ö¤ÊéÌåϵ£¨X.509¡¢PKI£©¡£µ«ÊÇACL²»ÊÊÓÃÓÚ¿ª·Å¡¢¶¯Ì¬µÄ·Ö²¼Ê½»·¾³£¬Ö¤ÊéÌåϵÔÚÊÚÓèȨÏÞ¡¢ÐÅÈÎģʽ¡¢Î¯ÍÐȨÀûµÈ·½ÃæÒ²²»ÄܺܺõØÂú×ã·Ö²¼Ê½·À»ðǽµÄÒªÇó¡£
ÐÅÈιÜÀí£¨Trust Management£©Êǽâ¾ö·Ö²¼Ê½»·¾³ÏÂÊÚȨ¡¢ÐÅÈÎÎÊÌâµÄÒ»ÖÖÐÂ˼Ï룬ËüÌṩÁËÊʺÏÍøÂçÓ¦ÓõĿª·Å¡¢¶¯Ì¬¡¢·Ö²¼ÌØÐԵݲȫ½â¾ö¿ò¼Ü¡£KeyNoteÊÇÐÅÈιÜÀíϵͳµÄÒ»¸öʵÀý¡£ËüÌṩÁËÒ»ÖÖ¼òÁ·¡¢Áé»î¡¢Ò×À©Õ¹ºÍ¸»ÓÚ±í´ïÄÜÁ¦µÄÓïÑÔÀ´ÃèÊö°²È«²ßÂÔ£¨Security Policy£©ºÍ°²È«Æ¾Ö¤(Security Credential)£¬ÕâÖֿɱà³ÌµÄÓïÑÔÒ×¶Á¡¢Ò×д£¬¶øÇÒÓëÓ¦ÓÃÎ޹أ¬Ê¹KeyNoteºÜÈÝÒ×ÓëÓ¦ÓÃϵͳ¼¯³É¡£±¾µØ²ßÂÔ°ó¶¨Á˹«Ô¿ºÍÖ±½ÓÊÚȨ£»Ô¶³Ì²ßÂÔ¾DSA¡¢RSAÊý×ÖÇ©Ãûºó×÷Ϊ°²È«Æ¾Ö¤£¬²ÉÓÃÁËÓ밲ȫ²ßÂÔÏàͬµÄÓï·¨¡£°²È«Æ¾Ö¤Ö§³Ö¼ä½ÓÐÅÈιØÏµºÍȨÀûίÅÉ£¬¿ÉÒÔÔÚ²»ÊÜÐÅÈεÄÍøÂçÉÏ´«²¥¡¢·¢²¼¡£Òò´Ë£¬»ùÓÚKeyNoteʵÏÖ·À»ðǽµÄǰÁ½¸ö×é¼þÊÇ¿ÉÐжøÓÐЧµÄ¡£
·À»ðǽÖÐÓ¦ÓõÄKeyNoteÌåϵ½á¹¹ÖзþÎñÆ÷½ø³Ì¸ù¾ÝÍâÀ´µÄÁ¬½ÓÇëÇ󣬵÷ÓÃKeynote API£¬½«ÈýÔª×é(r,C,P)Ìá½»¸øÐÅÈιÜÀíÒýÇæ£¬¸ÃÒýÇæÊ¹ÓÃͨÓõġ¢ÓëÓ¦ÓöÀÁ¢µÄÒ»ÖÂÐÔÑéÖ¤Ëã·¨£¬ÕâÖÖÉî¶ÈÓÅÏÈËã·¨²ÉÓõݹéµÄ·½Ê½£¬ÊÔͼÔÚ±¾µØ»òÕßLDAP·þÎñÆ÷ÉϲéÕÒµ½ÖÁÉÙÒ»ÌõÄܹ»Âú×ãÇëÇóµÄ²ßÂÔ¶ÏÑÔ£¬´Ó¶ø×ö³ö²ßÂÔÊÇ·ñ±»Âú×ãµÄÅжϽá¹û£¬²¢·µ»Ø¸ø·þÎñÆ÷½ø³Ì¡£
ʵʩ²ßÂÔµÄ×é¼þ¶Ô½ø³öÖ÷»úµÄͨÐŶ¼½øÐÐÁË¿ØÖÆ£¬²»µ«¿ÉÒÔ±£»¤Ö÷»úÓ¦¶ÔÍâÀ´µÄÍþв£¬¶øÇÒ¿ÉÒÔ·ÀÖ¹·Ç·¨Óû§Ê¹ÓøÃÖ÷»ú·ÃÎÊÍøÂç,´Ó¶øÊµÏÖÁËË«Ïò¹ýÂ˵ŦÄÜ¡£
4 ʵÏÖ
ÎÒÃÇÔÚRedhat Linux 7.2£¨kernel ver: 2.4.7£©ÉÏ¿ª·¢¡¢ÊµÏÖÁË·Ö²¼Ê½·À»ðǽ¡£LinuxÊǵ±Ç°±È½ÏÁ÷ÐеÄÍøÂç·þÎñÆ÷ƽ̨£¬²¢ÇÒ¾ßÓм¯³ÉµÄ¡¢Á¼ºÃµÄ°²È«ÌØÐԺͿ⣬֧³ÖIPsec¡¢SSL¡£Í¬Ê±£¬ÀûÓÃÆä¿ª·ÅµÄÔ´´úÂ룬ÎÒÃÇ¿ÉÒÔÐÞ¸ÄÄÚºËʹ֮ÓëKeyNote¿âlibkeynote0(ͬÑùÊÇ¿ª·ÅÔ´´úÂëµÄ)ºÜºÃµØÐ×÷¡£
4.1 ϵͳ½á¹¹
ϵͳÓÉÈý¸ö×é¼þ¹¹³É£ºÄÚºËÀ©Õ¹¼¯¡¢Óû§¼¶Êغò½ø³ÌºÍÉ豸Çý¶¯³ÌÐò¡£ÎÒÃǵķ¶ÀýÖ÷Òª×ÅÑÛÓÚ¶ÔTCPÁ¬½ÓµÄ¿ØÖÆ¡£
(1) ÄÚºËÀ©Õ¹£¨Kernel Extension£©¡£Óû§Ê¹ÓÃconnect()ºÍaccept()ÕâÁ½¸öϵͳµ÷ÓÃÀ´´´½¨ÏòÍâµÄÁ¬½ÓÒÔ¼°¾ö¶¨µ½À´µÄÁ¬½ÓÇëÇó¡£ÎÒÃÇÒª¸ù¾Ý²ßÂÔ¶ÔÕâÁ½¸öϵͳµ÷ÓüÓÒÔÐ޸쬶ÔijЩÁ¬½Ó½øÐйýÂË¡£²ßÂÔÉÏÏÂÎÄ£¨Policy Context£©Êǰüº¬ÓëijһÁ¬½ÓÏà¹ØµÄËùÓÐÐÅÏ¢µÄÈÝÆ÷£¬ÕâЩÐÅÏ¢°üÀ¨·¢ÆðÁ¬½ÓµÄÓû§ID£¬Ô´IPµØÖ·¡¢¶Ë¿ÚºÅ£¬Ä¿µÄIPµØÖ·¡¢¶Ë¿ÚºÅ£¬µÈµÈ¡£
(2) ²ßÂÔÇý¶¯(Policy Driver)¡£ÕâÀïʵÏÖÁËÒ»¸öαÉ豸Çý¶¯/dev/policy×÷ΪÄÚºËÖб»Ð޸ĵÄϵͳµ÷ÓÃÓëÓû§¿Õ¼äµÄÊØºò½ø³ÌÖ±½ÓͨÐŵÄÇþµÀ¡£ÎÒÃǰѸÃÇý¶¯ÊÓΪһ¸öÎļþ£¬ËüÖ§³ÖÒ»°ãµÄÎļþ²Ù×÷£¬Èçopen()£¬close()£¬read()£¬write()£¬ioctl()¡£
(3) ²ßÂÔÊØºò½ø³Ì£¨Policy Daemon£©¡£ÕâÊÇÒ»¸öÓû§¼¶½ø³Ì£¬¸ºÔð¸ù¾Ý°²È«²ßÂԺͰ²È«Æ¾Ö¤×÷³ö¾ö²ß----ÔÊÐí»¹ÊǾܾøÁ¬½Ó¡£
4.2 ϵͳÁ÷³Ì
ÎÒÃÇÏÈ˵Ã÷¶ÔÍâÀ´Á¬½Óaccept()½øÐйýÂ˵Ť×÷Á÷³Ì¡£
µÚÒ»²½£ºÊ×ÏÈ£¬²Ù×÷ϵͳÆô¶¯²ßÂÔÊØºò½ø³Ì£¬²¢µ÷ÓÃopen£¨£©´ò¿ª²ßÂÔÇý¶¯¡£²ßÂÔÊØºò½ø³Ì¶ÁÈ¡±¾µØµÄ°üº¬²ßÂÔºÍÆ¾Ö¤µÄÎļþ£¨µ±È»£¬Ò²¿ÉÒÔ¶¨Öƽø³ÌÆô¶¯Ê±¼´´ÓÔ¶³ÌµÄLDAP·þÎñÆ÷ÉÏÏÂÔØ¡¢¸üвßÂÔºÍÆ¾Ö¤£©£¬open()½«³õʼ»¯ÓйØÊý¾Ý½á¹¹¡£²ßÂÔÊØºò½ø³Ìµ÷ÓÃread()£¬ÊÔͼ´Ó²ßÂÔÇý¶¯ÖжÁÈ¡Á¬½ÓÇëÇóÐÅÏ¢¡£Èç¹ûÇý¶¯ÖÐûÓÐÇëÇóÐÅÏ¢£¬ÔòÊØºò½ø³Ì×èÈû¡£
µÚ¶þ²½£º·þÎñÆ÷½ø³ÌÊÕµ½ÁËÁ¬½ÓÇëÇó£¬Ê×Ïȵ÷ÓÃaccept()¡£Õâ¸ö±»Ð޸ĹýµÄϵͳµ÷ÓÃÐγɲßÂÔÉÏÏÂÎIJ¢Ìá½»µ½²ßÂÔÇý¶¯ÖС£·þÎñÆ÷½ø³Ì×èÈû¡£
µÚÈý²½£º´Ëʱ£¬read()·µ»ØÇëÇóÏûÏ¢£¬²ßÂÔÊØºò½ø³Ì±»»½ÐÑ¡£Ëü¶ÁÈ¡¸ÃÏûÏ¢£¬µ÷ÓÃKeyNoteµÄÒ»ÖÂÐÔ¼ì²éÆ÷£¨compliance checker£©¸ù¾Ý±¾µØ²ßÂÔºÍÆ¾Ö¤½øÐзÖÎö¡£Èç¹ûδÕÒµ½Óë´ËÁ¬½ÓÏà¹ØµÄ²ßÂÔ£¬²ßÂÔÊØºò½ø³Ì¾ÍÁªÏµÔ¶³ÌµÄLDAP·þÎñÆ÷²éÕÒ¡¢ÏÂÔØÏàÓ¦µÄƾ֤¡£Èô²ßÂÔÐí¿É£¨¼´£ºÕÒµ½²ßÂÔ»ò°²È«Æ¾Ö¤£¬¸ù¾ÝÇ©ÃûËã·¨ÑéÖ¤ÎÞÎ󣬲¢ÇÒ·ûºÏƾ֤¶ÏÑÔ£©£¬ÔòÔÊÐí¸ÃÁ¬½Ó£¬ÈôÔÚ±¾µØ¼°Ô¶³Ì·þÎñÆ÷ÉϾùûÓÐÕÒµ½ÏàÓ¦µÄ²ßÂÔ»òƾ֤£¬»òÕßÓë²ßÂÔ¡¢Æ¾Ö¤µÄ¶ÏÑÔ²»·û£¬Ôò¾Ü¾øÖ®¡£²ßÂÔÊØºò½ø³Ìµ÷ÓÃwrite()½«×Ô¼ºµÄ¾ö²ßдÈë²ßÂÔÇý¶¯ÖС£
µÚËIJ½£º accept()´Ó²ßÂÔÇý¶¯ÖжÁÈ¡²ßÂÔÊØºò½ø³ÌµÄ¾ö²ß£¬·þÎñÆ÷½ø³Ì±»»½ÐÑ¡£Èô¾ö²ßÔÊÐí£¬accept()·µ»Ø·Ç¸ºµÄÌ×½Ó×ÖÃèÊö·û£»·ñÔò·µ»Ø-1¾Ü¾ø¸ÃÁ¬½ÓÇëÇó¡£
¶ÔϵͳÏòÍâ·¢ÆðÁ¬½ÓµÄconnect()½øÐйýÂ˵ÄϵͳÁ÷³ÌÓë´ËÀàËÆ¡£
ÆäËüÁ½¸öϵͳµ÷ÓõŦÄÜÊÇ£¬close£¨£©¹Ø±ÕαÉ豸Çý¶¯£¬»áÊÍ·ÅÒÑ·ÖÅä×ÊÔ´²¢½ûÓ÷ֲ¼Ê½·À»ðǽ£»ioctl()ÓÃÓÚÄÚºËÓëÊØºò½ø³ÌÖ®¼äͬ²½Ê±µÄ´íÎó´¦Àí¡£
5 ½áÂÛ
·Ö²¼Ê½·À»ðǽʵʩÔÚ¸÷¸öÍøÂç¶ËµãÉÏ£¬¿Ë·þÁË´«Í³·À»ðǽµÄȱÏÝ£¬ÓÐЧ±£»¤ÁËÖ÷»ú£¬ÊÊÓ¦ÁËеÄÍøÂçÓ¦ÓõÄÐèÒª¡£ÎÒÃǹ¹½¨ÁËÒ»¸ö¿ÉÔËÐеķ¶ÀýչʾÁË·Ö²¼Ê½·À»ðǽµÄ¿ÉÐÐÐÔ¡£Æä½¡×³ÐÔ¡¢ÓÐЧÐԺͿÉÀ©Õ¹ÐÔ»¹ÐèÒª×÷½øÒ»²½µÄÊÔÑé½øÐÐÆÀ¹À¡¢²â¶¨¡£