netfilter/iptables FAQ Harald Welte <laforge@gnumonks.org> Version $Revision: 529 $, $Date: 2002-07-26 22:19:42 +0200 (vie, 26 jul 2002) $ º» ¹®¼­´Â netfilter ¸ÞÀϸµ¸®½ºÆ®¿¡¼­ ÀÚÁÖ ¾ð±ÞµÇ´Â Áú¹®µéÀ» ¸ð¾ÆµÐ °ÍÀÔ´Ï´Ù. Àǹ®Á¡À̳ª ÇÊ¿äÇÑ ¼öÁ¤»çÇ×Àº FAQ °ü¸®ÀÚ¿¡°Ô ¿¬¶ôÇÏ¸é °¨»çÇϰڽÀ´Ï´Ù. ÀϹÝÀûÀÎ Áú¹®µé

º» ¼½¼Ç¿¡¼­´Â ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ºó¹øÈ÷ ¾ð±ÞµÇ´Â Áú¹®µéÀ» ´Ù·ì´Ï´Ù. ¾îµð¿¡¼­ netfilter/iptablesÀ» ¾òÀ»¼ö ÀÖ³ª¿ä?

Netfilter¿Í Iptables´Â ¸®´ª½º 2.4.x Ä¿³Î¿¡ ³»ÀåµÇ¾î ÀÖ½À´Ï´Ù. ÃֽЏ®´ª½º Ä¿³ÎÀ» ´ÙÀ½ »çÀÌÆ®¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ¸½Ã¸é µË´Ï´Ù.

»ç¿ëÀÚ ¿µ¿ª ÅøÀÎ 'iptables'Àº netfilter ȨÆäÀÌÁö ¹Ì·¯»çÀÌÆ®ÀÎ ´ÙÀ½ »çÀÌÆ®µéÁß Çѱºµ¥¿¡¼­ ¹ÞÀ¸½Ã¸é µË´Ï´Ù. , or . ¸®´ª½º 2.2¿¡ Æ÷ÆÃµÈ netfilter°¡ ÀÖ½À´Ï±î?

ÇöÀç±îÁö´Â ¾ø½À´Ï´Ù. ÇÏÁö¸¸ netfilter´Â ºÐ¸íÇÑ ³×Æ®¿÷ ½ºÅØ ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø Çϱ⶧¹®¿¡ ´©±º°¡ ÇÏ·Á°í ÇÑ´Ù¸é ±×·¸°Ô ¾î·Á¿î ÀÏÀº ¾Æ´Ò°ÍÀÔ´Ï´Ù.

ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­ ¾î¶² ÀÛ¾÷ÀÌ¶óµµ ÇÏ°í °è½ÅºÐÀº ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù. ICQ conntrack/NAT helper moduleÀÌ ÀÖ½À´Ï±î?

¸®´ª½º 2.2 ¹Ú½º¿¡¼­ ¸¶½ºÄ¿·¹À̵ùÀ» »ç¿ëÇϰí ÀÖ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´ë Ŭ¶óÀÌ¾ðÆ® icq Á÷Á¢ ¿¬°áÀ» À§ÇØ Ç×»ó ip_masq_icq ¸ðµâÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

ICQ ÇÁ·ÎÅäÄÝÀº ±×·¸°Ô ÀÌ»Û ÆíÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ¾ÆÁ÷±îÁö ¾Æ¹«µµ ÀÌ ¸ðµâÀ» netfilter ¿ëÀ¸·Î ±¸ÇöÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ À̰ÍÀÌ ±¸ÇöµÇ´Â °ÍÀº ½Ã°£ ¹®Á¦ÀÏ °ÍÀÔ´Ï´Ù.

Rusty´Â ÀÏÀü¿¡ ¾ð±ÞÇϱ⸦ ÃÖ¼ÒÇÑ ÇϳªÀÇ ÀÚÀ¯(free) Ŭ¶óÀÌ¾ðÆ®¿Í ÃÖ¼ÒÇÑ ÇϳªÀÇ ÀÚÀ¯(free) ¼­¹ö¸¦ °®´Â ÇÁ·ÎÅäÄÝÀÇ ¸ðµâ¸¸À» netfilter¿¡ Æ÷ÇÔÇÑ´Ù°í Çß½À´Ï´Ù. ICQÀÇ °æ¿ì ¿ÀÁ÷ ÀÚÀ¯(free) Ŭ¶óÀÌ¾ðÆ®¸¸ÀÌ Àֱ⠶§¹®¿¡ ÀÌ ¿ä±¸ Á¶°ÇÀ» ÃæÁ·½ÃŰÁö ¸øÇÕ´Ï´Ù.(ÀÚÀ¯¶ó ÇÔÀº ¹«·á¸¦ ¶æÇÏ´Â °ÍÀÌ ¾Æ´Ï freedomÀÇ free ÀÔ´Ï´Ù) ip_masq_vdolive / ip_masq_quake / ... ¸ðµâµéÀº ¾îµð·Î °¬½À´Ï±î?

