¡¾×ªÌûLINUX¡¿netfilterÖеÄconntrackÄÚºËÔĶÁ±Ê¼Ç(1)
2008-07-07 22:04×´ ̬¼ì²â(stateful inspection)ÊÇÓÉCheckPoint¹«Ë¾×îÏÈÌá³öµÄ£¬¿ÉËãÊÇ·À»ðǽ¼¼ÊõµÄÒ»ÏîÍ»ÆÆÐÔ±ä¸ï£¬°Ñ°ü¹ýÂ˵ĿìËÙÐԺʹúÀíµÄ°²È«ÐԺܺõؽáºÏÔÚÒ»Æð£¬ ĿǰÒѾÊÇ·À»ðǽ×îÁ÷Ðеļì²â·½Ê½¡£×´Ì¬¼ì²âµÄ¸ù±¾Ë¼ÏëÊǶÔËùÓÐÍøÂçÊý¾Ý½¨Á¢“Á¬½Ó”µÄ¸ÅÄ´Ë“Á¬½Ó”ÊÇÃæÏò“Á¬½Ó”µÄÐÒéÖ®“Á¬½Ó”µÄÀ©Õ¹£¬¶Ô·ÇÁ¬½Ó ÐÒéÊý¾ÝÒ²¿ÉÒÔ½¨Á¢ÐéÄâÁ¬½Ó¡£¼ÈÈ»ÊÇÁ¬½Ó£¬±ØÈ»ÊÇÓÐÒ»¶¨µÄ˳ÐòµÄ£¬Í¨ÐÅÁ½±ßµÄÁ¬½Ó״̬ҲÊÇÓÐÒ»¶¨Ë³Ðò½øÐб仯µÄ¡£·À»ðǽµÄ״̬¼ì²â¾ÍÊÇÊÂÏÈÈ·¶¨ºÃÁ¬½ÓµÄºÏ ·¨¹ý³Ìģʽ£¬Èç¹ûÊý¾Ý¹ý³Ì·ûºÏÕâ¸öģʽ£¬Ôò˵Ã÷Êý¾ÝÊǺϷ¨ÕýÈ·µÄ£¬·ñÔò¾ÍÊÇ·Ç·¨Êý¾Ý£¬Ó¦¸Ã±»¶ªÆú¡£
2.6Äں˵ÄLinuxÖеķÀ»ðǽ´úÂënetfilterÖÐʵÏÖÁË״̬¼ì²â (stateful inspection)¼ì²â¼¼Êõ£ºLinuxΪÿһ¸ö¾¹ýÍøÂç¶ÑÕ»µÄÊý¾Ý°ü£¬Éú³ÉÒ»¸öеÄÁ¬½Ó¼Ç¼ÏConnection entry£©¡£´Ëºó£¬ËùÓÐÊôÓÚ´ËÁ¬½ÓµÄÊý¾Ý°ü¶¼±»Î¨Ò»µØ·ÖÅ䏸Õâ¸öÁ¬½Ó£¬²¢±êʶÁ¬½ÓµÄ״̬¡£linuxÔÚnetfilterµÄhookµãÉÏΪ contrack¶¨ÒåÁËÈçϼ¸¸ö¹Ò½Óµã£¬ÓÃÀ´´¦ÀíÁ÷¾µÄip°ü£º
NF_IP_PRE_ROUTING £º ip_conntrack_defrag -> ip_conntrack_in
NF_IP_LOCAL_IN £º ip_conntrack_help -> ip_confirm
NF_IP_LOCAL_OUT £º ip_conntrack_defrag -> ip_conntrack_local
NF_IP_POST_ROUTING £ºip_conntrack_help -> ip_confirm
ÆäÖÐip_contrack_defragÓÃÀ´´¦Àí±¨ÎÄ·Ö Æ¬£»ip_conntrack_inºÍip_conntrack_local(ÄÚ²¿µ÷ÓÃip_conntrack_in)ÓÃÓÚconntrackΪÿ¸öÁ¬ ½Ó½¨Á¢Ä£Ê½¼Ç¼£¬ip_conntrack£¬²¢Åжϱ¨ÎÄÊÇ·ñ·ûºÏºÏ·¨µÄģʽ£¬²»·ûºÏÔò¶ªÆú£»ip_conntrack_helpÊÇÕë¶ÔʹÓö¯Ì¬ÐÒéºÍ¶Ë¿Ú µÄÁ¬½ÓÉè¼ÆµÄÊý¾Ý½á¹¹£¬ÈçÒ»¸öftpÁ¬½ÓÕë¶ÔÊý¾ÝÁ÷ºÍ¿ØÖÆÁ÷·Ö±ðÓõ½ÁËÁ½¸ö¶Ë¿Ú£¬£»ip_confirmÅжϱ¨ÎÄËùÊôµÄģʽip_conntrackÊÇ·ñ ÒѾ´æÔÚϵͳ¹þÏ£ÖУ¬·ñÔò¼ÓÈ뵽ϵͳµÄhashÖС£
NetfilterʹÓÃÒ»ÕÅÈ«¾Öhash±íÀ´¶¨Ò屨ÎĵÄÁ¬½Ó״̬£¬Ëü¶¨ÒåÔÚip_conntrack_core.cÖУ¬ÓÃÖ¸Õëstruct list_head *ip_conntrack_hashÀ´ÃèÊö¸Ã±í¡£Õâ¸öhash±íµÄ´óСÊÇÓÐÏÞÖÆµÄ£¬ÔÚÄ£¿é×°ÔØµÄʱºòÈ·¶¨£¬¿ÉÒÔÓÉÓû§Ö¸¶¨£¬ÓÉip_con
Ïà¹ØÎĵµ£º
“Sudo”ÊÇUnix/Linuxƽ̨ÉϵÄÒ»¸ö·Ç³£ÓÐÓõŤ¾ß£¬ËüÔÊÐíϵͳ¹ÜÀíÔ±·ÖÅ䏸ÆÕͨÓû§Ò»Ð©ºÏÀíµÄ“ȨÀû”£¬ÈÃËûÃÇÖ´ÐÐһЩֻÓг¬¼¶Óû§»òÆäËûÌØÐíÓû§²ÅÄÜÍê³ÉµÄÈÎÎñ£¬±ÈÈ磺ÔËÐÐһЩÏñmount£¬halt£¬suÖ®ÀàµÄÃüÁ»òÕß±à¼Ò»Ð©ÏµÍ³ÅäÖÃÎļþ£¬Ïñ/etc/mtab£¬/etc/samba/smb.confµÈ¡£ÕâÑùÒÔÀ´£¬¾Í²»½ö¼õÉÙÁ ......
4. Threads
To use the POSIX standard thread API (pthreads), link libpthread.so
to your program.
4.1. Thread Creation
Each thread in a process is identified by a thread ID,
pthread_t.
The pthread_self function returns the thread ID of the current
thread.
This thread IDs can be compared ......
apacheµÄÔ´Âë°²×°
½«Ñ¹Ëõ°ü½âѹ֮ºó½øÈëÏàÓ¦µÄĿ¼
./configure \ #--------------------Ô¤±àÒëÃüÁî
"--prefix=/usr/local/apache" \ #--------------------°²×°Â·¾¶Îª“/usr/local/apache”
"--with-included-apr" \
"--enable-so" \ #--------------------¿ªÆôÏàÓ¦µÄÀ©Õ¹Ä£¿é ......