ÉîÈë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£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
½«php·þÎñÆ÷¼Üµ½linuxÏÂʱûÓÐ×¢Òâ¸ÃÎÊÌ⣬
ǰ¼¸Ììµ¹ÊÇÅöµ½ÁËÔÚlinuxÏÂÑéÖ¤ÂëµÄͼƬÎÞ·¨ÏÔʾµÄÇé¿ö£¬·¢ÏÖlinuxÏÂÒ²ÒªÓÐgd¿âµÄÖ§³Ö£¬ÓÚÊǰ²×°ÁËphp5-gd£¨±¾ÈËʹÓõÄÊÇphp5£©
£¬Õâ¸öÎÊÌâ½â¾öÁË
½ñÌìͻȻ·¢ÏÖimgͼƬÎÞ·¨ÏÔʾ£¬ÉÏÍøËÑÁËÒ»°Ñ£¬ÓÖ¾¹ý²âÊԵóöÈçϽáÂÛ
<img src="pc.jpg"......>
Ëû»áÒÔµ±Ç°Â·¾¶ ......
ÔÚLinuxÖÐÓÃttySxµÄÐÎʽÀ´±íʾ´®¿ÚÉ豸Ãû£¬Èç COM1±»±íʾΪttyS0£¬COM2±»±íʾΪttyS1£¬ÒÔ´ËÀàÍÆ¡£ÏÂÃæÕâ¸öÃüÁîÏÔʾϵͳÖб»¼ì²âµ½µÄ´®¿Ú£º
# dmesg | grep ttyS
[ 25.942157] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 25.942840] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) ......
Linux·þÎñcannot change directory´íÎó½â¾ö·½·¨
ÔÚ°²×°Íêvsftp·þÎñºóµÇ½ʱ¿ÉÄÜÓöµ½cannot change directoryºóÃæÊǵǽÕßµÄĿ¼µÄ´íÎó¡£ÕâÊÇÒòΪSEÉèÖõĹرÕÁËftpµÄÔÒò¡£
ʹÓÃÃüÁî
getsebool ftpd_disable_trans
¿ÉÒԲ鿴µ±Ç°µÄ״̬Èç¹û²»ÊÇon
ÄÇôÊÇÊäÈëÃüÁî
setsebool ftpd_disable_trans 1
µ±È»Ò²¿ÉÒÔ¼ÓÈë-P² ......
ǰÑÔ£º
µ±ÎÒÃÇʹÓÃǶÈëʽlinux ½øÐпª·¢Ê±£¬kernel ÅÜÆðÀ´Ö®ºó£¬ÎÒÃÇÏ£ÍûÄÜͨ¹ý´®¿Ú£¨±ê×¼ÊäÈë¡¢Êä³ö£©£¬ÔÚÓ¦ÓóÌÐòÕýÔÚÔËÐеĹý³ÌÖУ¬½øÐÐһЩµ÷ÊÔ¹¤×÷£¬ÀýÈ磬¶ÔCPUһЩ¼Ä´æ½øÐе÷Õû£¬ÒÔ¹Û²âµ÷ÕûÒÔºóµÄ½á¹û£¬²¢ÇÒ£¬µ±ÎÒÃÇÎÞ·¨°ÑÎÒÃǵÄÓ¦ÓóÌÐò·ÅÔÚºǫ́ÔËÐУ¬ÄÇôÎÒÃǾÍÐèÒªÊ ......