±×µéÁß ¸î¸îÀº ÇÊ¿äÇÏÁö ¾Ê°Ô µÆÀ¸¸ç ¶Ç ¸î¸îÀº ¾ÆÁ÷ netfilter¿¡ Æ÷ÆÃµÇÁö ¾Ê¾Ò½À´Ï´Ù. netfilterÀº UDP¿¡¼­ Á¶Â÷µµ full connection trackingÀ» ÇÏ°í ¶Ç °¡´ÉÇÑÇÑ ÆÐŶ Àü¼ÛÀ» Àû°Ô ¹æÇØÇÏ´Â Á¤Ã¥À» °¡Áö°í Àֱ⠶§¹®¿¡ ¾î¶²°æ¿ì ±×³É µÇ±âµµ ÇÕ´Ï´Ù. patch-o-maticÀº ¹«¾ùÀÌ°í ¶Ç ¾î¶»°Ô ÀÌ¿ëÇÏ´Â °Ì´Ï±î?

2.4.x Ä¿³ÎÀº ¾ÈÁ¤ ¹öÀüÀÔ´Ï´Ù. ±×·¡¼­ ¿ì¸®´Â ÇöÀç °³¹ß ¹öÀüÀ» ÀÌ Ä¿³Î¿¡ ²¸³ÖÀ»¼ö ¾ø¾ú½À´Ï´Ù. ÇöÀç °³¹ßµÇ°í ¶Ç Å×½ºÆ® µÇ°í ÀÖ´Â ÄÚµå´Â ¸ÕÀú patch-o-matic¿¡ ³Ö¾î Áö°Ô µË´Ï´Ù. ±×·¯¹Ç·Î Å×½ºÆ® ÁßÀÎ ±â´ÉÀ» »ç¿ëÇÏ°í ½Í´Ù¸é patch-o-matic À¸·Î ºÎÅÍ ÆÐÄ¡¸¦ ¹ÞÀ¸¼¼¿ä. patch-o-matic´Â ÃֽŠiptables ÆÐŰÁö(ȤÀº CVS)¿¡¼­ ãÀ» ¼ö ÀÖÀ»°ÍÀÌ¸ç ¶ÇÇÑ netfilter ȨÆäÀÌÁö¿¡¼­µµ ´Ù¿î·Îµå ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.

patch-o-maticÀº Àß Á¤µ·µÈ »ç¿ëÀÚ ÀÎÅׯäÀ̽º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ´ÜÁö make patch-o-matic À» ÇÏ´øÁö Ä¿³Î Æ®¸®°¡ /usr/src/linux ¿¡ ¾ø´Â °æ¿ì make KERNEL_DIR={your-kernel-dir} patch-o-matic ¿Í °°ÀÌ iptables ÆÐŰÁöÀÇ ÃÖ»óÀ§ µð·ºÅ丮¿¡¼­ ÇØÁÖ¸é µË´Ï´Ù. patch-o-maticÀº ÀνºÅçÇÑ Ä¿³Î ¼Ò½º¿¡ Àû¿ëÀÌ µÉÁö ¾ÈµÉÁö °¢°¢ÀÇ ÆÐÄ¡¸¦ üũÇÕ´Ï´Ù. ÆÐÄ¡°¡ Àû¿ë °¡´ÉÇϸé ÇÁ·ÒÇÁÆ®¸¦ º¸°Ô µÉ °ÍÀε¥ ¿©±â¿¡¼­ ±× ÆÐÄ¡¿¡ ´ëÇÑ Á»´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¹°¾îº¼ ¼ö ÀÖÀ¸¸ç ÆÐÄ¡¸¦ Àû¿ëÇÒ °ÍÀÎÁö ´ÙÀ½À¸·Î ±×³É ³Ñ¾î°¥ °ÍÀÎÁö ¼±ÅÃÇÏ¸é µË´Ï´Ù. ipnatctl°ú ±×¿¡ ´ëÇÑ Á»´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ¾îµð¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï±î?

