ÀÌ Àå¿¡¼, »õ·Î¿î netfilter Ÿ°ÙÀÇ »ç¿ë¿¡ °üÇØ ¼³¸íÇÒ °ÍÀÌ´Ù. ÀÌ ÆÐÄ¡µéÀº ¾ËÆÄºª ¼ø¼·Î ³ªÅ¸³¾ °ÍÀ̰í, ºÎ°¡ÀûÀ¸·Î ¿¬°üµÈ ´Ù¸¥ ÆÐÄ¡¿¡ ´ëÇÑ ¼³¸íÀº ÇÏÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ´ÙÀ½ ¹öÀü¿¡¼´Â Ãß°¡µÉ °ÍÀÌ´Ù.
ÀϹÝÀûÀ¸·Î Ÿ°Ù¿¡ °üÇØ, ´ÙÀ½ÀÇ ³»¿ëó·³ Ưº°ÇÑ ¸ðµâ¿¡ ´ëÇÑ ÈùÆ®¸¦ ¾òÀ» ¼ö ÀÖ´Ù :
# iptables -j THE_TARGET_YOU_WANT --help |
ÀÌ´Â º¸ÅëÀÇ iptables µµ¿ò ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ°í, ±× ³¡¿¡ ``THE_TARGET_YOU_WANT''Ÿ°ÙÀ» ¼³¸íÇÑ´Ù.
ÀÌ ÆÐÄ¡´Â Matthew G. Marsh <mgm@paktronix.com>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç, ÀÓÀÇÀÇ °ªÀ¸·Î TOS ÆÐŶÀ» ¼ÂÆÃÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â »õ·Î¿î matchÀÌ´Ù.
¿¹¸¦ µé¾î, 15ÀÇ outgoing ÆÐŶÀÇ ¸ðµç TOS¸¦ ¼ÂÆÃÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù.
# iptables -t mangle -A OUTPUT -j FTOS --set-ftos 15 # iptables -t mangle --list Chain OUTPUT (policy ACCEPT) target prot opt source destination FTOS all -- anywhere anywhere TOS set 0x0f |
FTOS targetÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù :
--set-ftos value -> ÆÐŶ Çì´õÀÇ TOS field¸¦ ¾î¶² °ªÀ¸·Î ¼³Á¤. ÀÌ °ªÀÌ 10Áø¼ö°¡ µÉ ¼ö ÀÖ°í (ex: 32) 16Áø¼ö·Îµµ µÉ ¼ö ÀÖ´Ù. (ex: 0x20)
ÀÌ ÆÐÄ¡´Â Fabrice MARIE <fabrice@celestix.com>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç IPv4 ÆÐŶÀÇ ¸ðµç IP ¿É¼ÇÀ» Á¦°Å(strip)ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â »õ·Î¿î targetÀÌ´Ù.
´ÙÀ½°ú °°ÀÌ °¡Àå °£´ÜÇÏ°Ô ·ÎµåÇÒ ¼ö ÀÖ´Ù :
# iptables -t mangle -A PREROUTING -j IPV4OPTSSTRIP # iptables -t mangle --list Chain PREROUTING (policy ACCEPT) target prot opt source destination IPV4OPTSSTRIP all -- anywhere anywhere |
ÀÌ Å¸°ÙÀº ¾î¶°ÇÑ ¿É¼Çµµ Áö¿øÇÏÁö ¾Ê´Â´Ù.
ÀÌ ÆÐÄ¡´Â Gianni Tedesco <gianni@ecsc.co.uk>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç netlink ¼ÒÄÏÀ» ÅëÇØ À¯Àú ¿µ¿ªÀ¸·Î µå·ÓµÈ ÆÐŶÀ» º¸³¾ ¼ö ÀÖµµ·Ï ÇÏ´Â »õ·Î¿î Ÿ°ÙÀÌ´Ù.
¿¹¸¦ µé¾î, ¸ðµç ÇÎ ÆÐŶÀ» µå·ÓÇϰí À¯Àú¿µ¿ªÀÇ netlink ¼ÒÄÏÀ¸·Î ÆÐŶµéÀ» º¸³»·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù :
# iptables -A INPUT -p icmp --icmp-type echo-request -j NETLINK --nldrop # iptables --list Chain INPUT (policy ACCEPT) target prot opt source destination NETLINK icmp -- anywhere anywhere icmp echo-request nldrop |
NETLINK Ÿ°ÙÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù :
--nldrop -> ÆÐŶÀ» µå·ÓÇÑ´Ù.
--nlmark <number> -> ÆÐŶÀ» Ç¥½ÃÇÑ´Ù.
--nlsize <bytes> -> ÆÐŶ Å©±â¸¦ Á¦ÇÑÇÑ´Ù.
netlink socket¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÑ´Ù¸é, Netlink Sockets Tour¸¦ Âü°íÇ϶ó.
ÀÌ ÆÐÄ¡´Â Svenning Soerensen <svenning@post5.tele.dk>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç ¿ø·¡ÀÇ È£½ºÆ®ÁÖ¼Ò¸¦ À¯ÁöÇÏ´Â µ¿¾È ³×Æ®¿öÅ© ÁÖ¼Ò¿Í Á¤ÀûÀ¸·Î 1:1 ¸ÅÇÎÀ» ¸¸µé°Ô ÇÒ ¼ö ÀÖ´Â »õ·Î¿î Ÿ°ÙÀÌ´Ù.
¿¹¸¦ µé¾î, 1.2.3.0/24¿¡¼ 5.6.7.0/24·Î ÇâÇÏ´Â incomming ¿¬°áÀÇ ¸ñÀûÁö¸¦ º¯°æÇÏ±æ ¿øÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù :
# iptables -t nat -A PREROUTING -d 1.2.3.0/24 -j NETMAP --to 5.6.7.0/24 # iptables -t nat --list Chain PREROUTING (policy ACCEPT) target prot opt source destination NETMAP all -- anywhere 1.2.3.0/24 5.6.7.0/24 |
NETMAP Ÿ°ÙÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù :
--to address[/mask] -> ¸ÅÇÎÇÒ ³×Æ®¿öÅ© ÁÖ¼Ò
ÀÌ ÆÐÄ¡´Â Martin Josefsson <gandalf@wlug.westbo.se>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç SNAT¿Í À¯»çÇÏ°í °¢°¢ ¿¬°á¿¡ ´ëÇØ ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡ °°Àº ÁÖ¼Ò¸¦ ºÎ¿©ÇÒ ¼ö ÀÖ´Â »õ·Î¿î Ÿ°ÙÀÌ´Ù.
¿¹¸¦ µé¾î, ¿¬°á¿¡ ´ëÇÑ ¼Ò½º ÁÖ¼Ò¸¦ 1.2.3.4-1.2.3.7·Î º¯°æÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù :
# iptables -t nat -A POSTROUTING -j SAME --to 1.2.3.4-1.2.3.7 # iptables -t nat --list Chain POSTROUTING (policy ACCEPT) target prot opt source destination SAME all -- anywhere anywhere same:1.2.3.4-1.2.3.7 |
SAME targetÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù :
--to <ipaddr>-<ipaddr> -> ¼Ò½º¿¡ ¸ÅÇÎµÈ ÁÖ¼Ò. ¾Æ¸¶µµ ´Ù¼öÀÇ ¿µ¿ª¿¡ ´ëÇÑ Çѹø ÀÌ»ó ±â¼úµÇ¾úÀ» °ÍÀÌ´Ù.
--nodst -> ¼Ò½º ¼±Åÿ¡ ´ëÇØ µµÂø IP¸¦ »ç¿ëÇÏÁö ¸»¶ó.
ÀÌ ÆÐÄ¡´Â Marc Boucher <marc+nf@mbsi.ca>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç ¿¬°á¿¡ ´ëÇÑ ÃÖ´ë Å©±â¸¦ Á¦¾îÇÒ ¼ö ÀÖµµ·Ï, TCP SYN ÆÐŶÀÇ MSS °ªÀ» º¯°æÇÏ°í °Ë»çÇÒ¼ö ÀÖµµ·Ï ÇÏ´Â »õ·Î¿î targetÀÌ´Ù.
Marc ÀÚ½ÅÀÌ ¼³¸íÇÑ ¹Ù¿¡ ÀÇÇϸé, À̰ÍÀº ÇØÅ·Àε¥(THIS IS A HACK), ICMP FragmentationÀÌ ÆÐŶÀ» ¿ä±¸ÇÏ´Â °ÍÀ» ¸·´Â ³ú»ç »óÅÂÀÇ ISPµé ¶Ç´Â ¼¹öµéÀ» ±Øº¹Çϴµ¥ »ç¿ëµÈ´Ù.
ÀüÇüÀûÀÎ »ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°Àº °ÍÀÌ´Ù :
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # iptables --list Chain FORWARD (policy ACCEPT) target prot opt source destination TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU |
tcp-MSS targetÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù (»óÈ£ ¹èÁ¦) :
--set-mss value ƯÁ¤°ªÀ¸·Î MSS ¿É¼ÇÀ» ¸í¹éÈ÷ ¼ÂÆÃ
--clamp-mss-to-pmtu MSS °ªÀ» ÀÚµ¿À¸·Î °íÁ¤½ÃÅ´ (path_MTU - 40)
ÀÌ ÆÐÄ¡´Â Harald Welte <laforge@gnumonks.org>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç, ÁÖ¾îÁø °ª¿¡ ÀÇÇØ IP ÆÐŶÀÇ TTL °ªÀ» Áõ°¡/°¨¼Ò½ÃŰ°Å³ª À¯Àú°¡ ¼ÂÆÃÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â »õ·Î¿î targetÀÌ´Ù.
¿¹¸¦ µé¾î, ¸ðµç outgoing ¿¬°áÀÇ TTL°ªÀ» 126À¸·Î ¼ÂÆÃÇÏ·Á°í ÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù :
# iptables -t mangle -A OUTPUT -j TTL --ttl-set 126 # iptables -t mangle --list Chain OUTPUT (policy ACCEPT) target prot opt source destination TTL all -- anywhere anywhere TTL set to 126 |
TTL targetÀÌ Áö¿øÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù :
--ttl-set value -> TTLÀ» <value>·Î ¼ÂÆÃ
--ttl-dec value -> TTLÀ» <value>¸¸Å °¨¼Ò
--ttl-inc value -> TTLÀ» <value>¸¸Å Áõ°¡
ÀÌ ÆÐÄ¡´Â Harald Welte <laforge@gnumonks.org>¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾úÀ¸¸ç, Ç¥ÁØ LOG targetº¸´Ù Áøº¸µÈ ·Î±ë ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÏ´Â »õ·Î¿î matchÀÌ´Ù. `libiptulog/'´Â ULOG ¸Þ¼¼Áö¸¦ ¹Þ´Â ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÑ´Ù.
Harald´Â ULOG¿¡ ´ëÇÑ ÀûÀýÇÑ ¹®¼¸¦ Æ÷ÇÔÇÏ´Â web page¸¦ º¸À¯ÇÑ´Ù. ±×·¡¼ ¿©±â¼´Â ¼³¸íÇÒ Æ¯º°ÇÑ ³»¿ëÀº ¾ø´Ù.