ÉîÈëLinuxÄÚºËÍøÂç¶ÑÕ»
×÷Õߣºbioforge alkerr@yifan.net
ÔÃû£º <<Hacking the Linux Kernel Network Stack>>
·Ò룬Ð޸ģº duanjigang <duanjigang1983@126.com>
·Òë²Î¿¼£ºraodan (raod_at_30san.com) 2003-08-22
µÚÒ»Õ ¼ò½é
±¾ÎĽ«ÃèÊöÈçºÎÀûÓÃLinuxÍøÂç¶ÑÕ»µÄÇÏÃÅ£¨²»Ò»¶¨¶¼ÊÇ©¶´£©À´´ïµ½Ò»Ð©Ä¿µÄ£¬»òÕßÊǶñÒâµÄ£¬»òÕßÊdzöÓÚÆäËüÒâͼµÄ¡£ÎÄÖлá¾ÍºóÃÅͨѶ¶ÔNetfilter¹³×Ó½øÐÐÌÖÂÛ£¬²¢ÔÚ±¾µØ»úÆ÷ÉÏʵÏÖ½«Õâ¸ö´«Êä´Ó»ùÓÚLibpcapµÄÐá̽Æ÷(sniffer)ÖÐÒþ²Ø¡£
NetfilterÊÇ2.4Äں˵ÄÒ»¸ö×Óϵͳ¡£Netfilter¿ÉÒÔͨ¹ýÔÚÄں˵ÄÍøÂç´úÂëÖÐʹÓø÷ÖÖ¹³×ÓÀ´ÊµÏÖÊý¾Ý°ü¹ýÂË£¬ÍøÂçµØÖ·×ª»»(NAT)ºÍÁ¬½Ó¸ú×ÙµÈÍøÂçÆÛÆ¡£ÕâЩ¹³×Ó±»·ÅÖÃÔÚÄں˴úÂë¶Î£¬»òÕß¾²Ì¬±àÒë½øÄںˣ¬»òÕß×÷Ϊһ¸ö¿É¶¯Ì¬¼ÓÔØ/Ð¶ÔØµÄ¿ÉÐ¶ÔØÄ£¿é£¬È»ºó¾Í¿ÉÒÔ×¢²á³ÆÖ®ÎªÍøÂçʼþµÄº¯Êý£¨±ÈÈçÊý¾Ý°üµÄ½ÓÊÕ£©¡£
1.1 ±¾ÎÄÂÛÊöµÄÄÚÈÝ
±¾ÎĽ«½²ÊöÄÚºËÄ£¿éµÄ±àдÕßÈçºÎÀûÓÃNetfilterµÄ¹³×ÓÀ´´ïµ½ÈκÎÄ¿µÄ£¬ÒÔ¼°ÔõÑù½«ÍøÂç´«Êä´ÓÒ»¸öLibpcapµÄÓ¦ÓÃÖÐÒþ²Øµô¡£¾¡¹ÜLinux2.4Ö§³Ö¶ÔIPV4£¬IPV6ÒÔ¼°DECnetµÄ¹³×Ó,±¾ÎÄÖ»Ìá¼°IPV4µÄ¹³×Ó¡£µ«ÊÇ£¬¶ÔIPV4µÄ´ó¶àÊýÓ¦ÓÃÄÚÈÝͬÑùÒ²¿ÉÒÔÓ¦ÓÃÓÚÆäËûÐÒé¡£³öÓÚ½ÌѧĿµÄ£¬ÎÒÃÇÔÚ¸½Â¼A¸ø³öÁËÒ»¸ö¿ÉÒÔ¹¤×÷µÄÄÚºËÄ£¿é£¬ÊµÏÖ»ù±¾µÄÊý¾Ý°ü¹ýÂ˹¦ÄÜ¡£Õë¶Ô±¾ÎÄÖÐËùÁм¼ÊõµÄËùÓпª·¢ºÍÊÔÑé¶¼ÔÚIntel»ú×ÓÉϵÄLinux2.4.5ϵͳÉϽøÐйý¡£¶ÔNetfilte ¹³×ÓÐÐΪµÄ²âÊÔʹÓõÄÊǻػ·É豸(Loopback device),ÒÔÌ«ÍøÉ豸ºÍÒ»¸öµã¶Ôµã½Ó¿ÚµÄµ÷ÖÆ½âµ÷Æ÷¡£
¶ÔNetfilter½øÐÐÍêÈ«Àí½âÊÇÎÒ׫д±¾ÎĵÄÁíÒ»¸ö³õÖÔ¡£ÎÒ²»Äܱ£Ö¤ÕâÆªÎÄÕÂËù¸½µÄ´úÂë100%µÄûÓвî´í£¬µ«ÊÇËùÁоٵÄËùÓдúÂëÎÒ¶¼ÊÂÏȲâÊÔ¹ýÁË¡£ÎÒÒѾ±¥³¢ÁËÄں˴íÎó´øÀ´µÄÄ¥í£¬¶øÄãÈ´²»±ØÔÙ¾ÊÜÕâЩ¡£Í¬Ñù£¬ÎÒ²»»áΪ°´ÕÕÕâÆªÎĵµËù˵µÄÈκζ«Î÷½øÐеÄ×÷ËùËùΪ´øÀ´µÄËðʧ¶ø¸ºÔð¡£ÔĶÁ±¾ÆªÎÄÕµĶÁÕß×îºÃÊìϤC³ÌÐòÉè¼ÆÓïÑÔ£¬²¢ÇÒ¶ÔÄں˿ÉÐ¶ÔØÄ£¿éÓÐÒ»¶¨µÄ¾Ñé¡£
Èç¹ûÎÒÔÚÎÄÖз¸ÁËÈκδíÎóµÄ»°£¬Çë¸æÖªÎÒ¡£ÎÒ¶ÔÓÚÄãÃǵĽ¨ÒéºÍÕë¶Ô´ËÎĵĸĽø»òÕ߯äËüµÄNetfilterÓ¦ÓûáÇãÐĽÓÊÜ¡£
1.2 ±¾ÎIJ»»áÉæ¼°µ½µÄ·½Ãæ
±¾ÎIJ¢²»ÊÇNetfilterµÄÍêÈ«¹á´©(»òÕß½ø½ø³ö³öµÄ½²½â)¡£Ò²²»ÊÇiptablesÃüÁîµÄ½éÉÜ¡£Èç¹ûÄãÏë¸üºÃµÄѧϰiptablesµÄÃüÁ¿ÉÒÔÈ¥×ÉѯmanÊֲᡣ
ÈÃÎÒÃÇ´Ó½éÉÜNerfilterµÄʹÓÿªÊ¼°É……….
µÚ¶þÕ ¸÷ÖÖNetFilter ¹³×Ó¼°ÆäÓ÷¨
2.1 LinuxÄں˶ÔÊý¾Ý°üµÄ´¦Àí
ÎÒ½«¾¡×î´óŬÁ¦
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
Ò».¿âµÄ·ÖÀà
ÓÐÁ½ÖÖ˵·¨£¬Èç¹ûÊìϤWINƽ̨ϵÄDLL£¬ÏàÐŲ»ÄÑÀí½â£º
¿â¿ÉÒÔÓÐÈýÖÖʹÓõÄÐÎʽ£º¾²Ì¬¡¢¹²ÏíºÍ¶¯Ì¬¡£¾²Ì¬¿âµÄ´úÂëÔÚ±àÒëʱ¾ÍÒÑÁ¬½Óµ½¿ª·¢ÈËÔ±¿ª·¢µÄÓ¦ÓóÌÐòÖУ¬¶ø¹²Ïí¿âÖ»ÊÇÔÚ³ÌÐò¿ªÊ¼ÔËÐÐʱ²ÅÔØÈ룬ÔÚ±àÒëʱ£¬
Ö»ÊǼòµ¥µØÖ¸¶¨ÐèҪʹÓõĿ⺯Êý¡£¶¯Ì¬¿âÔòÊÇ ......
ÔÎÄÁ´½Ó£ºhttp://www.trucy.org/blog/archives/eoiae/000087.html
GDBÊÇÒ»¸öÇ¿´óµÄÃüÁîÐе÷ÊÔ¹¤¾ß¡£´ó¼ÒÖªµÀÃüÁîÐеÄÇ¿´ó¾ÍÊÇÔÚÓÚ£¬Æä¿ÉÒÔÐγÉÖ´ÐÐÐòÁУ¬Ðγɽű¾¡£UNIXϵÄÈí¼þÈ«ÊÇÃüÁîÐеģ¬Õâ¸ø³ÌÐò¿ª·¢Ìá´ú¹©Á˼«´óµÄ±ãÀû£¬ÃüÁîÐÐÈí¼þµÄÓÅÊÆÔÚÓÚ£¬ËüÃÇ¿ÉÒԷdz£ÈÝÒ׵ÉÔÚÒ» ......
Linux·þÎñcannot change directory´íÎó½â¾ö·½·¨
ÔÚ°²×°Íêvsftp·þÎñºóµÇ½ʱ¿ÉÄÜÓöµ½cannot change directoryºóÃæÊǵǽÕßµÄĿ¼µÄ´íÎó¡£ÕâÊÇÒòΪSEÉèÖõĹرÕÁËftpµÄÔÒò¡£
ʹÓÃÃüÁî
getsebool ftpd_disable_trans
¿ÉÒԲ鿴µ±Ç°µÄ״̬Èç¹û²»ÊÇon
ÄÇôÊÇÊäÈëÃüÁî
setsebool ftpd_disable_trans 1
µ±È»Ò²¿ÉÒÔ¼ÓÈë-P² ......