ipnatctlÀº netfilterÀÇ Ãʱ⠹öÀüÀÎ 2.3.x Ä¿³Î ¹öÀü¿¡¼­ »ç¿ëÀÚ ¿µ¿ªÀ¸·Î ºÎÅÍ NAT ·êÀ» ¼³Á¤Çϱâ À§ÇØ »ç¿ëµÈ ÅøÀÔ´Ï´Ù. À̰ÍÀº ´õÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ¸¸ç µû¶ó¼­ ´õÀÌ»ó ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ipnatctl¿¡¼­ Á¦°øÇÏ´Â ¸ðµç ±â´ÉÀº iptables ÀÚü¿¡¼­ Á¦°øÇÕ´Ï´Ù. netfilter ȨÆäÀÌÁö¿¡¼­ NAT HOWTO¸¦ ÀÐ¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù. ÇÁ·Î¼¼½º¸¦ ºôµåÇÏ´Â µ¿¾ÈÀÇ ¹®Á¦

Ä¿³Î >= 2.4.0-test4¿¡¼­ iptables-1.1.1À» ÄÄÆÄÀÏÇÒ ¼ö ¾ø½À´Ï´Ù.

À̰ÍÀº ¾Ë·ÁÁø ¹®Á¦·Î½á Àû¿ëÇÒ ÆÐÄ¡¸¦ ã´Â ¸ÞÄ«´ÏÁòÀÌ ±úÁ®Àֱ⠶§¹®ÀÔ´Ï´Ù. "make" ´ë½Å "make build"¸¦ »ç¿ëÇϼ¼¿ä.

´õ ³ªÀº ÇØ°áÃ¥: iptables-1.1.2ȤÀº ÀÌÈÄ ¹öÀüÀ¸·Î ¾÷±×·¹À̵å Çϼ¼¿ä. ÃֽŠĿ³Î(>=2.3.99-pre8)¿¡¼­ iptables 1.1.0À» ÄÄÆÄÀÏ ÇÒ ¼ö ¾ø½À´Ï´Ù.

iptablesÀÇ ³»ºÎ ±¸Á¶°¡ º¯°æµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. iptables >= 1.1.1·Î ¾÷±×·¹À̵å ÇϽʼî. iptables-1.2.1a¿¡ ÀÖ´Â ¸î¸î patch-o-matic ÆÐÄ¡°¡ kernel >= 2.4.4¿¡¼­ ÀÛµ¿ÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù.

iptables-1.2.2 release³ª netfilter CVS¸¦ »ç¿ëÇϼ¼¿ä. ipt_BALANCE, ip_nat_ftp, ip_nat_irc, ipt_SAME, ipt_NETMAP°¡ ÄÄÆÄÀÏ µÇÁö ¾Ê½À´Ï´Ù.

ip_nat_setup_info ÇÔ¼ö¸¦ ÄÄÆÄÀÏ Çϴµ¥ ¹®Á¦°¡ Àִµí ÇÕ´Ï´Ù.

iptables <= 1.2.2À» »ç¿ëÇÑ´Ù¸é `dropped-table'¿Í `ftp-fixes' ÆÐÄ¡¸¦ ¹Ýµå½Ã ÇϽñ⠹ٶø´Ï´Ù.

iptables > 1.2.2³ª CVS¸¦ »ç¿ëÇÑ´Ù¸é 'dropped-table' ÆÐÄ¡¸¦ ÇÏ¸é ¾ÈµË´Ï´Ù À̰ÍÀº BALANCE, NETMAP, irc-nat,SAME, talk-nat°ú ȣȯµÇÁö ¾Ê½À´Ï´Ù. Alan CoxÀÇ 2.4.x-acXX ½Ã¸®Áî Ä¿³ÎÀ» »ç¿ëÇϰí Àִµ¥ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.

netfilter ÇÙ½É °³¹ßÆÀÀº ¸®´©½ºÀÇ Ä¿³Î Æ®¸®¿¡ ±â¹ÝÇÏ¿© °³¹ßÀ» Çϰí ÀÖ½À´Ï´Ù. -ac ½Ã¸®Á »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â À§ÇèÀº »ç¿ëÀÚ°¡ °¨¼öÇØ¾ß ÇÕ´Ï´Ù. ½ÇÇà µµÁß ¹ß»ýÇÏ´Â ¹®Á¦ NAT: X dropping untracked packet Y Z aaa.aaa.aaa.aaa -> 224.bbb.bbb.bbb

