ÉîÈë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Äں˶ÔÊý¾Ý°üµÄ´¦Àí
ÎÒ½«¾¡×î´óŬÁ¦
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
Ò».¿âµÄ·ÖÀà
ÓÐÁ½ÖÖ˵·¨£¬Èç¹ûÊìϤWINƽ̨ϵÄDLL£¬ÏàÐŲ»ÄÑÀí½â£º
¿â¿ÉÒÔÓÐÈýÖÖʹÓõÄÐÎʽ£º¾²Ì¬¡¢¹²ÏíºÍ¶¯Ì¬¡£¾²Ì¬¿âµÄ´úÂëÔÚ±àÒëʱ¾ÍÒÑÁ¬½Óµ½¿ª·¢ÈËÔ±¿ª·¢µÄÓ¦ÓóÌÐòÖУ¬¶ø¹²Ïí¿âÖ»ÊÇÔÚ³ÌÐò¿ªÊ¼ÔËÐÐʱ²ÅÔØÈ룬ÔÚ±àÒëʱ£¬
Ö»ÊǼòµ¥µØÖ¸¶¨ÐèҪʹÓõĿ⺯Êý¡£¶¯Ì¬¿âÔòÊÇ ......
/ :¸ùĿ¼£¬ÊÇFHS½á¹¹ÖеÄ×î¶¥²ãĿ¼¡£ÆäËüËùÓÐĿ¼¶¼ÊÇËüµÄ×ÓĿ¼£¬Ëü×ÜÊÇÒÔ¶ÀÁ¢µÄ·ÖÇø¹ÒÔØ¡£ÆäËüËùÓв»ÊÇÒÔ¶ÀÁ¢·ÖÇø¹ÒÔØµÄĿ¼¶¼°üº¬Ôڴ˸ùĿ¼·ÖÇø¡£
/bin:°üº¬Ò»Ð©ÓÐÓõÄÃüÁîÐй¤¾ß¡£²»Äܱ»µ¥¶À¹ÒÔØÎªÒ»¸ö·ÖÇø£¬·ñÔòÓûָ´ÅÌÐÞ¸´ÏµÍ³Ê±½«²»ÄÜ·ÃÎÊÕâЩÃüÁî¡£
/boot:°üº¬LinuxÆô¶¯Îļþ£¬°üº¬LinuxϵͳµÄÄÚº ......
yumÊÇʲô?(linuxÃüÁî)
Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔÒò,Fedora×Ô´ø
¶þ. yumÌØµã
*¿ÉÒÔͬʱÅäÖöà¸ö×ÊÔ´¿â(Repository)
*¼ò½àµÄÅäÖÃÎļ ......
Linux Ê×ÏÈ´´½¨ramfsÎļþϵͳ(/)
È»ºó°Ñinitrd.imgÎļþ¼ÓÔØµ½ / Ŀ¼Ï¡£
ÆäËüÎļþϵͳÊÇ×öΪramfsµÄÒ»¸öĿ¼½áµã¹ÒÔØÉÏÈ¥µÄ¡£
initrd.imgÊÇÒ»¸öÓÃzipѹËõµÄcpio¸ñʽµÄѹËõÎļþ¡£°´ÏÂÃæ²½ÖèʵÏÖ½âѹ
µÚÒ»²½£º½«initrd.img¸ÄÃûΪinitrd.img.gz
mv initrd.img initrd.img.gz
µÚ¶þ²½£ºÓÃgunzip½âѹÉú³Éinitrd.img
gunzi ......