iptables´Â »ó´çÈ÷ ÀÚ¼¼ÇÑ ¸Þ´º¾ó ÆäÀÌÁö(man iptables
)¸¦ °¡Áö°í ÀÖ´Ù. ipchains
¿¡ Àͼ÷ÇÏ´Ù¸é
<@@ref>Appendix-Aipchains¿Í iptablesÀÇ ´Ù¸¥Á¡À» º¸¾Æ¶ó. ÀÌ µÑÀº ¸Å¿ì
ºñ½ÁÇÏ´Ù.
iptables
·Î ÇÒ¼ö ÀÖ´Â ÀÏ¿¡´Â ¸î°¡Áö ´Ù¸¥°ÍÀÌ ÀÖ´Ù. ù¹øÂ° ÀÛµ¿Àº Àüü
üÀÎÀ» Á¶ÀýÇÑ´Ù. óÀ½ ½ÃÀÛÀº ¼¼°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø üÀÎÀ¸·Î ½ÃÀÛÇÏ´Â
µ¥ À̰ÍÀº Á¦°ÅµÉ ¼ö ¾ø´Ù.
üÀÎ ³»ºÎÀÇ ±ÔÄ¢À» Á¶ÀÛÇÏ´Â ¸î°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
iptables´Â ¸ðµâ·Î µÇ¾îÀÖÀ» °ÍÀÌ´Ù. À̰ÍÀº iptable_filter.o ÀÌ´Ù. À̰ÍÀº
óÀ½À¸·Î iptables
¸¦ ½ÇÇàÇÒ¶§ ÀÚµ¿À¸·Î ·ÎµåµÉ °ÍÀÌ´Ù. À̰ʹÀ Ä¿³Î¿¡ ¿µ±¸È÷
Æ÷Ç﵃ ¼öµµ ÀÖ´Ù.
iptables ¸í·ÉÀÌ ½ÇÇàµÇ±â Àü¿¡´Â ±âº»ÀûÀ¸·Î ¸¸µé¾îÁ®Àִ üÀÎ(ÀÔ·Â, Æ÷¿öµù, Ãâ·Â)¿¡´Â ¾Æ¹«¸¥ ±ÔÄ¢µµ ¾ø´Ù. (ÁÖÀÇ : ¾î¶² ¹èÆ÷ÆÇ¿¡´Â ÃʱâÈ ½ºÅ©±éÆ®¿¡ iptables¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ µé¾îÀÖÀ» ¼ö ÀÖ´Ù.) ÀԷ°ú Ãâ·Â üÀÎÀÇ Á¤Ã¥Àº ACCEPTÀÌ°í Æ÷¿öµù üÀÎÀÇ Á¤Ã¥Àº DROPÀÌ´Ù. (iptable_filter ¸ðµâ¿¡ 'forward=1' ¿É¼ÇÀ» ¼±ÅÃÇÏ¿© À̰ÍÀ» °íÄ¥ ¼ö ÀÖ´Ù.)
À̰ÍÀº ÆÐŶ ÇÊÅ͸µÀÇ ¾à¹æÀÇ °¨ÃÊÀÌ´Ù. ÀϹÝÀûÀ¸·Î Ãß°¡¿Í Á¦°Å ¸í·ÉÀ» »ç¿ëÇÒ °ÍÀÌ´Ù. ´Ù¸¥°ÍÀº ÀÌ·± °³³äÀÇ ´Ü¼øÇÑ È®ÀåÀÌ´Ù.
°¢ ±ÔÄ¢Àº ÆÐŶÀÌ ÀÏÄ¡µÇ¾î¾ßÇÒ »óŸ¦ ¼³Á¤Çϰí, ÀÏÄ¡µÇ¾úÀ»¶§ ¹«¾úÀ» ÇÒ °ÍÀΰ¡ ('target')¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦µé¾î, ¿©·¯ºÐÀº 127.0.0.1·ÎºÎÅÍÀÇ ¸ðµç ICMP ÆÐŶÀ» DROPÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ±×·¸´Ù¸é, À̰æ¿ì ÀÏÄ¡µÇ¾î¾ßÇÒ »óÅ´ 'ICMPÀÌ¸é¼ ±× Ãâó °¡ 127.0.0.1' ÀÌ´Ù. ÀÌ °æ¿ì 'target' Àº DROP ÀÌ´Ù.
127.0.0.1 Àº 'loopback' ÀÎÅÍÆäÀ̼ ÀÌ°í ½ÇÁ¦ÀûÀÎ ³×Æ®¿öÅ© Á¢¼ÓÀÌ ÀüÇô ¾ø´õ¶óµµ À̰ÍÀº °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀº 'ping' ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© »ý¼ºÇÒ ¼ö ÀÖ´Ù. (À̰ÍÀº ´Ü¼øÈ÷ ICMP type 8 (¹ÝÀÀ¿ä±¸)À» º¸³»°í ¸ðµç ÇùÁ¶ÀûÀΠȣ½ºÆ®´Â Ä£ÀýÇÏ°Ô ICMP type 0 (¹ÝÀÀ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä)À» ´ë´äÇÑ´Ù. À̰ÍÀº Å×½ºÆ®Çϴµ¥ À¯¿ë ÇÏ´Ù.
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
#
¿©±â¼ ù¹øÂ° ping ÀÌ ¼º°øÇÑ °á°ú¸¦ º¼ ¼ö ÀÖ´Ù. ('-c 1'Àº ÇϳªÀÇ ÆÐŶ¸¸ º¸³»µµ·Ï ping¿¡°Ô ¸»ÇÏ´Â °ÍÀÌ´Ù.)
±×¸®°í, 'ÀÔ·Â' üÀο¡ 127.0.0.1¿¡¼ ¿À´Â ÆÐŶ('-s 127.0.0.1')À¸·Î ICMP ÇÁ·ÎÅäÄÝÀÎ°Í ('-p icmp')Àº DROP ('-j DROP')Ç϶ó´Â ±ÔÄ¢À» Ãß°¡(-A)ÇÏ¿´´Ù.
±×¸®°í´Â ´Ù½Ã pingÀ¸·Î ±ÔÄ¢À» Å×½ºÆ®ÇÏ¿´´Ù. pingÀÌ ¿ÀÁö¾ÊÀº ÀÀ´äÀ» ±â´Ù ¸®Áö ¸øÇϰí ÀÀ´ä¹Þ±â¸¦ Æ÷±âÇϱâ±îÁö ¾à°£ÀÇ ½Ã°£ÀÌ °É¸±°ÍÀÌ´Ù.
±ÔÄ¢À» Á¦°ÅÇϴµ¥´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ù°, ÀÔ·ÂüÀο¡´Â ´Ü ÇϳªÀÇ ±ÔÄ¢ ¸¸ÀÌ ÀÖ´Ù´Â °ÍÀ» ¾ÍÀ¸·Î, ¸î¹øÀ» Áö¿ö¶ó´Â ¹æ½ÄÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.
# iptables -D INPUT 1
#
ÀԷ üÀÎÀ¸·ÎºÎÅÍ 1¹ø ±ÔÄ¢À» Á¦°ÅÇÑ´Ù.
µÎ¹øÂ° ¹æ¹ýÀº -A ¸í·ÉÀ» ÀÌ¿ëÇÑ ÀÌÀüÀÇ ¸í·É¿¡¼ -A¸¦ -D·Î ´Ù²ãÁÖ¸é µÈ´Ù. À̰ÍÀº º¹ÀâÇÑ ±ÔÄ¢À» °¡Áö°í ÀÖ°í °¢ ±ÔÄ¢ÀÌ ¸î¹øÂ° ±ÔÄ¢ÀÎÁö¸¦ ¿Ü¿ì°í ´Ù´Ï±â¸¦ ½È¾î ÇÑ´Ù¸é, ¾ÆÁÖ À¯¿ëÇÑ ¹æ¹ýÀÌ´Ù.
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
#
-D ¸í·ÉÀº -A ¸í·É°ú ¶È °°Àº ¹®¹ýÀÌ´Ù. (-I ³ª -R µµ ¸¶Âù°¡ÁöÀÌ´Ù.) ¸¸¾à,
¿©·¯°³ÀÇ ¶È °°Àº ±ÔÄ¢µéÀÌ °°Àº üÀο¡ ÀÖ´Ù¸é, ù¹øÂ° °Í¸¸ Á¦°Å µÉ °ÍÀÌ´Ù.
¾Õ¿¡¼ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-p'¸¦ ÀÌ¿ëÇÏ¿´°í, Ãâó¸¦ ÁöÁ¤Çϱâ À§ÇÏ¿© '-s'¸¦ ÀÌ¿ëÇÏ¿´´Ù. ±× ¿Ü¿¡µµ ÆÐŶÀÇ Æ¯Â¡À» ÁöÁ¤Çϴµ¥ »ç¿ëµÇ ´Â ´Ù¸¥ ¿É¼ÇµéÀÌ ÀÖ´Ù. ¾Æ·¡´Â À̰͵鿡 ´ëÇÑ ¿Ïº®ÇÑ °³¿äÀÌ´Ù.
Ãâó('-s', '--source', '--src')¿Í ¸ñÀûÁö('-d', '--destination', '--dst') IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ 4°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. °¡Àå º¸ÆíÀûÀÎ ¹æ¹ýÀº 'www.linuxhq.com', 'localhost' ó·³ À̸§À» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. µÎ¹øÂ° ¹æ¹ýÀº '127.0.0.1' ó·³ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù.
¼¼¹øÂ°¿Í ³×¹øÂ° ¹æ¹ýÀº IP ÁÖ¼ÒÀÇ ±×·ìÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î '199.95.207.0/24' ¶Ç´Â '199.95.207.0/255.255.255.0' °°Àº ÇüÅÂÀÌ´Ù. ÀÌ µÑÀº ¸ðµÎ 199.95.207.0 ºÎÅÍ 199.95.207.255 »çÀÌÀÇ ¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù. '/' ´ÙÀ½ÀÇ ¼ýÀÚ´Â IP ÁÖ¼ÒÀÇ ¾î¶² ºÎºÐÀÌ ÀǹÌÀִ°¡¸¦ ³ªÅ¸³½´Ù. '/32' ³ª '/255.255.255.255' °¡ ±âº»°ªÀÌ´Ù.(IP ÁÖ¼ÒÀÇ ¸ðµçºÎºÐÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.) ¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ '/0' °¡ »ç¿ëµÈ´Ù.
# iptables -A INPUT -s 0/0 -j DROP
#
À̰ÍÀº '-s' ¿É¼ÇÀ» ÀÌ¿ëÇÏÁö ¾ÊÀº°Í°ú °°Àº È¿°ú¸¦ ³ªÅ¸³»¹Ç·Î Àß »ç¿ëµÇÁö ¾Ê´Â´Ù.
¸¹Àº Áö½ÃÀÚµé('-s'³ª '-d' °°Àº)Àº ÀÏÄ¡ÇÏÁö ¾Ê´Â ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÏ¿© '!'('not'À» ÀǹÌÇÑ´Ù)·Î ½ÃÀÛÇÏ´Â ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ¿¹·Î, '-s ! localhost' ´Â localhost·ÎºÎÅÍ¿À´Â ÆÐŶÀÌ ¾Æ´Ñ°æ¿ì¸¦ ³ªÅ¸³½´Ù.
ÇÁ·ÎÅäÄÝÀº '-p' Áö½ÃÀÚ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝÀ» ¼ýÀÚ°¡ µÉ¼ö ÀÖ°í (IPÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ¾Ë°í ÀÖ´Ù¸é) 'TCP', 'UDP', 'ICMP' °°Àº À̸§ÀÌ µÉ ¼öµµ ÀÖ´Ù. ±×¸®°í 'tcp'´Â 'TCP'¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù.
ÇÁ·ÎÅäÄÝ À̸§ ÁöÁ¤¿¡µµ '!'À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. '-p ! TCP'
'-i'('--in-interface')¿Í '-o'('--out-interface')°¡ ÀÎÅÍÆäÀ̼¸¦ ÀúÁ¤
Çϴµ¥ »ç¿ëµÈ´Ù. ÀÎÅÍÆäÀ̼´Â ÆÐŶÀÌ µé¾î¿À°í ³ª°¡´Â ¹°¸®ÀûÀÎ µµ±¸ÀÌ´Ù.
ifconfig
¸í·ÉÀ» »ç¿ëÇÏ¿© ÇöÀç Ȱ¼ºÈ µÇ¾îÀÖ´Â ÀÎÅÍÆäÀ̼¸¦ ¾Ë¾Æº¼¼ö ÀÖ´Ù.
ÀÔ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-o'
¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀ̰í Ãâ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº ÀÔ·Â ÀÎÅÍ
ÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-i' ¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀÌ´Ù.
Æ÷¿öµù
üÀÎÀ» Áö³ª´Â ÆÐŶ¸¸ÀÌ ÀԷ°ú Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ °¡Áú°ÍÀÌ´Ù.
ÇöÀç Á¸ÀçÇÏÁö ¾Ê´Â ÀÎÅÍÆäÀ̼¸¦ ÁöÁ¤ÇÏ´Â °Íµµ ¾Æ¹«·± ¹®Á¦¾øÀÌ µÉ ¼ö ÀÖ ´Ù. À̰ÍÀº ÀÎÅÍÆäÀ̼°¡ Ȱ¼ºÈ µÇ±â Àü±îÁö´Â ±ÔÄ¢¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ÀÖÀ»¼ö ¾øÀ» °ÍÀÌ´Ù. À̰ÍÀº dial-up PPP¸¦ »ç¿ëÇÏ´Â °æ¿ì ƯÈ÷ À¯¿ëÇÏ´Ù.
Ưº°ÇÑ °æ¿ì·Î, ÀÎÅÍÆäÀ̼ À̸§ÀÌ '+'·Î ³¡³¯¼ö Àִµ¥ À̰ÍÀº ±× À̸§À¸·Î
½ÃÀÛÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ ÁöÁ¤ÇÑ´Ù(±×°ÍÀÌ ÇöÀç Á¸ÀçÇϵç Á¸ÀçÇÏÁö
¾Êµç). ¿¹¸¦µé¾î, ¸ðµç PPP ÀÎÅÍÆäÀ̼¿Í ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» ÁöÁ¤ÇÏ·Á¸é
-i ppp+
¿Í°°ÀÌ ÇÏ¸é µÈ´Ù.
ÀÎÅÍÆäÀ̼ À̸§¾Õ¿¡ '!'µµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
°¡²û ÆÐŶÀº Çѹø¿¡ ´Ù Àü´ÞµÇ±â¿¡´Â ³Ê¹« Å« °æ¿ì°¡ ÀÖ´Ù. ÀÌ·±°æ¿ì ÆÐŶÀº ¿©·¯ ºÐÀý·Î ³ª´µ¾îÁö°í ´ÙÁ߯ÐŶÀÇ ÇüÅ·ΠÀü´ÞµÈ´Ù. ¸ñÀûÁö¿¡¼ ÀÌ ºÐÀýµé Àº Àç ±¸¼ºµÇ¾î Àüü ÆÐŶÀÌ µÈ´Ù.
ºÐÀý¿¡¼ ¹®Á¦Á¡Àº ³»ºÎ ÆÐŶÀÇ ºÎºÐÀ¸·Î IP Çì´õ ´ÙÀ½ÀÇ À§Ä¡¿¡¼ ÇÁ·ÎÅäÄÝ Çì´õ¸¦ ã´Âµ¥, À̰ÍÀº ù¹øÂ° ºÐÀý¿¡¸¸ Àֱ⠶§¹®¿¡ ãÀ»¼ö°¡ ¾ø´Ù.
¸¸¾à ¿©·¯ºÐÀÌ Á¢¼ÓÃßÀûÀ̳ª NAT¸¦ ÇÑ´Ù¸é ¸ðµç ºÐÀýÀº ÇÊÅ͸µ Äڵ忡 µµ´ÞÇÏ ±â Àü¿¡ ¹¶ÃÄÁö¹Ç·Î ºÐÀý¿¡ ´ëÇÑ °ÆÁ¤Àº ÇÒ Çʿ䰡 ¾ø´Ù.
±×·¸Áö ¾Ê´Ù¸é, ºÐÀýµéÀÌ ÇÊÅ͸µ ±ÔÄ¢¿¡¼ ¾î¶»°Ô 󸮵Ǵ°¡¸¦ ÀÌÇØÇÏ´Â °Í
Àº Áß¿äÇÏ´Ù. ¿ì¸®°¡ °¡Áö°íÀÖÁö ¾ÊÀº Á¤º¸¸¦ ¿ä±¸ÇÏ´Â ÇÊÅ͸µ ±ÔÄ¢¿¡ ºÎÇÕµÉ
¼ö°¡ ¾ø´Ù. À̰ÍÀº ù¹øÂ° ÆÐŶÀº ´Ù¸¥ ÆÐŶ°ú °°ÀÌ Ã³¸®µÇ°í µÎ¹øÂ° ÀÌÈÄÀÇ
ºÐÀýÀº Àü´ÞµÉ ¼ö ¾øÀ½À» ÀǹÌÇÑ´Ù. ±×·¯¹Ç·Î -p TCP --sport www
('www'
¸¦ Ãâ½Å Æ÷Æ®·Î ÁöÁ¤ÇÏ´Â °æ¿ì)¿Í °°Àº ±ÔÄ¢¿¡ ¸Â´Â ºÐÀýÀº ÀÖÀ» ¼ö ¾ø´Ù(
ù¹øÂ° ºÐÀýÀ» Á¦¿ÜÇϰí). ±× ¹Ý´ëÀÇ ±ÔÄ¢ÀÎ -p TCP --sport ! www
µµ ºÐ
ÀýµéÀ» ó¸®ÇÒ ¼ö ¾ø´Ù.
±×·¯³ª, µÎ¹øÂ° ÀÌ»óÀÇ ºÐÀý¿¡ ´ëÇÏ¿© ±ÔÄ¢À» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-f' ('--fragment')¶ó´Â Áö½ÃÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. µÎ¹øÂ° ÀÌ»óÀÇ ºÐÀý¿¡´Â Àû¿ë µÇÁö¾Ê´Â ±ÔÄ¢À» ÁöÁ¤Çϱâ À§ÇÏ¿© '-f' ¾Õ¿¡ '!' ¸¦ ºÙÀÌ´Â °Íµµ °¡´ÉÇÏ´Ù.
ÀϹÝÀûÀ¸·Î , ù¹øÂ° ºÐÀý¿¡ ÇÊÅ͸µÀÌ Àû¿ëµÇ¾î DROP µÇ¸é ¸ñÀûÁö ¿¡¼ ´Ù¸¥ ºÐÀýµéÀÇ ÀçÇÕ¼ºÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î, µÎ¹øÂ° ÀÌ»óÀÇ ºÐÀýÀÌ ±×³É Áö³ª°¡µµ·ÏÇÏ´Â °Íµµ ¾ÈÀüÇÑ °ÍÀ¸·Î °£ÁÖ µÈ´Ù. ±×·¯³ª ´Ü¼øÈ÷ ºÐÀýµéÀ» Àü´ÞÇÏ´Â °Í¸¸À¸·Î È£½ºÆ®¸¦ Å©·¡½¬°¡ »ý±â´Â ¹ö±×°¡ ¾Ë·ÁÁ® ÀÖ´Ù. ¿©·¯ºÐÀÌ °áÁ¤ÇÒ ÀÏÀÌ´Ù.
³×Æ®¿öÅ© Çì´õ¿¡ ´ëÇÑ ÁÖÀÇ : À߸ø ±¸¼ºµÈ ÆÐŶµéÀº ÀÌ·¯ÇÑ ½ÃÇèÀ» ÇÒ¶§ DROP µÇ¾ú´Ù. (TCP, UDP, ICMP ÆÐŶÁß ±æÀ̰¡ ³Ê¹« ª¾Æ ÆÄÀ̾î¿ù Äڵ尡 Æ÷Æ®³ª ICMP ÄÚµå¿Í ÇüŸ¦ ÀÐÀ» ¼ö ¾ø´Â °æ¿ì). ¿Ö³ÄÇϸé TCP ºÐÀýÀº 8¹øÂ° À§Ä¡ºÎÅÍ ½ÃÀ۵DZ⠶§¹®ÀÌ´Ù.
¿¹·Î, ´ÙÀ½°ú °°Àº ±ÔÄ¢Àº 192.168.1.1 ·Î ÇâÇÏ´Â ºÐÀýÀ» DROP ½ÃŲ´Ù.
# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
#
iptables
´Â È®Àå °¡´ÉÇÏ´Ù. Áï »õ·Î¿î ÇüŸ¦ Á¦°øÇϱâ À§ÇÏ¿© iptables¿Í
Ä¿³Î ¸ðµÎ°¡ È®Àå °¡´ÉÇÏ´Ù´Â ÀǹÌÀÌ´Ù.
ÀÌÁß ÀϺδ ǥÁØÀûÀÌ°í ´Ù¸¥ °ÍÀº ÀÌ»öÀûÀÌ´Ù. ´Ù¸¥»ç¶÷¿¡ ÀÇÇØ¼µµ È®Àå Àº ¸¸µé¾îÁú ¼öµµ ÀÖÀ¸¸ç µ¶¸³ÀûÀ¸·Î ¹èÆ÷µÉ ¼ö ÀÖ´Ù.
Á¤»óÀûÀ¸·Î Ä¿³Î È®ÀåÀº Ä¿³Î ¸ðµâ ÇϺΠµð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù. (/lib/modules/2.3.15/net). À̰ÍÀº ¿ä±¸¿¡ ÀÇÇÏ¿© ÀûÀçµÈ´Ù. ±×·¯¹Ç·Î Á÷ Á¢ ÀÌµé ¸ðµâÀ» ÀûÀçÇÒ ÇÊ¿ä´Â ¾ø´Ù.
iptablesÀÇ È®ÀåµéÀº °øÀ¯¶óÀ̹ö·¯¸® ÇüÅ·Πº¸Åë /usr/local/lib/iptables ¿¡ À§Ä¡ÇÑ´Ù. ¹èÆ÷ÆÇÀº À̰ÍÀ» /lib/iptables³ª /usr/lib/iptables¿¡ ³ÖÀ¸ ·Á ÇÒ °ÍÀÌ´Ù.
È®ÀåÀº µÎ°¡Áö ÇüÅÂÀÌ´Ù. : »õ·Î¿î Ÿ°Ù(target), »õ·Î¿î Àû¿ë(match) ¾Æ·¡¿¡ »õ·Î¿î Ÿ°Ù¿¡ ´ëÇÏ¿© À̾߱â ÇÒ °ÍÀÌ´Ù. ¾î¶² ÇÁ·ÎÅäÄÝÀº ÀÚµ¿À¸·Î »õ·Î¿î Å×½ºÆ®¸¦ Á¦°øÇϴµ¥ ÇöÀç·Î´Â TCP, UDP, ICMP ¿¡ ´ëÇØ¼ ¾Æ·¡¿¡ º¸¿© ÁÙ °ÍÀÌ´Ù.
À̰ÍÀ» À§Çؼ '-p' ¿É¼Ç µÚ¿¡ ÁöÁ¤Çϴµ¥ ±×·¯¸é È®ÀåÀ» ÀûÁ¦ÇÒ °ÍÀÌ´Ù. ¸í¹éÈ÷ ÇÒ·Á¸é '-m' ¿É¼ÇÀ¸·Î È®ÀåÀ» ÀûÀçÇϰí È®Àå ¿É¼ÇÀ» »ç¿ë°¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
È®Àå¿¡ ´ëÇÑ µµ¿òÀ» ¾òÀ¸·Á¸é, ÀûÁ¦ÇÏ´Â ¿É¼Ç('-p', '-j', '-m')À» '-h'³ª '--help' ´ÙÀ½¿¡ ÁöÁ¤ÇÏ¸é µÈ´Ù.
TCP È®ÀåÀº '--protocol tcp' °¡ ÁöÁ¤µÇ°í ´Ù¸¥ Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î ÀûÁ¦µÈ´Ù. À̰ÍÀº ´ÙÀ½°ú °°Àº ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
'!' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ°Í µÚ¿¡ µÎ°³ÀÇ ´Ü¾î¸¦ »ç¿ëÇÑ´Ù. ù¹øÂ° °ÍÀº °Ë»çÇϰíÀÚ ÇÏ´Â Áö½ÃÀÚ ¸®½ºÆ®ÀÇ ¸¶½ºÅ©ÀÌ´Ù. µÎ¹øÂ° ´Ü¾î´Â Áö½ÃÀÚ¿¡°Ô ¾î¶²°ÍÀÌ ¼³Á¤ µÉ °ÍÀÎÁö¸¦ ¸»ÇØÁØ´Ù. ¿¹¸¦µé¾î,
# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY
À̰ÍÀº ¸ðµç°ÍÀÌ °Ë»çµÇ¾î¾ß ÇÔÀ» ¸»ÇÑ´Ù.('ALL'Àº `SYN,ACK,FIN,RST,URG,PSH' ¿Í °°´Ù.) ±×·¯³ª SYN °ú ACK ¸¸ ¼³Á¤µÈ´Ù. 'NONE'´Â Áö½ÃÀÚ°¡ ¾øÀ½ À» ¸»ÇÑ´Ù.
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. À̰ÍÀº '--tcp-flags SYN,RST,ACK,SYN'ÀÇ ¾à¾îÀÌ´Ù.
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÇϳªÀÇ TCP Æ÷Æ®³ª Æ÷Æ®ÀÇ ¹üÀ§¸¦ ÁöÁ¤ÇÑ´Ù. /etc/services ¿¡ ±â·ÏµÈ °Í°ú °°Àº Æ÷Æ® À̸§ÀÌ »ç¿ëµÉ ¼ö µµ ÀÖ°í ¼ýÀÚ·Î ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù. ¹üÀ§´Â µÎ°³¸£ Æ÷Æ® À̸§À» '-' À¸ ·Î ¿¬°áÇØ¼ »ç¿ëÇϰųª (Ä¿°Å³ª °°Àº°æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® µÚ¿¡ '-'¸¦ »ç¿ëÇϰųª (À۰ųª °°Àº °æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® ¾Õ¿¡ '-' ¸¦ µ¡ºÙÀÏ ¼ö ÀÖ´Ù.
À̰ÍÀº '--source-port'¿Í µ¿ÀǾîÀÌ´Ù.
¿Í
´Â À§ÀÇ ³»¿ë°ú °°À¸³ª ¸ñÀû Áö¸¦ ÁöÁ¤ÇÑ´Ù.
'!' ³ª ¼ýÀÚ°¡ ¿É¼Ç¿¡ ¼±ÇàµÉ ¼ö Àִµ¥ ¼ýÀÚ°¡ ¾Õ¿¡ ¿Ã°æ¿ì ±× ¼ýÀÚ ¿Í TCP ¿É¼ÇÀÌ °°Àº °æ¿ìÀÇ ÆÐŶÀ» °Ë»çÇÑ´Ù. TCP ¿É¼ÇÀ» °Ë»çÇÏ·Á ÇÒ ¶§ ¿ÏÀüÇÑ TCP Çì´õ¸¦ °®Áö¾Ê´Â °ÍÀº ÀÚµ¿À¸·Î DROP µÈ´Ù.
°¡²û ÇÑÂÊ ¹æÇâ¿¡¼ÀÇ TCP Á¢¼Ó¸¸ Çã¶ûÇÏ°í ´Ù¸¥ ¹æÇâ¿¡¼ÀÇ Á¢¼ÓÀ» ºÒÇãÇÏ ´Â °ÍÀÌ À¯¿ëÇÏ´Ù. ¿¹·Î, ¿©·¯ºÐÀº ¿ÜºÎ WWW ¼¹ö·ÎÀÇ Á¢¼ÓÀº Çã¶ôÇÏ¸ç ±× ¼¹ö·Î ºÎÅÍÀÇ Á¢¼ÓÀº ºÒÇãÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù.
´Ü¼øÇÏ°Ô ±× ¼¹ö·ÎºÎÅÍ ¿À´Â TCP ÆÐŶÀ» ¸·À¸¸é µÈ´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù. ±×·¯ ³ª, ºÒÇàÈ÷µµ ÀÛµ¿Çϱâ À§Çؼ TCP Á¢¼ÓÀº ¾ç¹æÇâÀÇ ÆÐŶÀ» ¿ä±¸ÇÑ´Ù.
ÇØ¹ýÀº Á¢¼ÓÀ» ¿ä±¸ÇÏ´Â ÆÐŶ¸¸ ¸·´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀ» SYN ÆÐŶÀ̶óÇÑ´Ù. (¹°·Ð, ±â¼úÀûÀ¸·Î SYN Áö½ÃÀÚ ¼ÂÀ» °®´Â ÆÐŶÀÌ ÀÖ´Ù. ±×¸®°í FIN °ú ACK Áö½Ã ÀÚ´Â Áö¿öÁø´Ù. ±×·¯³ª °£´ÜÈ÷ ±×°ÍÀ» SYN ÆÐŶÀ̶ó°í ÇÑ´Ù.) ÀÌ·¯ÇÑ ÆÐŶ¸¸ ºÒ°¡´ÉÀ¸·Î ¸¸µëÀ¸·Î¼ ¿ÜºÎ·Î ºÎÅÍÀÇ Á¢¼Ó ½Ãµµ¸¦ ¸·À» ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ °ÍÀ» À§Çؼ '--syn' Áö½ÃÀÚ°¡ »ç¿ëµÈ´Ù. : À̰ÍÀº ÇÁ·ÎÅäÄÝÀ» TCP ·Î ÁöÁ¤ÇßÀ» ¶§¸¸ È¿°ú°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é, 192.168.1.1 ·ÎºÎÅÍÀÇ TCP Á¢¼ÓÀ» Áö Á¤Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
-p TCP -s 192.168.1.1 --syn
Á¢¼ÓÀ» ½ÃÀÛÇÑ °Í ¿ÜÀÇ ¸ðµç ÆÐŶÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© '!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù.
ÀÌ È®ÀåÀº '--protocol udp'°¡ ÁöÁ¤µÇ°í Àû¿ëÀÌ ÀúÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î ÀûÀçµÈ´Ù. À̰ÍÀº '--source-port', '--sport', '--destination-port', '-dport'¸¦ Áö¿øÇÏ°í ³»¿ëÀº TCP ¼³¸í¿¡¼ ÀÚ¼¼È÷ ³ª¿Ô´Ù.
ÀÌ È®ÀåÀº '--protocol icmp'°¡ ÁöÁ¤µÇ°í ±× Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î ÀûÀçµÈ´Ù. À̰ÍÀº ´Ü ÇϳªÀÇ »õ·Î¿î ¿É¼Ç¸¸ Áö¿øÇÑ´Ù.:
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ICMP ŸÀÔÀÇ À̸§('host-unreachable') À̳ª ¼ýÀÚÇüÅ ('3'), ¶Ç´Â ¼ýÀÚÇüÅÂ¿Í ÄÚµå('/'·Î ºÐ¸® ¿¹. '3/3') ÀÇ Çü Ű¡ »ç¿ëµÈ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ICMP ÇüÅÂÀÇ À̸§ÀÇ ¸®½ºÆ®´Â '-p icmp --help' ÇÏ¸é ³ªÅ¸³´Ù.
Netfilter ÆÐŰÁöÀÇ ´Ù¸¥ È®ÀåÀº ½ÃÇèÀûÀÎ È®ÀåÀÌ´Ù. À̰ÍÀº (¼³Ä¡ µÇ¾îÀÖ´Ù¸é) '-m' ¿É¼ÇÀ¸·Î Ȱ¼ºÈ µÈ´Ù.
ÀÌ ¸ðµâÀº '-m mac' ¶Ç´Â '--match mac' À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº µé¾î¿À´Â ÆÐŶÀÇ ÀÌ´õ³Ý ÁÖ¼Ò¸¦ °Ë»çÇÑ´Ù. ±×·¯¹Ç·Î ÀԷ üÀο¡ ¼¸¸ À¯¿ëÇÏ´Ù. À̰ÍÀº ÇϳªÀÇ ¿É¼Ç¸¸ Á¦°øÇÑ´Ù.
'!' ¿É¼ÇÀÌ ¼±Çà µÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÄÝ·ÐÀ¸·Î ºÐ¸®µÈ 16Áø¼ö ¼ýÀÚÀÇ ÀÌ´õ³Ý ÁÖ¼Ò°¡ ¿Â´Ù. ¿¹ '--mac-source 00:60:08:91:CC:B7'
ÀÌ ¸ðµâÀº '-m limit' ¶Ç´Â '--match limit'À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ ´Ù. À̰ÍÀº ·Î±× ¸Þ¼¼Áö¸¦ ¾ïÁ¦ÇÒ¶§ ó·³ Àû¿ë°Ë»çÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϴµ¥ »ç¿ëÇÑ´Ù. 1ÃÊ¿¡ ÁÖ¾îÁø ¼ýÀÚ¸¸ÅÀÇ Àû¿ë¸¸ °Ë»çÇÑ´Ù. (±âº»°ªÀº ÇÑ ½Ã°£ ¿¡ 3¹ø, ÃÖ°í 5¹øÀÌ´Ù.) À̰ÍÀº µÎ°³ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
¼ýÀÚ°¡ µû¶ó¿Â´Ù : ÃÊ´ç Æò±Õ ÃÖ´ë Àû¿ë °Ë»ç ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ¼ýÀÚµÚ ¿¡ ½Ã°£´ÜÀ§¸¦ Áö¾îÇÒ ¼ö µµ ÀÖ´Ù. ('/second', '/minute', '/hour', '/day'ÇüÅÂÀÌ´Ù. ¿¹·Î, '5/second' ¶Ç´Â '5/s'°¡ °¡´ÉÇÏ´Ù)
¼ýÀÚ°¡ µû¶ó¿Â´Ù. À§ÀÇ Á¦ÇÑÀÌ Àû¿ëµÇ±âÀüÀÇ ÃÖ´ë Burst(?) ¸¦ Á¦ÇÑ ÇÑ´Ù.
ÀÌ Àû¿ëÀº Á¾Á¾ ·Î±×ÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϱâÀ§ÇÏ¿© LOG Ÿ°Ù°ú ÇÔ²² »ç¿ëµÈ ´Ù. À̰ÍÀ» ÀÌÇØÇϱâÀ§ÇÏ¿© ¾Æ·¡¿¡ ±âº» Á¦ÇѼ³Á¤À» ÇÏ´Â ·Î±× ÆÐŶÁ¦ÇÑ À» º¸ÀÚ.
# iptables -A FORWARD -m limit -j LOG
ÀÌ ±ÔÄ¢¿¡ µµ´ÞµÉ¶§±îÁö ÆÐŶÀº ·Î±×µÉ °ÍÀÌ´Ù. »ç½Ç BurstÀÇ ±âº»°ªÀº 5 À̹ǷΠó¹Ç¤· 5°³ÀÇ ÆÐŶÀº ·Î±×µÉ°ÍÀÌ´Ù. ±× ÀÌÈÄ ¾ó¸¶³ª ¸¹Àº ÆÐŶÀÌ µµ´ÞÇÏµç °£¿¡ ÇϳªÀÇ ÆÐŶÀÌ ·Î±×µÇ±âÀü¿¡ 20ºÐÀÌ °É¸± °ÍÀÌ´Ù. ±×¸®°í 20ºÐ µ¿¾È ÆÐŶ Àû¿ëÀÌ ¾øÀ¸¸é Burst Çϳª°¡ ´Ù½Ã »ý±æ °ÍÀÌ´Ù. ÆÐŶ¾øÀÌ 100ºÐ ÀÌ Áö³ª¸é Burst´Â ¿ÏÀüÀÌ ¿ø»ó º¹±¸ µÉ°ÍÀÌ´Ù. óÀ½ ½ÃÀÛÇÒ¶§·Î µ¹¾Æ°¡´Â °Í ÀÌ´Ù.
À纹±¸ ½Ã°£À» 59½Ã°£ ÀÌ»óÀ¸·Î´Â ¼³Á¤ÇÏÁö ¸øÇÑ´Ù. ±×·¯¹Ç·Î Æò±Õ¼Óµµ¸¦ ÇÏ ·ç¿¡ 1°³·Î ¼³Á¤ÇÏ¿´´Ù¸é Burst ¼Óµµ´Â 3 ÀÌÇϰ¡ µÇ¾î¾ß ÇÑ´Ù.
ÀÌ ¸ðµâÀº Áö¿ª¿¡¼ »ý¼ºµÈ ÆÐŶÀÇ »ý¼ºÀÚÀÇ ¿©·¯ Ư¡À» Àû¿ëÇÏ·Á°í ÇÑ´Ù. À̰ÍÀº Ãâ·Â üÀο¡¸¸ »ç¿ëµÇ¸ç ¾î¶² ÆÐŶµé(ICMP ping ÀÀ´ä°°Àº)Àº ¼ÒÀ¯ÀÚ °¡ ¾øÀ¸¹Ç·Î Àû¿ëµÇÁö ¾Ê´Â´Ù.
À¯È¿ÇÑ »ç¿ëÀÚ id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
À¯È¿ÇÑ ±×·ì id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
ÁÖ¾îÁø ÇÁ·Î¼¼¼ id ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
¼¼¼Ç ±×·ì³»ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
ÀÌ ½ÃÇèÀûÀÎ ¸ðµâÀº Á¤È®È÷ '-m unclean' ¶Ç´Â '--match unclean'À¸·Î ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. À̰ÍÀº ¹«ÀÛÀ§ÀÇ ¿©·¯ °ÇÀü¼º °Ë»ç¸¦ ÇÑ´Ù. À̰ÍÀº Á¦´ë·Î °Ë»çµÇÁö ¾Ê¾Ò°í ¾ÈÀü¼º µµ±¸·Îµµ »ç¿ëµÇÁö ¸øÇÑ´Ù.(¾Æ¸¶µµ ÀÌ°Í Àº ¹«Á¦¸¦ ´õ¿í Èûµé°Ô ÇÏ°í ¹ö±× ±× ÀÚüÀÏ °ÍÀÌ´Ù.) À̰ÍÀº ¿É¼ÇÀÌ ¾ø´Ù.
°¡Àå À¯¿ëÇÑ Àû¿ë ±âÁØÀº 'ip_conntrack' ¸ðµâÀÇ Á¢¼Ó ÃßÀû ºÐ¼®À» ÇØ¼®ÇÏ´Â 'state' È®ÀåÀÌ´Ù. À̰ÍÀ» °·ÂÈ÷ ÃßõÇÑ´Ù.
'-m state'¸¦ ÁöÁ¤ÇÔÀ¸·Î '--state' ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌÈÄ¿¡ ÄÞ¸¶·Î ºÐ¸®µÇ´Â Àû¿ëÇÒ »óŵéÀÇ ¸®½ºÆ®°¡ ¿Â´Ù.('!' Áö½ÃÀÚ´Â »ç¿ëµÇ¾îÁöÁö ¾Ê´Â ´Ù.) ÀÌ »óŵéÀº ;
»õ·Î¿î Á¢¼ÓÀ» ¸¸µå´Â ÆÐŶ
Á¸ÀçÇÏ´Â Á¢¼Ó¿¡ ¼ÓÇÏ´Â ÆÐŶ (Áï, ÀÀ´ä ÆÐŶÀ» °¡Á³´ø °Í)
±âÁ¸ÀÇ Á¢¼ÓÀÇ ºÎºÐÀº ¾Æ´ÏÁö¸¸ ¿¬°ü¼ºÀ» °¡Áø ÆÐŶÀ¸·Î . ICMP ¿¡·¯ ³ª (FTP ¸ðµâÀÌ »ðÀÔ µÇ¾îÀÖÀ¸¸é) ftp µ¥ÀÌÅÍ Á¢¼ÓÀ» Çü¼ºÇÏ´Â ÆÐŶ.
¾î¶² ÀÌÀ¯·Î È®ÀÎÇÒ ¼ö ¾ø´Â ÆÐŶ: ¾Ë·ÁÁø Á¢¼Ó°ú ºÎÇÕÇÏÁö ¾Ê´Â ICMP ¿¡·¯¿Í 'out of memory' µîÀ» Æ÷ÇÔÇÑ´Ù. º¸Åë ÀÌ·± ÆÐŶÀº DROP µÈ´Ù.
ÀÌÁ¦ ÆÐŶ¿¡¼ ¾î¶² °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Ò´Ù. ÀÌÁ¦ ¿ì¸®ÀÇ °Ë»ç¿¡ ÀÏÄ¡ ÇÏ´Â ÆÐŶÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö¸¦ ¸»ÇÏ´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. À̰ÍÀ» ±ÔÄ¢ Ÿ°Ù À̶ó°í ÇÑ´Ù.
µÎ°³ÀÇ ÀÌ¹Ì ¸¸µé¾îÁø ´Ü¼øÇÑ Å¸°ÙÀÌ ÀÖ´Ù. : DROP °ú ACCEPT. ÀÌ¹Ì À̰Ϳ¡ ´ëÇØ¼´Â À̾߱⸦ ÇÑ ÀûÀÌ ÀÖ´Ù. Àû¿ëÀÌ µÇ´Â ÆÐŶ°ú ±×°ÍÀÇ Å¸°ÙÀÌ À§ÀÇ µÎ °³Áß Çϳª¶ó¸é ´õÀÌ»óÀÇ Âü°íÇÒ ±ÔÄ¢Àº ¾ø´Ù. : ÆÐŶÀÇ ¿î¸íÀº °áÁ¤ µÇ´Â °Í ÀÌ´Ù.
ÀÌ¹Ì ¸¸µé¾îÁø µÎ°³ÀÇ Å¸°Ù¿Ü¿¡ µÎ°¡Áö ÇüÅÂÀÇ Å¸°ÙÀÌ ÀÖ´Ù.: È®Àå°ú »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àεé ÀÌ´Ù.
ipchains
·Î ºÎÅÍ »ó¼ÓµÇ´Â iptables
ÀÇ °·ÂÇÑ ±â´ÉÁßÀÇ Çϳª´Â ´É·ÂµÇ´Â »ç¿ë
ÀÚ°¡ ±âÁ¸ÀÇ ¼¼°³ÀÇ Ã¼ÀÎ(ÀÔ·Â, Ãâ·Â, Æ÷¿öµå)¿Ü¿¡ »õ·Î¿î üÀÎÀ» »ý¼ºÇÒ ¼ö
ÀÖ´Ù´Â °ÍÀÌ´Ù. ¸ðÀÓÀÇ °á°ú »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀº ±×°ÍÀ» ±¸ºÐÇϱâ À§ÇÏ¿© ¼Ò¹®
ÀÚ·Î ³ªÅ¸³½´Ù. (¾Æ·¡
Àüü üÀο¡ ´ëÇÑ ÀÛ¿ë ºÎºÐ¿¡¼ ¾î¶»°Ô »ç¿ëÀÚ ÁöÁ¤ÀÇ
»õ·Î¿î üÀÎÀ» ¸¸µå´ÂÁö ±â¼úÇÒ °ÍÀÌ´Ù.)
Ÿ°ÙÀÌ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÎ ±ÔÄ¢¿¡ ÆÐŶÀÌ ¸ÂÀ¸¸é ÆÐŶÀº »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ» µû¶ó ¿òÁ÷ÀÌ°Ô µÈ´Ù. ±× üÀÎÀÌ ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏÁö ¸øÇÏ¸é ±×¸®°í ±× üÀο¡ µû¸¥ À̼ÛÀÌ ³¡³ª¸é, ÆÐŶÀº ÇöÁ¦ üÀÎÀÇ ´ÙÀ½ ±ÔÄ¢À¸·Î µ¹¾Æ¿Â´Ù.
±×¸²À» º¸ÀÚ. µÎ°³ÀÇ Ã¼ÀÎÀÌ ÀÖ°í ±×°ÍÀÌ ÀÔ·Â
°ú Å×½ºÆ®
¶ó´Â »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÌ
¶ó°í °¡Á¤ÇÏÀÚ.
`INPUT' `test'
---------------------------- ----------------------------
| Rule1: -p ICMP -j DROP | | Rule1: -s 192.168.1.1 |
|--------------------------| |--------------------------|
| Rule2: -p TCP -j test | | Rule2: -d 192.168.1.1 |
|--------------------------| ----------------------------
| Rule3: -p UDP -j DROP |
----------------------------
192.168.1.1 ·ÎºÎÅÍ ¿Í¼ 1.2.3.4 ·Î ÇâÇÏ´Â TCP ÆÐŶÀÌ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. À̰ÍÀº
ÀÔ·Â
üÀÎÀ¸·Î µé¾î¿Â´Ù. Rule1 À» °Ë»çÇÑ´Ù. ¸ÂÁö ¾ÊÀ½. Rule2 ¸ÂÀ½. ±×°ÍÀÇ Å¸°Ù
Àº Å×½ºÆ®
, °í·Î ´ÙÀ½ °Ë»çÇÒ ±ÔÄ¢Àº Å×½ºÆ®
ÀÇ ½ÃÀÛÀÌ´Ù. Å×½ºÆ®
ÀÇ Rule1 ÀÌ ¸Â´Ù.
±×·¯³ª À̰ÍÀÌ Å¸°ÙÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ´ÙÀ½ ±ÔÄ¢ÀÌ °Ë»çµÈ´Ù. Rule 2.
¸ÂÁö ¾Ê´Ù. ±× üÀÎÀÇ ³¡¿¡ µµ´ÞÇß´Ù. ´Ù½Ã ÀԷ üÀÎÀ¸·Î µ¹¾Æ°¡¼ Rule3 À» °Ë»ç
ÇÑ´Ù. ±×°Íµµ ¸ÂÁö ¾Ê´Ù.
¿©±â¼ ÆÐŶÀÇ À̵¿°æ·Î¸¦ ±×¸²À¸·Î ³ªÅ¸³Â´Ù.
v __________________________
`INPUT' | / `test' v
------------------------|--/ -----------------------|----
| Rule1 | /| | Rule1 | |
|-----------------------|/-| |----------------------|---|
| Rule2 / | | Rule2 | |
|--------------------------| -----------------------v----
| Rule3 /--+___________________________/
------------------------|---
v
»ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àο¡¼ ´ë¸¦ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ¸·Î °¥¼ö ÀÖ´Ù. (±×·¯³ª ·çÇÁ ¸¦ µ¹¼ö´Â ¾ø´Ù. ·çÇÁ¸¦ ¹ß°ßÇÏ°Ô µÇ¸é ÆÐŶÀº DROP µÈ´Ù.)
Ÿ°ÙÀÇ ´Ù¸¥ ÇüÅ´ ȮÀåÀÌ´Ù. Ÿ°Ù È®ÀåÀº Ä¿³Î ¸ðµâ·Î ±¸¼ºµÈ´Ù. ±×¸®°í iptables
¿¡ ´ëÇÑ ¼±ÅÃÀû È®ÀåÀº »õ·Î¿î ¸í·ÉÇàÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. ±âº»ÀûÀ¸·Î ³ÝÇÊÅÍ ¹èÆ÷¿¡
Æ÷ÇÔµÈ ¸î¸îÀÇ È®ÀåÀº ´ÙÀ½°ú °°´Ù.
ÀÏÄ¡ÇÏ´Â ÆÐŶÀÇ Ä¿³Î ·Î±×¸¦ Á¦°øÇÑ´Ù. À̰ÍÀº ºÎ°¡ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
·¹º§ ¼ýÀÚ³ª À̸§ÀÌ µû¶ó¿Â´Ù. À¯È¿ÇÑ À̸§Àº (»óȲ¿¡ µû¶ó ´Ù¸£´Ù) 'debug' 'info', 'notice', 'warning', 'err', 'crit', 'alert', 'emerg' À̰í ÀÌ°Í Àº °¢°¢ ¼ýÀÚ 7 ¿¡¼ 0 ¿¡ ´ëÀÀÇÑ´Ù. ÀÌ·± ·¹º§¿¡ ´ëÇÑ ¼³¸íÀº syslog.conf ÀÇ man ÆäÀÌÁö¸¦ º¸¶ó.
14ÀÚ ±îÁöÀÇ ¹®ÀåÀÌ µû¶ó¿Â´Ù. ÀÌ ¸Þ¼¼Áö´Â ·Î±× ¸Þ¼¼ÁöÀÇ ½ÃÀۺκÐÀ¸·Î º¸³»Á®¼ È®Àο¡ »ç¿ëµÉ ¼ö ÀÖ´Ù.
ÀÌ ¸ðµâÀº 'limit' Ÿ°Ù ´ÙÀ½¿¡ »ç¿ëÇÏ¸é °¡Àå È¿°úÀûÀÌ´Ù. ±×·¡¼ ·Î±×°¡ ³Ñ Áö³ªÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖ´Ù.
ÀÌ ¸ðµâÀº 'DROP'°ú °°Àº È¿°ú¸¦ ³ªÅ¸³½´Ù. ´Ù¸¸, 'port unreachable' À̶ó´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ ICMP ·Î º¸³½´Ù. ÁÖÀÇÇÒ °ÍÀº ICMP ¿¡·¯ ¸Þ¼¼Áö´Â ´ÙÀ½ÀÇ °æ¿ì º¸³» ÁöÁö ¾Ê´Â´Ù ( RFC 1122 ¸¦ º¸¶ó) :
REJECT ´Â '--reject-with'¶ó´Â ¿É¼ÇÀ» °¡Áö´Âµ¥ À̰ÍÀº »ç¿ëÇÒ ÀÀ´ä ÆÐŶÀ» º¯°æÇÑ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¸Þ´º¾ó ÆäÀÌÁö¸¦ º¸¶ó.
µÎ°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø Ÿ°ÙÀÌ ÀÖ´Ù : RETURN
, QUEUE
RETURN
Àº ÇÑ Ã¼ÀÎÀÇ ³¡À¸·Î º¸³»Áö´Â °Í°ú °°Àº È¿°ú°¡ ÀÖ´Ù. : ¹Ì¸® ¸¸µé¾îÁø ü
ÀÎÀÇ °æ¿ì ±× üÀÎÀÇ Á¤Ã¥Àº ½ÇÇàÀÌ´Ù. »ç¿ëÀÚ Á¤ÀÇ Ã¼ÀÎÀÇ °æ¿ì ÀÌ Ã¼ÀÎÀ¸·Î Á¡ÇÁ
ÇÏ´Â ±ÔÄ¢ÀÇ ¹Ù·Î ´ÙÀ½ÀÎ ÀÌÀü üÀÎÀ¸·Î À̵¿ÇÑ´Ù.
QUEUE
Àº Ưº°ÇÑ Å¸°ÙÀ¸·Î, »ç¿ëÀÚ°ø°£ÀÇ ÀÛ¾÷À» À§ÇØ ÆÐŶÀ» ´ë±âÇϵµ·Ï ÇÑ´Ù. ÆÐŶ
À» À§Çؼ ´ë±âÇϰíÀÖ´Â °ÍÀÌ ¾ø´Ù¸é(Áï, ÀÌ ÆÐŶÀ» ´Ù·ê ÇÁ·Î±×·¥ÀÌ ¾ÆÁ÷ ¾º¾îÁ®
ÀÖÁö ¾Ê´Ù¸é) ÆÐŶÀº DROP µÉ °ÍÀÌ´Ù.
iptables
ÀÇ À¯¿ëÇÑ ±â´ÉÁÖ Çϳª´Â ¿©·¯ °ü°è°¡ ÀÖ´Â ±ÔÄ¢À» ÇϳªÀÇ Ã¼ÀμÓÀ¸·Î
±×·ìÈ ÇÏ´Â °ÍÀÌ´Ù. üÀÎÀÇ À̸§Àº ¾î¶² °ÍÀ» »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ¹Ì¸® ¸¸µé¾î
Áø üÀΰúÀÇ È¥µ¿À» ¸·±â À§ÇÏ¿© ¼Ò¹®ÀÚ¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù. üÀÎÀÇ À̸§Àº 16
ÀÚ ±îÁö °¡´ÉÇÏ´Ù.
»õ·Î¿î üÀÎÀ» ¸¸µé¾î º¸ÀÚ. ³ª´Â ¸Å¿ì »ó»ó·ÂÀÌ ÁÁÀº »ç¶÷À̹ǷΠÀ̰ÍÀ» Å×½ºÆ®
¶ó°í ºÎ¸£±â·Î ÇϰڴÙ. '-N' ¶Ç´Â '--new-chain' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
# iptables -N test
#
´Ü¼øÇÏ´Ù. ÀÌÁ¦ ÀÌ Ã¼Àο¡ »ó¼¼ÇÑ ±ÔÄ¢À» Àû¿ëÇÒ ¼ö ÀÖ´Ù.
üÀÎÀ» Á¦°ÅÇÏ´Â °Íµµ ´Ü¼øÇϤ§. '-X' ³ª '--delete-chain' À» »ç¿ëÇÑ´Ù.
# iptables -X test
#
üÀÎÀ» Á¦°Å Çϴµ¥´Â ¸î°¡Áö Á¦ÇÑÀÌ ÀÖ´Ù. À̰ÍÀº ºñ¾îÀÖ¾î¾ß ÇÑ´Ù. (¾Æ·¡ÀÇ Ã¼ÀÎ ºñ¿ì±â¸¦ º¸¶ó) ±×¸®°í ±×°ÍÀº ´Ù¸¥ ¾î¶² ±ÔÄ¢ÀÇ Å¸°Ùµµ ¾Æ´Ï¾î¾ß ÇÑ´Ù. ¹Ì¸® ¸¸µé¾îÁø ¼¼°³ÀÇ Ã¼ÀÎÀº Á¦°ÅÇÒ ¼ö ¾ø´Ù.
üÀÎÀÇ À̸§À» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀº Á¦°ÅµÈ´Ù.
ÇϳªÀÇ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢À» ºñ¿ì´Â °£´ÜÇÑ ¹æ¹ýÀÌ ÀÖÀ¸´Ï, '-F' ('--flush') ¸í·ÉÀÌ´Ù.
# iptables -F forward
#
üÀÎÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç üÀÎÀÇ ±ÔÄ¢ÀÌ Áö¿öÁø´Ù.
ÇÑ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢Àº '-L' ¸í·ÉÀ¸·Î ³ª¿ÇÒ ¼ö ÀÖ´Ù.
°¢ »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀ» ³ª¿Çß´ø 'refcnt' ´Â ±× üÀÎÀ» ±×µéÀÇ Å¸°ÙÀ¸·ÎÇÏ ´Â ±ÔÄ¢µéÀÇ ¹øÈ£ÀÌ´Ù. üÀÎÀÌ Á¦°ÅµÇ±â À§Çؼ´Â À̰ÍÀÌ '0' À¸·Î µÇ¾î¾ß ÇÑ´Ù. (±×¸®°í ±× üÀÎÀº ºñ¾î¾ß ÇÑ´Ù)
üÀÎÀÇ À̸§ÀÌ »ý·«µÇ¸é ºñ¾îÀÖ´Â °ÍÀ» Æ÷ÇÔÇÑ ¸ðµç üÀÎÀÌ ³ª¿µÈ´Ù.
'-L' ¸í·É¿¡ µû¸£´Â ¿É¼ÇÀº ¼¼°³°¡ ÀÖ´Ù. '-n' (numeric) ¿É¼ÇÀº iptables
°¡
¿©·¯ºÐÀÌ DNS ¿ä±¸¸¦ ÇÊÅ͸µ ¾Æ¿ôÇÑ °æ¿ì³ª DNS°¡ ÀûÀýÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é
¿À·£ ½Ã°£ÀÌ °É¸®´Â, IP ÁÖ¼Ò¸¦ ã´Â °ÍÀ» ¿¹¹æÇÏ´Â ¾ÆÁÖ À¯¿ëÇÑ ¿É¼ÇÀÌ´Ù. À̰Í
Àº TCP¿Í UDP Æ÷Æ®°¡ À̸§ÀÌ ¾Æ´Ñ ¼ýÀÚ·Î Ãâ·ÂµÇµµ·Ï Çϱ⵵ ÇÑ´Ù.
'-v' ¿É¼ÇÀº ±ÔÄ¢ÀÇ ÀÚ¼¼ÇÑ Á¤º¸(ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÅÍ, TOS ºñ±³, ÀÎÅÍÆäÀ̼¿Í °°Àº)¸¦ ³ªÅ¸³½´Ù.
ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÆ®´Â 'K'(1000), 'M'(1,000,000), 'G'(1,000,000,000) ¿Í °°Àº Á¢¹Ì¾î¿Í ÇÔ²² ³ªÅ¸³´Ù. '-x' (È®Àå ¼ö) Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¸é ¾ó¸¶³ª Å« ¼ýÀÚµç Àü ü ¼ýÀÚ°¡ ³ªÅ¸³´Ù.
À̰ÍÀº Ä«¿îÆ®¸¦ ¸®¼ÂÇϴµ¥ À¯¿ëÇÏ´Ù. À̰ÍÀº '-Z' ('--zero') ¿É¼ÇÀ¸·Î °¡´ÉÇÏ´Ù.
À̰ÍÀÇ ¹®Á¦Á¡Àº ¸®¼ÂÇϱâ Á÷ÀüÀÇ Ä«¿îÆ® °ªÀ» ¾ËÇʿ䰡 ÀÖÀ» ¶§°¡ °¡²û ÀÖ´Ù´Â °Í ÀÌ´Ù. ÀÌ·¯ÇÑ °æ¿ìÀÇ ¿¹·Î, ¾î¶² ÆÐŶÀÌ '-L' °ú '-Z' ¸í·É »çÀÌ¿¡ Áö³ª°¥ ¼ö ÀÖ´Ù. ÀÌ·±ÀÌÀ¯·Î Ä«¿îÆ®¸¦ Àд °Í°ú µ¿½Ã¿¡ ¸®¼ÂÇϱâÀ§Çؼ '-L' °ú '-Z' ¸í·ÉÀ» °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¿ì¸®°¡ ÀÌÀü üÀÎÀ» ÆÐŶÀÌ ¾î¶»°Ô Áö³ª°¡´Â°¡¸¦ ÀdzíÇÒ ¶§, ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ
³¡¿¡ ÆÐŶÀÌ ´Ù´Ù·¶À»¶§ ¹«½¼ ÀÏÀÌ ÀϾ °ÍÀΰ¡¸¦ ¼³¸íÇÏ¿´´Ù. ÀÌ °æ¿ì üÀÎÀÇ
Á¤Ã¥ÀÌ ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÑ´Ù. ¹Ì¸® ¸¸µé¾îÁø üÀÎ(ÀÔ·Â
, Ãâ·Â
, Æ÷¿öµå
)¸¸ÀÌ
Á¤Ã¥À» °¡Áö´Âµ¥, À̰ÍÀº »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀÇ ³¡¿¡ ´Ù´Ù¸¥ ÆÐŶÀÇ À̵¿Àº ÀÌÀü
üÀο¡¼ ¿ä¾àµÇ¾îÁö±â ¶§¹®ÀÌ´Ù.
Á¤Ã¥Àº ACCEPT
¶Ç´Â DROP
ÀÌ µÉ¼ö ÀÖ´Ù.
¹èÆ÷µÇ´Â ³ÝÇÊÅÍ¿¡´Â ipchains.o ¿Í ipfwadm.o ¶ó´Â ¸ðµâÀÌ ÀÖ´Ù. À̰ÍÀ» ¿©·¯ ºÐÀÇ Ä¿³Î¿¡ Æ÷ÇÔ½Ã۸é ÀÌÀü°ú ¶È °°ÀÌ ipchains ³ª ipfwadmÀ» »ç¿ëÇÒ ¼ö ÀÖ ´Ù. ( ÁÖÀÇ : À̵éÀº iptables.o, ip_conntrack.o, ip_nat.o¿Í ȣȯ¼ºÀÌ ¾ø´Ù)
À̰ÍÀº ¾ÆÁ÷ Çѵ¿¾ÈÀº Áö¿øµÉ °ÍÀÌ´Ù. À̵éÀ» ¿ÏÀüÈ÷ ´ëÄ¡ÇÏ´Â ¾ÈÁ¤ÆÇÀÌ ³ª¿À ´Âµ¥ ±îÁö´Â 2 * [´ëÄ¡ÇÒ °ÍÀ̶ó´Â ¹ßÇ¥ - ù¹øÂ° ¾ÈÁ¤ÆÇ] À̶ó´Â °ø½ÄÀÌ Àû ¿ëµÈ´Ù°í »ý°¢ÇÑ´Ù.
Áï, ipfwadmÀÇ °æÀ§ À̰ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [October 1997 (2.1.102 release) - March 1995 (ipfwadm 1.0)]
+ January 1999 (2.2.0 release)
= November 2003.
±×¸®°í ipchainsÀÇ °æ¿ì À̰ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [August 1999 (2.3.15 release) - October 1997 (2.2.0 release)]
+ January 2000 (2.3.0 release?)
= September 2003.
±×·¯¹Ç·Î, 2004³â ±îÁö´Â °ÆÁ¤ÇÒ Çʿ䰡 ¾øÀ» °ÍÀÌ´Ù.