ÀÌ ¸Þ½ÃÁö´Â NAT Äڵ忡 ÀÇÇØ Ãâ·ÂµÇ´Âµ¥ ¸ÖƼij½ºÆ® ÆÐŶÀÌ NAT Å×À̺íÀ» °Çµé°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ÇöÀç connection trackingÀº ¸ÖƼij½ºÆ® ÆÐŶÀ» Á¦´ë·Î ó¸®Çϰí ÀÖÁö ¾Ê½À´Ï´Ù. ¸ÖƼij½ºÆ®°¡ ¹«¾ùÀÎÁö ¸ð¸£°Ú°Å³ª ±×°ÍÀÌ ÀüÇô ÇÊ¿äÇÏÁö ¾Ê´Ù¸é ´ÙÀ½°ú °°ÀÌ Çϼ¼¿ä: iptables -t mangle -I PREROUTING -j DROP -d 224.0.0.0/8 NAT: X dropping untracked packet Y Z aaa.aaa.aaa.aaa -> bbb.bbb.bbb.bbb

syslog¿Í Äֿܼ¡ ´ÙÀ½°ú°°Àº ¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù: NAT: X dropping untracked packet Y Z aaa.aaa.aaa.aaa -> bbb.bbb.bbb.bbb

NAT Äڵ忡 ÀÇÇØ Ãâ·ÂµÇ´Â °ÍÀ¸·Î NAT°¡ À¯È¿ÇÑ connection tracking Á¤º¸¸¦ °®±âÀ§ÇØ ÆÐŶÀ» µå·ÓÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¸Þ½ÃÁö´Â connection trackingÀÌ conntrack Á¤º¸¸¦ °áÁ¤ÇÒ ¼ö ¾ø´Â ¸ðµç ÆÐŶ¿¡ ´ëÇØ¼­ Ãâ·ÂµË´Ï´Ù.

°¡´ÉÇÑ ÀÌÀ¯·Î´Â: conntrack µ¥ÀÌÅÍ º£À̽º¿¡¼­ ¿£Æ®¸®°¡ ÃÖ´ë°ª¿¡ ´Ù´Þ¾ÒÀ»¶§ tupleÀ» ¿ªÀ¸·Î °áÁ¤ÇÒ ¼ö ¾øÀ»¶§(multicast, broadcast) kmem_cache_alloc ½ÇÆÐ(¸Þ¸ð¸® ºÎÁ·) È®ÀÎ µÇÁö ¾ÊÀº Á¢¼ÓÀÇ ÀÀ´ä ¸ÖƼij½ºÆ® ÆÐŶ icmp ÆÐŶÀÌ ³Ê¹« ÀÛÀº °æ¿ì icmp°¡ ´ÜÆíÈ­ µÈ°æ¿ì icmp ý¼¶ÀÌ À߸øµÈ °æ¿ì

ÀÌ ÆÐŶ¿¡ ´ëÇÑ Á»´õ ±¸Ã¼ÀûÀÎ ·Î±×¸¦ ¾ò°í ½Í´Ù¸é (½ºÄ³´× ÆÐŶÀ̳ª ¿ÜºÎ¿¡¼­ÀÇ ¾î¶² °ø°Ý ½Ãµµ·Î ÀǽÉÀÌ µÇ¸é) ´ÙÀ½°ú °°Àº ·êÀ» »ç¿ëÇϽʼî: iptables -t mangle -A PREROUTING -j LOG -m state --state INVALID

ÆÐŶÀÌ ÇÊÅÍ Å×ÀÌºí¿¡ µµÂøÇϱâ Àü¿¡ NAT Äڵ忡 ÀÇÇØ µå·ÓµÇ±â ¶§¹®¿¡ ÀÌ ·êÀº mangle Å×ÀÌºí¿¡ ³Ö¾î¾ß ÇÕ´Ï´Ù. ¸®´ª½º ºê¸´Áö ÄÚµå¿Í netfilter¸¦ ÇÔ°Ô »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

¿Ïº®ÇÑ transparent ¹æÈ­º®À» ±¸ÃàÇÒ °èȹÀ̽Ű¡¿ä? ÁÁÀº »ý°¢ÀÔ´Ï´Ù. Ä¿³Î 2.4.16°ú ±×¸®°í ºÎ°¡ÀûÀÎ ÆÐÄ¡´Â ´ÙÀ½ »çÀÌÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. . IRC ¸ðµâÀÌ DCC RESUMEÀ» ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù.

