ͨ¹ýNetfilterÈÕÖ¾¹¦ÄÜ£¬ÏµÍ³¹ÜÀíÔ±¿ÉÒÔʵʱ¼à¿ØÍøÂçÐÐΪ£¬·¢ÏÖ²¢½â¾öDZÔڵݲȫÎÊÌâ
±¾ÎĽ«ÉîÈë̽ÌÖLinux NetfilterÈÕÖ¾µÄ¹¦ÄÜ¡¢ÅäÖ÷½·¨¼°ÆäÔÚʵ¼ÊÓ¦ÓÃÖеÄÖØÒªÐÔ
Ò»¡¢Netfilter¸ÅÊö NetfilterÊÇLinux 2.4.x°æ±¾ÒýÈëµÄÒ»¸ö×Óϵͳ£¬Ö¼ÔÚÌṩһ¸öͨÓõġ¢³éÏóµÄ¿ò¼Ü£¬ÓÃÓÚ¹ÜÀíÊý¾Ý°ü´¦Àí¹ý³ÌÖеĹ³×Óº¯Êý£¨Hook£©
ÕâЩ¹³×Óº¯ÊýÔÊÐíÔÚÊý¾Ý°üÁ÷¾ÄÚºËÐÒéÕ»µÄ²»Í¬½×¶Î½øÐйýÂË¡¢Ð޸ĺͼǼ²Ù×÷
Netfilterͨ¹ýÔÚÍøÂçÁ÷³ÌÖеĹؼüλÖÃÉèÖüì²âµã£¨Hookµã£©£¬²¢ÔÚÿ¸ö¼ì²âµãÉϵǼǴ¦Àíº¯Êý£¬ÊµÏÖÁ˶ÔÊý¾Ý°üµÄÁé»î¿ØÖÆ
NetfilterÖÐÓÐÈý¸öºËÐĸÅÄ¹æÔò¡¢±íºÍÁ´
¹æÔòÊǶÔÌØ¶¨Êý¾Ý°üµÄ´¦Àí˵Ã÷£¬°üÀ¨Æ¥Åä×ֶκͶ¯×÷£¨Action£©
Á´ÊÇÒ»×鹿ÔòµÄ¼¯ºÏ£¬¶ø±íÔòÊÇÁ´ÖÐÏàͬ¹¦ÄܵĹæÔò¼¯ºÏ
Netfilter¶¨ÒåÁËÎå¸öÖ÷ÒªµÄHookµã£ºPRE_ROUTING¡¢LOCAL_IN¡¢FORWARD¡¢LOCAL_OUTºÍPOST_ROUTING£¬ÕâЩHookµã·Ö±ð¶ÔÓ¦Êý¾Ý°ü½øÈëIP²ãǰµÄ´¦Àí¡¢½øÈë±¾µØÖ÷»úǰµÄ´¦Àí¡¢×ª·¢´¦Àí¡¢À뿪±¾µØÖ÷»úǰµÄ´¦ÀíºÍÀ뿪IP²ãǰµÄ´¦Àí
¶þ¡¢NetfilterÈÕÖ¾¹¦ÄÜ NetfilterÈÕÖ¾¹¦ÄÜÊÇNetfilter¿ò¼ÜÖеÄÒ»¸öÖØÒª×é³É²¿·Ö£¬ËüÔÊÐíϵͳ¹ÜÀíÔ±¼Ç¼ͨ¹ýÌØ¶¨¹æÔòµÄÊý¾Ý°üÐÅÏ¢
ÕâЩÈÕÖ¾ÐÅÏ¢¶ÔÓÚÍøÂç¼à¿Ø¡¢¹ÊÕÏÅųýºÍ°²È«·ÖÎöÖÁ¹ØÖØÒª
ͨ¹ýNetfilterÈÕÖ¾£¬¹ÜÀíÔ±¿ÉÒÔ»ñÈ¡Êý¾Ý°üµÄÏêϸÐÅÏ¢£¬°üÀ¨Ô´µØÖ·¡¢Ä¿µÄµØÖ·¡¢ÐÒéÀàÐÍ¡¢¶Ë¿ÚºÅµÈ£¬´Ó¶øÉîÈëÁ˽âÍøÂçÁ÷Á¿µÄÌØµãºÍÐÐΪ
NetfilterÈÕÖ¾¹¦ÄÜÖ÷Ҫͨ¹ýiptablesÃüÁî½øÐÐÅäÖÃ
iptablesÊÇNetfilterµÄÒ»¸öÓû§¿Õ¼ä¹¤¾ß£¬ÓÃÓÚÔÚNetfilterµÄ¹ÒÔØµãÉÏ×¢²á¹³×Óº¯Êý£¬²¢ÅäÖÃÊý¾Ý°ü´¦Àí¹æÔò
ͨ¹ýiptables£¬¹ÜÀíÔ±¿ÉÒÔ¶¨ÒåÄÄЩÊý¾Ý°üÓ¦¸Ã±»¼Ç¼£¬ÒÔ¼°¼Ç¼ÄÄЩÐÅÏ¢
ÅäÖÃNetfilterÈÕÖ¾µÄ³£ÓÃÃüÁîÈçÏ£º iptables -t raw -I PREROUTING -p tcp --dport 80 -j LOG --log-level 3 --log-prefix ipt-err: ÕâÌõÃüÁî±íʾÔÚPREROUTINGÁ´ÉÏÌí¼ÓÒ»Ìõ¹æÔò£¬½«ËùÓÐÄ¿µÄ¶Ë¿ÚΪ80µÄTCPÊý¾Ý°ü¼Ç¼µ½ÈÕÖ¾ÖУ¬ÈÕÖ¾¼¶±ðÉèÖÃΪ3£¬ÈÕ־ǰ׺Ϊipt-err:
ÈÕÖ¾¼¶±ð¿ÉÒÔͨ¹ýsyslog¶¨Òå½øÐв鿴£¬³£¼ûµÄÈÕÖ¾¼¶±ð°üÀ¨KERN_EMERG£¨ÏµÍ³²»¿ÉÓã©¡¢KERN_ALERT£¨±ØÐëÁ¢¼´²ÉÈ¡Ðж¯£©¡¢KERN_CRIT£¨ÑÏÖØÌõ¼þ£©¡¢KERN_ERR£¨´íÎóÌõ¼þ£©¡¢KERN_WARNING£¨¾¯¸æÌõ¼þ£©¡¢KERN_NOTICE£¨Õý³£µ«ÖØÒªµÄÌõ¼þ£©¡¢KERN_INFO£¨ÐÅÏ¢ÐÔ£©ºÍKERN_DEBUG£¨µ÷ÊÔ¼¶ÏûÏ¢£©
´ËÍ⣬LOGÄ¿±ê»¹¿ÉÒÔÖ¸¶¨ÆäËû²ÎÊý£¬Èç--log-tcp-sequence£¨¼Ç¼TCPÐòÁкţ©¡¢--log-tcp-options£¨¼Ç¼TCPÑ¡Ï¡¢--log-ip-options£¨¼Ç¼IPÑ¡Ï¡¢--log-uid£¨¼Ç¼Óû§ID£©ºÍ--log-macdecode£¨¼Ç¼MACµØÖ·½âÂëÐÅÏ¢£©
ÕâЩ²ÎÊýÌṩÁ˸ü·á¸»µÄÈÕÖ¾ÐÅÏ¢£¬ÓÐÖúÓÚ¸üÉîÈëµØ·ÖÎöÍøÂçÁ÷Á¿
Èý¡¢NetfilterÈÕÖ¾µÄÅäÖÃÓëʵÏÖ ÔÚLinuxϵͳÖУ¬NetfilterÈÕÖ¾¹¦ÄܵÄÅäÖúÍʵÏÖÉæ¼°¶à¸ö²ãÃæ
Ê×ÏÈ£¬ÐèҪȷ±£ÄÚºËÖ§³ÖNetfilterÈÕÖ¾¹¦ÄÜ
Õâͨ³£Í¨¹ý¼ÓÔØÏà¹ØµÄÄÚºËÄ£¿éÀ´ÊµÏÖ£¬Èçipt_LOGºÍnf_log_ipv4
ÕâЩģ¿éÌṩÁ˱ØÒªµÄÈÕÖ¾¼Ç¼¹¦ÄÜ£¬²¢½«ÈÕÖ¾ÐÅÏ¢´«µÝ¸øsyslogϵͳ½øÐд¦Àí
modprobe ipt_LOG modprobe nf_log_ipv4 ¼ÓÔØÕâЩģ¿éºó£¬¿ÉÒÔͨ¹ýsysctlÃüÁîÅäÖÃNetfilterÈÕÖ¾µÄÏà¹Ø²ÎÊý
ÀýÈ磬¿ÉÒÔʹÓÃÒÔÏÂÃüÁIPv4ÐÒéµÄloggerÉèÖÃΪnf_log_ipv4£º sysctl net.netfilter.nf_log.2=nf_log_ipv4 ´ËÍ⣬»¹¿ÉÒÔͨ¹ýÐÞ¸Ä/etc/sysctl.confÎļþÀ´³Ö¾Ã»¯ÕâЩÅäÖÃ
ÔÚÄں˲ãÃæ£¬NetfilterÈÕÖ¾¹¦ÄÜÓÉһϵÁк¯ÊýºÍ½á¹¹ÌåʵÏÖ
ÕâЩº¯ÊýºÍ½á¹¹Ì帺Ôð´¦ÀíÈÕÖ¾¼Ç¼µÄ¸÷¸ö·½Ã棬°üÀ¨ÈÕÖ¾ÐÅÏ¢µÄÉú³É¡¢´«µÝºÍ´æ´¢
ÀýÈ磬log_tg_checkº¯ÊýÓÃÓÚ¼ì²éÈÕÖ¾¹æÔòµÄÓÐЧÐÔ£¬²¢²éÕÒϵͳÖÐ×¢²áµÄlogger£»log_tgº¯ÊýÔò¸ºÔð½«Æ¥ÅäLOG¹æÔòµÄ±¨ÎÄͨ¹ýnf_log_packetº¯Êý½øÐÐÈÕÖ¾Êä³ö
ÔÚsyslogϵͳ²ãÃæ£¬NetfilterÈÕÖ¾ÐÅÏ¢±»´«µÝ¸øsyslogÊØ»¤½ø³Ì½øÐд¦Àí
syslogÊØ»¤½ø³Ì¸ù¾ÝÈÕÖ¾¼¶±ðºÍǰ׺µÈÐÅÏ¢½«ÈÕÖ¾ÐÅϢдÈëµ½Ö¸¶¨µÄÈÕÖ¾Îļþ»ò·¢Ë͵½Ô¶³ÌÈÕÖ¾·þÎñÆ÷
ÕâÑù£¬ÏµÍ³¹ÜÀíÔ±¾Í¿ÉÒÔͨ¹ý²é¿´ÈÕÖ¾Îļþ»òʹÓÃÈÕÖ¾·ÖÎö¹¤¾ßÀ´¼à¿ØºÍ·ÖÎöÍøÂçÁ÷Á¿
ËÄ¡¢NetfilterÈÕÖ¾µÄÓ¦ÓÃÓëÖØÒªÐÔ NetfilterÈÕÖ¾¹¦ÄÜÔÚʵ¼ÊÓ¦ÓÃÖоßÓй㷺µÄ¼ÛÖµºÍÒâÒå
Ê×ÏÈ£¬Ëü¿ÉÒÔ°ïÖúϵͳ¹ÜÀíԱʵʱ¼à¿ØÍøÂçÁ÷Á¿£¬Á˽âÍøÂçµÄʹÓÃÇé¿öºÍÐÐΪģʽ
ͨ¹ý·ÖÎöÈÕÖ¾ÐÅÏ¢£¬¹ÜÀíÔ±¿ÉÒÔ·¢ÏÖÒì³£Á÷Á¿¡¢Ç±ÔڵݲȫÍþвºÍÐÔÄÜÆ¿¾±µÈÎÊÌ⣬²¢¼°Ê±²ÉÈ¡´ëÊ©½øÐнâ¾ö
Æä´Î£¬NetfilterÈÕÖ¾¹¦ÄܶÔÓÚ¹ÊÕÏÅųýºÍ°²È«·ÖÎöÖÁ¹ØÖØÒª
µ±ÍøÂç³öÏÖ¹ÊÕÏ»ò°²È«Ê¼þʱ£¬¹ÜÀíÔ±¿ÉÒÔͨ¹ý²é¿´ÈÕÖ¾ÐÅÏ¢À´¶¨Î»ÎÊÌâÔÒòºÍ¹¥»÷Ô´£¬´Ó¶ø²ÉÈ¡ÏàÓ¦µÄ·ÀÓù´ëÊ©
´ËÍ⣬ÈÕÖ¾ÐÅÏ¢»¹¿ÉÒÔ×÷Ϊ֤¾ÝÓÃÓÚ·¨ÂÉËßËϺͺϹæÐÔÉó¼ÆµÈ·½Ãæ
×îºó£¬NetfilterÈÕÖ¾¹¦ÄÜ»¹¿ÉÒÔÓëÆäËû°²È«¹¤¾ßºÍ¼¼ÊõÏà½áºÏ£¬Ðγɸü¼ÓÍêÉÆµÄÍøÂ簲ȫ·À»¤Ìåϵ
ÀýÈ磬¿ÉÒÔ½«NetfilterÈÕÖ¾ÓëÈëÇÖ¼ì²âϵͳ£¨IDS£©Ïà½áºÏ£¬ÊµÏÖ¶ÔÍøÂçÁ÷Á¿µÄʵʱ¼à¿ØºÍÒì³£¼ì²â£»»¹¿ÉÒÔ½«ÈÕÖ¾ÐÅÏ¢·¢Ë͵½°²È«ÐÅÏ¢ºÍʼþ¹ÜÀí£¨SIEM£©ÏµÍ³½øÐзÖÎöºÍ±¨¸æ
Îå¡¢½áÂÛ ×ÛÉÏËùÊö£¬Linux NetfilterÈÕÖ¾¹¦ÄÜÊÇÒ»¸öÇ¿´ó¶øÁé»îµÄ¹¤¾ß£¬ËüÔÊÐíϵͳ¹ÜÀíԱʵʱ¼à¿ØºÍ·ÖÎöÍøÂçÁ÷Á¿£¬·¢ÏÖ²¢½â¾öDZÔڵݲȫÎÊÌâºÍÐÔÄÜÆ¿¾±
ͨ¹ýºÏÀíÅäÖúÍʹÓÃNetfilterÈÕÖ¾¹¦ÄÜ£¬¹ÜÀíÔ±¿ÉÒÔÉîÈëÁ˽âÍøÂçÐÐÎªÌØµã£¬Ìá¸ßÍøÂ簲ȫ·À»¤ÄÜÁ¦£¬²¢È·±£ÍøÂçµÄÎȶ¨ÔËÐÐ
Òò´Ë£¬¶ÔÓÚÈκÎÐèÒª±£ÕÏÍøÂ簲ȫºÍÐÔÄܵÄ×éÖ¯À´Ëµ£¬ÕÆÎÕºÍÀûÓÃLinux NetfilterÈÕÖ¾¹¦Äܶ¼ÊÇÖÁ¹ØÖØÒªµÄ