±Û½ê¿ä. À̰ÍÀº Àý¹Ý¸¸ »ç½ÇÀÔ´Ï´Ù. ¿ÀÁ÷ NAT ¸ðµâ¸¸ÀÌ ±×µéÀ» ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù. NAT ¾øÀÌ ¹æÈ­º®À» ±¸ÇöÇϰí ÀÖ´Ù¸é ¹Ýµå½Ã Àß ÀÛµ¿ÇØ¾ß ÇÕ´Ï´Ù. ¾î¶»°Ô ´ÙÁß ÁÖ¼Ò¿¡ ´ëÇÑ SNAT¸¦ ÀÛµ¿ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï±î?

netfilter´Â °¡´ÉÇÑÇÑ Àû°Ô ÆÐŶÀ» Á¶ÀÛÇÕ´Ï´Ù. ±×·¡¼­ ¸¸¾à freshly-rebooted°¡ °¡´ÉÇÑ ¸Ó½Å°ú ±×¸®°í ´©±º°¡ SNAT ¹Ú½º ¾ÈÂÊ¿¡¼­ ·ÎÄà Æ÷Æ® 1234¸¦ ¿­°í ÀÖ´Ù¸é netfilter ¹Ú½º´Â ¿ÀÁ÷ °°Àº »óÅ·Π¸Ó¹°·¯ ÀÖ´Â ip ÁÖ¼Ò¿Í Æ÷Æ®¸¸À» Á¶ÀÛÇÕ´Ï´Ù.

´©±º°¡ °°Àº source Æ÷Æ®·Î ¶Ç ´Ù¸¥ Á¢¼ÓÀ» ÇÏ¸é ±×°ÍÀÌ SNAT¿¡°Ô ÀÖ¾î ´ÜÀÏ IP¶ó¸é netfilter´Â IP¿Í Æ÷Æ®¸¦ Á¶ÀÛÇÒ °ÍÀÔ´Ï´Ù.

But if there are more than one available, it again only has to mangle the IP part. ÇÏÁö¸¸ 2°³ ÀÌ»óÀ̶ó¸é ip ºÎºÐÀ» ´Ù½Ã Á¶ÀÛÇØ¾ß ÇÕ´Ï´Ù. ip_conntrack: maximum limit of XXX entries exceeded

syslog¿¡¼­ ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö¸¦ ºÃ´Ù¸é ÀÌ´Â conntrack µ¥ÀÌÅͺ£À̽º°¡ ¿©·¯ºÐÀÇ È¯°æ¿¡ ÃæºÐÇÏÁö ¾ÊÀº ¿£Æ®¸®¸¦ °¡Áø°ÍÀ» ÀǹÌÇÕ´Ï´Ù. µðÆúÆ®·Î connection tracking Àº Á¤ÇØÁø µ¿½Ã Á¢¼Ó ¼ö±îÁö¸¸ ó¸®ÇÕ´Ï´Ù. ÀÌ ¼ö´Â ¿©·¯ºÐÀÇ ÃÖ´ë ¸Þ¸ð¸® Å©±â¿¡ ÀÇÁ¸ÀûÀÔ´Ï´Ù(64MB: 4096, 128MB: 8192,...).

ÃÖ´ë°ªÀº ½±°Ô Áõ°¡½Ãų ¼ö ÀÖÁö¸¸ °¢°¢ÀÇ tracking µÇ´Â Á¢¼ÓÀº ¾à 350 ¹ÙÀÌÆ®ÀÇ non-swappable Ä¿³Î ¸Þ¸ð¸®¸¦ Á¡À¯ÇÔÀ» À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù.

ÃÖ´ë°ªÀ» 8192·Î Áõ°¡Çϱ⠿¹Á¦ echo "8192" > /proc/sys/net/ipv4/ip_conntrack_max 2.2.x¿¡¼­ 'ipchains -L -M' ½ÄÀ¸·Î ÇÏ´ø ¸ðµç tracking/¸¶½ºÄ¿·¹À̵ùµÇ´Â Á¢¼ÓÀº ¾î¶»°Ô Ãâ·ÂÇմϱî?

proc È­ÀÏ ½Ã½ºÅÛ¿¡ º¸¸é /proc/net/ip_conntrack¶ó´Â È­ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ È­ÀÏÀ» ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇØ¼­ º¸¸é µË´Ï´Ù. cat /proc/net/ip_conntrack ¸ðµç °¡´ÉÇÑ IP Å×À̺íÀ» ¾î¶»°Ô Ãâ·ÂÇմϱî?

¸ðµç »ç¿ë°¡´ÉÇÑ IP Å×À̺íÀº ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. cat /proc/net/ip_tables_names iptable-1.2¿¡¼­ iptables-save / iptables-restore ¼¼±×¸àÅ×ÀÌ¼Ç ÆúÆ®°¡ ³³´Ï´Ù.

ÀÌ¹Ì ¾Ë·ÁÁø ¹ö±×·Î½á ÃֽŠcvs·Î ¾÷µ¥ÀÌÆ®¸¦ Çϰųª iptables >=1.2.1 À» »ç¿ëÇÏ¸é µË´Ï´Ù. iptables -LÀÌ ·êÀ» Ãâ·ÂÇϴµ¥ ¸Å¿ì ¿À·£ ½Ã°£ÀÌ °É¸³´Ï´Ù.

À̰ÍÀº iptablesÀÌ °¢°¢ÀÇ ip ÁÖ¼Ò¿¡ ´ëÇÑ DNS lookupÀ» Çϱ⠶§¹®ÀÔ´Ï´Ù. °¢°¢ÀÇ ·êÀº 2°³ÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ°í ÃÖ¾ÇÀÇ °æ¿ì °¢°¢ÀÇ ·ê¸¶´Ù DNS lookupÀ» µÎ¹øÇÏ°Ô µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

¹®Á¦´Â »ç¼³ ip ÁÖ¼Ò¸¦ »ç¿ëÇÏ´Â °æ¿ìÀε¥(10.x.x.x ȤÀº 192.168.x.x), DNS´Â È£½ºÆ®À̸§À» ãÀ» ¼ö ¾ø°í ŸÀÓ ¾Æ¿ôÀÌ °É¸®°Ô µË´Ï´Ù. ÀÌ Å¸ÀӾƿô ½Ã°£À» ¸ðµÎ ÇÕÇÏ¸é ¸Å¿ì ±ä ½Ã°£ÀÌ µÉ °ÍÀÔ´Ï´Ù.

ÀÌ·¸µí DNS lookup ÇÏ´Â °ÍÀ» ¹æÁöÇÏ·Á¸é -n (numeric) ¿É¼ÇÀ» »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. Äֿܼ¡ ·Î±×°¡ Ãâ·ÂµÇÁö ¾Ê°Ô ÇÏ·Á¸é ¾î¶»°Ô ÇØ¾ß Çմϱî?

syslogd¸¦ ÀûÀýÈ÷ ¼³Á¤ÇØ Áà¾ßÇÕ´Ï´Ù. LOG targetÀº ¿ì¼±¼øÀ§ warning(4)·Î½á ·Î±×¸¦ ³²±â´Â ÀåÄ¡ÀÔ´Ï´Ù. ÀÌ·± ÀåÄ¡¿Í ¿ì¼±¼øÀ§¿¡ ´ëÇØ¼­ Á»´õ °øºÎÇÏ°í ½ÍÀ¸¸é syslogd.conf ¸Ç ÆäÀÌÁö¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

µðÆúÆ®·Î debug(7) ¿ì¼±¼øÀ§º¸´Ù ³ôÀº ¸ðµç Ä¿³Î ¸Þ½ÃÁö´Â Äֿܼ¡ º¸³»Áöµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. À̰ÍÀ» 7´ë½Å 4·Î Áõ°¡½ÃŲ´Ù¸é ´õÀÌ»ó LOG ¸Þ½ÃÁö°¡ ÄÜ¼Ö»ó¿¡ ³ªÅ¸³ªÁö ¾ÊÀ»°ÍÀÔ´Ï´Ù.

ÀÌ·¸°Ô Çϸé ÄÜ¼Ö»ó¿¡ ³ªÅ¸³ª¾ßÇÒ ´Ù¸¥ Áß¿äÇÑ ¸Þ½ÃÁöµµ ¶ÇÇÑ ³ªÅ¸³ªÁö ¾Ê´Â Á¡À» À¯ÀÇÇÏ¼Å¾ß ÇÕ´Ï´Ù. squid¿Í iptables¸¦ »ç¿ëÇÏ¿© ¾î¶»°Ô transparent ÇÁ·Ï½Ã¸¦ ±¸¼ºÇմϱî?

¸ÕÀú ÀûÇÕÇÑ DNAT ȤÀº REDIRECT ·êÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸¸¾à squid°¡ NAT ¹Ú½º »ó¿¡¼­ µ¿ÀÛÇÑ´Ù¸é REDIRECT¸¦ »ç¿ëÇϼ¼¿ä. ¿¹¸¦µé¸é: iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.22.33:3128

±×¸®°í ³ª¼­ squid¸¦ ÀûÀýÇÏ°Ô ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿ì¸®´Â ¿©±â¿¡¼­ ªÀº ¿¹¸¸À» º¸¿©ÁÙ °ÍÀ̹ǷΠÁ»´õ ÀÚ¼¼ÇÑ »çÇ׿¡ ´ëÇØ¼­´Â squid ¹®¼­¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.

squid 2.3¿ë squid.conf´Â ´ÙÀ½ÀÇ »çÇ×µéÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. http_port 3128 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on squid 2.4´Â ´ÙÀ½ÀÇ ºÎ°¡ÀûÀÎ ¶óÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù. httpd_accel_single_host off LOG targetÀº ¾î¶»°Ô »ç¿ëÇմϱî? / ¾î¶»°Ô LOG¿Í DROPÀ» µ¿½Ã¿¡ ÇÒ ¼ö ÀÖ½À´Ï±î?

LOG target´Â "non-terminating target"À» ¸»ÇÕ´Ï´Ù. Áï À̰ÍÀº ÆÐŶ ·ê Æ®·¡¹ö½º( traverse)¸¦ ³¡³»Áö ¾Ê½À´Ï´Ù. LOG targetÀ» »ç¿ëÇÏ¸é ÆÐŶÀº ·Î±ëµÇ°í ·êÀÇ ¼øÈ¸´Â ´ÙÀ½·ê±îÁö °è¼ÓµË´Ï´Ù.

±×·³ ¾î¶»°Ô µ¿½Ã¿¡ ·Î±ë°ú µå·ÓÀÌ µÉ±î¿ä? °¡Àå ½¬¿î ¹æ¹ýÀ¸·Î ´ÙÀ½ 2°³ÀÇ ·êÀ» Æ÷ÇÔÇÏ´Â »ç¿ëÀÚ Ã¼ÀÎÀ» »ý¼ºÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. iptables -N logdrop iptables -A logdrop -j LOG iptables -A logdrop -j DROP

"-j logdrop". ÀÚ ÀÌÁ¦ ÆÐŶ¿¡ ´ëÇÑ ·Î±ë°ú µå·ÓÀ» ¿øÇÒ ¶§¸é ¾ðÁ¦µçÁö "-j logdrop"À» ÇÏ¸é µË´Ï´Ù. Ä¿³Î ·Î±×: Out of window data xxx

patch-o-matic¿¡ ÀÖ´Â tcp-window-tracking ÆÐÄ¡¸¦ »ç¿ëÇß±º¿ä. ÀÌ ÄÚµå´Â ÆÐŶÀÇ seq/ack ¹øÈ£, ¼¼±×¸ÕÆ® Å©±â µîµîµî¿¡ ÀÇÇØ ¼ö¿ë°¡´ÉÇÑ TCP ÆÐŶÀ» ±â·ÏÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº ¼ö¿ë°¡´ÉÇÏÁö ¾ÊÀº ÆÐŶÀ» ŽÁöÇßÀ» ¶§(out of the window) ±× ÆÐŶÀ» INVALID·Î Ç¥½ÃÇϰí À§¿Í °°Àº ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°Ô µË´Ï´Ù.

»õ ¹öÀü¿¡¼­´Â ±× ÆÐŶ°ú Á¤È®È÷ ¾î¶² »óÅ¿¡¼­ failÀÌ ¹ß»ýÇß´ÂÁö ·Î±×¸¦ ³²±é´Ï´Ù. ACK is under the lower bound (Àå½Ã°£ Áö¿¬µÈ ACK°¡ ¿øÀÎÀÏ °¡´É¼ºÀÌ Å­) ACK is over the upper bound (¾ÆÁ÷±îÁö Çѹøµµ º»ÀûÀÌ ¾ø´Â ack¸¦ °¡Áø µ¥ÀÌÅÍ) SEQ is under the lower bound (ÀÌ¹Ì ackµÈ µ¥ÀÌÅÍ¿¡ ´ëÇÑ Àç Àü¼Ûsmitted already ACKed data) SEQ is over the upper bound (¼ö½ÅÀÚÀÇ window Ãʰú)

sysctl ¶ÇÇÑ »õ¹öÀü¿¡¼­´Â sysctlÀ» ÅëÇØ¼­ ·Î±×¸¦ öÀúÈ÷ °¨Ãâ¼öµµ ÀÖ½À´Ï´Ù. echo 0 > /proc/sys/net/ipv4/netfilter/ip_ct_tcp_log_out_of_window netfilter °³¹ß¿¡ °üÇÑ Áú¹®µé »ç¿ëÀÚ ¿µ¿ªÀ¸·Î ºÎÅÍ ¾î¶»°Ô QUEUE target¸¦ »ç¿ëÇÏ´ÂÁö ÀÌÇØ°¡ ¾ÈµË´Ï´Ù.

»ç¿ëÀÚ ¿µ¿ª ÆÐŶ 󸮸¦ À§ÇØ libipq ¶óÀ̺귯¸®¸¦ Á¦°øÇϰí ÀÖ½À´Ï´Ù. ÇöÀç man ÆäÀÌÁö ÇüÅ·ΠÀ̰Ϳ¡ ´ëÇÑ ¹®¼­µµ ³ª¿Í ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀº ´ÙÀ½ ó·³ iptable °³¹ß ÄÄÆ÷³ÍÆ®¸¦ ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù. make install-devel ±×¸®°í man 3 libipq ÇÏ½Ã¸é µË´Ï´Ù.

¿©·¯ºÐÀº ¶ÇÇÑ libipq¸¦ À§ÇÑ ÆÞ ¹ÙÀεùµµ Èï¹Ì°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. perlipq´Â ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ¹ÙÀεù ÀÚü°¡ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ ¿¹Á¦ÀÔ´Ï´Ù.

´Ù¸¥ ÄÚµç ¿¹Á¦´Â netfilter CVS¿¡¼­ testsuite/tools/intercept.c ipqmpd () nfqtest(see ) Jerome EtienneÀÇ WAN ½Ã¹Ä·¹ÀÌÅÍ() ÄÚµå °³¹ß¿¡ µµ¿òÀ» ÁÖ°í ½Í½À´Ï´Ù. ¾î¶»°Ô ÇØ¾ß Çմϱî?

netfilter ÇÙ½É ÆÀÀº TODO ¸®½ºÆ® ¼Ó¿¡ ¿øÇÏ´Â »õ·Î¿î ±â´É°ú º¯°æ »çÇ×À» ³ª¿­Çϰí ÀÖ½À´Ï´Ù. ÀÌ ¸®½ºÆ®¸¦ ȨÆäÀÌÁö³ª CVS¸¦ ÅëÇØ¼­ ¹ÞÀ¸¼¼¿ä. ´ÙÀ½ »çÀÌÆ®¿¡¼­µµ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹ö±× ÆÐÄ¡/È®ÀåÀ» ¸¸µé¾ú½À´Ï´Ù. ¾î¶»°Ô ÇØ¾ß Çմϱî?

±×°ÍÀ» ¹ßÇ¥ÇÏ°í ½Í´Ù¸é netfilter-devel ¸ÞÀϸµ ¸®½ºÆ®¿¡ º¸³»½Ã±â ¹Ù¶ø´Ï´Ù. °¡ÀÔ ¸í·ÉÀº ¸¦ È®ÀÎÇϽñ⠹ٶø´Ï´Ù. ÆÐÄ¡¸¦ º¸³»´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. Á¦¸ñÀº [PATCH] ·Î ½ÃÀÛÇØ¾ß ÇÏ°í º»¹®¿¡ ¹Ù·Î ºÙ¿© ³ÖÀ¸¼¼¿ä(MIME ŸÀÔÀº ¾ÈµË´Ï´Ù) diff°¡ Ãâ·ÂÇÑ cvs-checkin/Changelog ¿£Æ®¸® »óÀ§ µð·ºÅ丮¿¡¼­ `diff -u old new' Çü½Ä

»õ·Î¿î È®ÀåÀ» ¸¸µé¾ú´Ù¸é ȤÀº ±âÁ¸ È®Àå¿¡ »õ·Î¿î ¿É¼ÇÀ» Ãß°¡Çß´Ù¸é netfilter-extension-HOWTO¿¡ »õ·Ó°Ô È®ÀåµÈ ±â´É¿¡ ´ëÇÑ ¼³¸íÀ» ¾÷µ¥ÀÌÆ® ÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×°ÍÀº ¿©·¯ºÐÀÌ ¸¸µç È®Àå¿¡ »ç¿ëÀÚ¸¦ ²ø¾îµéÀÏ °ÍÀ̰í Á»´õ ¸¹Àº Çǵå¹éÀ» ¹ÞÀ» ¼ö ÀÖµµ·Ï ÇØÁÙ °ÍÀÔ´Ï´Ù.