4. ½ÇÇà ½ºÅ©¸³Æ® ¹× ¼¼ºÎ ¼³Á¤

4.1. ÆÐŶ¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ

ÆÐŶ(packet)À̶õ Çѱ۷Π¹ø¿ªÇÏÀÚ¸é ¼ÒÆ÷, ÆíÁö¹­À½ À̶ó´Â ¶æÀ» °¡Áö°í ÀÖ´Ù. ±×·¸´Ù¸é ÆÐŶÀ̶õ µµ´ëü ¹«¾úÀΰ¡.

ÀüÈ­ Åë½ÅÀ» ¿¹·Î µé¾î º¸°Ú´Ù. Áö±ÝÀÇ ¾Æ³¯·Î±× ÀüÈ­´Â ȸ¼± ¹æ½ÄÀÌ´Ù. ¿ì¸®°¡ ÀüÈ­¸¦ °É¸é ±³È¯±â¸¦ ÅëÇØ ´Ù¸¥ ÁýÀÇ ÀüÈ­·Î ¿¬°áµÈ´Ù. ÀüÈ­¸¦ ¹Þµç ¾È ¹Þµç ÀÏ´Ü ¿¬°áÀ» ÇÑ´Ù. ±×·¸´Ù¸é ¿¬°á µÈ ȸ¼±À» Á¡À¯Çϰí ÀÖ´Ù´Â °Í ÀÌ´Ù. ÀüÈ­¸¦ ¹ÞÁö ¾Ê¾Æ ÅëÈ­¸¦ ÇÏÁö ¾Ê´Â´Ù ÇØµµ ¿¬°áÀÌ µÇ¾ú±â ¶§¹®¿¡ ȸ¼±À» ¾²°í ÀÖ´Â °ÍÀÌ µÈ´Ù.

±×·±µ¥ À̰ÍÀ» ÀÎÅͳݿ¡ Àû¿ë½ÃŲ´Ù¸é ¾öû³ª°Ô ºñÈ¿À²ÀûÀ¸·Î µÈ´Ù. ±×·¡¼­ ÀÎÅͳݿ¡¼­´Â ÆÐŶÀ» »ç¿ëÇÑ´Ù. ÆÐŶÀº ÀÛÀº µ¥ÀÌÅÍÀÇ µ¢¾î¸® ÀÌ´Ù. FTP¸¦ ÅëÇØ¼­ ÆÄÀÏÀ» ¹Þ´Â´Ù°í ÇÒ ¶§. ¿ì¸® ´«À¸·Î º¼¶§´Â ÆÄÀÏÀÌ ÇѲ¨¹ø¿¡ ¹Þ¾ÆÁø´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î ÆÄÀϵéÀº ¼ö¹é ¼öõ°³ÀÇ ÆÐŶµé·Î Á¶°¢³ª ¿ì¸®¿¡°Ô·Î Àü¼ÛµÇ´Â °ÍÀÌ´Ù. ÄÄÇ»ÅÍ´Â ±× ÆÐŶÀ» ¹Þ¾Æ Á¶¸³ÇÏ¿© ´Ù½Ã ÆÄÀÏÀ» ¸¸µé¾î ³½´Ù.

¿ì¸®°¡ ÀÎÅͳÝÀ» ÇÑ´Ù¸é À¥ ºê¶ó¿ìÀú·Î À¥¼­Çεµ Çϰí FTP·Î ÆÄÀϵµ ¹Þ°í ¸Þ½ÅÀú·Î ¸Þ½ÃÁöµµ ÁÖ°í ¹ÞÀ» °ÍÀÌ´Ù. ¿ì¸® ÄÄÇ»ÅÍ¿¡ ¿¬°áµÈ ·£¼±¿¡´Â À¥ ºê¶ó¿ìÀú¿¡¼­ ¿äûÇÑ HTMLÆÄÀÏÀÇ ÆÐŶ, FTP¿¡¼­ Àü¼ÛÇϰí ÀÖ´Â ÆÄÀÏ ÆÐŶµé, ¸Þ½ÅÀú¿¡¼­ ÁÖ°í ¹Þ´Â ¸Þ½ÃÁö ÆÐŶµéÀÌ ¼­·Î µÚ¼¯¿© ¿À°í °£´Ù. ÀÌ·¸°Ô ¼¯¿©¼­ ¿À°í °£´ÙÇØµµ ÆÐŶµé¿¡´Â °¢°¢ÀÇ Á¤º¸°¡ Á¸Àç ÇÑ´Ù. ±×·¡¼­ ÆÐŶÀÌ ¼¯ÀÌÁö ¾Ê°í ¿©·¯°¡Áö ÀÏÀ» µ¿½Ã¿¡ ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀüÈ­ °°À¸¸é ȸ¼±À» ¿ÏÀü Á¡À¯Çؼ­ »ç¿ëÇϱ⠶§¹®¿¡ ÇѰ¡Áö ÀÏ ¹Û¿¡ ÇÒ ¼ö°¡ ¾ø´Ù.

ÀÌÁ¦ ¹æÈ­º®ÀÇ ¿ø¸®¸¦ ¾Ë¾Æº¸ÀÚ. ¹æÈ­º®Àº ÆÐŶÀ» ±¸ºÐÇÏ¿© ±× ÆÐŶÀ» Åë°ú ½Ãų °ÍÀÎÁö ¾Æ´Ï¸é °ÅºÎ, ȤÀº ¹ö¸± °ÍÀÎÁö¸¦ °áÁ¤Çϴ°ÍÀÌ´Ù. iptables¸¦ ÅëÇØ¼­ ÆÐŶÀ» ¾î¶»°Ô Á¦¾î ÇÏ´À³Ä¿¡ µû¶ó¼­ Á¢¼ÓÀ» ¸·°Å³ª ȤÀº ¿­°Å³ª, ½ºÆ®¸µ °Ë»öÀ» ÅëÇØ¼­ ¿úÀÇ ÆÐŶÀ» ¸·À» ¼ö ÀÖ´Â °ÍÀÌ´Ù.

4.2. bridge ¹× iptables ½ºÅ©¸³Æ® ÀÛ¼º

iptables´Â ¸í·ÉÀ» ³»·ÁÁ൵ ¸Þ¸ð¸®¿¡¸¸ ¿Ã¶ó°¡ Àֱ⠶§¹®¿¡ ÀçºÎÆÃÀ» ÇÏ¸é ¼³Á¤ ³»¿ëÀÌ »ç¶óÁø´Ù. µû¶ó¼­ ºÎÆÃÇÒ ¶§ ½ÇÇàµÇµµ·Ï ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î Áà¾ß ÇÑ´Ù.

iptables ¸í·É ½ºÅ©¸³Æ®´Â ÀÎÅÍ³Ý »ó¿¡ ¸¹Àº ¿¹Á¦µéÀÌ ¿Ã¶ó¿Í ÀÖ´Ù. º»Àεµ óÀ½¿¡´Â ±×´ë·Î º¹»çÇØ¼­ »ç¿ëÀ» ÇßÁö¸¸. ³»¿ëÀ» ÀÌÇØÇÏÁö ¾Ê°í »ç¿ëÀ» ÇØ¼­ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê¾Ò´Ù. °¡Àå Áß¿äÇÑ ºÎºÐÀº ÆÐŶ¿¡ ´ëÇÑ ÀÌÇØ¿Í ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» °®Ãß¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. Áö±Ý ¸¸µç ¹æÈ­º®ÀÌ ¼³Ä¡µÇ´Â ³×Æ®¿öÅ©°¡ º»ÀÎÀÌ »ç¿ëÇϰí ÀÖ´Â ³×Æ®¿öÅ©ÇÏ°í ¶È°°´Ù°í ÇÒ ¼ö´Â ¾øÀ» °ÍÀÌ´Ù, ±×·¯¹Ç·Î ÀÚ½ÅÀÇ ³×Æ®¿öÅ© »óȲ¿¡ ¸Â°Ô ½ºÅ©¸³Æ®¸¦ ÀçÀÛ¼º ÇØ¾ß ÇÒ °ÍÀÌ´Ù.

¾Æ·¡ ½ºÅ©¸³Æ®´Â ºÎÆÃµÉ ¶§ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï /etc/init.d/bridgefirewall ·Î ÀúÀåÇÑ´Ù. ½ºÅ©¸³Æ®ÀÇ ÁÖ¼®À» º¸°í °¢ÀÚ ³×Æ®¿öÅ© »óȲ¿¡ ¸Â°Ô ¼³Á¤Çϱ⠹ٶõ´Ù. ³×Æ®¿öÅ© ¼³Á¤Àº ÀÚ½ÅÀÇ ³×Æ®¿öÅ©¿¡ ¸Â°Ô ¼³Á¤Çϱ⠹ٶõ´Ù. ¾ÕÀ¸·Î ¿¹¸¦ µé ³×Æ®¿öÅ© ±¸¼ºÀº´ÙÀ½°ú °°´Ù. ¹°·Ð Á¸ÀçÇÏÁö ¾Ê´Â IPÀÌ´Ù. ¹æÈ­º®°ú ¹æÈ­º® µÚ¿¡¼­ º¸È£¹Þ´Â ³×Æ®¿öÅ© ¸ðµÎ °øÀÎ IP¸¦ »ç¿ëÇÑ´Ù.

#!/bin/sh

BR_IP="234.234.200.10"  
# ¹æÈ­º®ÀÇ ÀÚü IP. ¿ø·¡ Bridge firewallÀº IP ÁÖ¼Ò°¡ ¾ø´Ù. ÇÏÁö¸¸ IP¸¦ 
# ÇÒ´çÇÏÁö ¾ÊÀ¸¸é ¿ø°Ý¿¡¼­ Á¢¼ÓÇÒ ¼ö ¾ø°í Á÷Á¢ ¹æÈ­º® ¸Ó½Å ¾Õ¿¡ ¾É¾Æ¼­
# ÀÛ¾÷À» ÇØ¾ß Çϱ⠶§¹®¿¡ °ü¸®ÇϱⰡ ºÒÆíÇÏ´Ù. ±×·¡¼­ °ü¸®¸¦ À§ÇØ
# IP¸¦ ÇÒ´çÇÑ´Ù. ³»ºÎ³×Æ®¿öÅ© ¿¡¼­¸¸ Á¢¼ÓÀÌ °¡´ÉÇϵµ·Ï ¼³Á¤ ÇÒ °ÍÀÌ´Ù.
# º¸¾È»ó °ÆÁ¤ÀÌ µÈ´Ù¸é IPÁÖ¼Ò¸¦ ÇÒ´çÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ±×·¯¸é ¿ø°Ý¿¡¼­´Â
# Àý´ë Á¢¼ÓÇÒ ¼ö ¾ø´Ù.

BR_IFACE="inca-br"     # ºê¸®Áö À̸§, ¸¶À½¿¡ µå´Â À̸§À» ÁØ´Ù.

LAN_BCAST_ADDRESS="234.234.200.255"       # ºê·Îµå ij½ºÆ®
INTERNAL_ADDRESS_RANGE="234.234.200.0/24" # ³×Æ®¿öÅ© ¹üÀ§.
INTERNAL_ADDRESS="255.255.255.0"          # ³Ý ¸¶½ºÅ© 

INET_IFACE="eth0" # ¿ÜºÎ¿¡¼­ µé¾î¿À´Â ¼±À» ¿¬°á ÇÒ ·£Ä«µå
LAN_IFACE="eth1"  # ³»ºÎ·Î ³ª°¡´Â ¼±À» ¿¬°áÇÏ´Â ·£Ä«µå

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="/usr/local/sbin/iptables" # iptables ÀÇ Àý´ë °æ·Î

#########
/sbin/depmod -a

# ¾Æ·¡ ºÎºÐÀº iptables¿¡¼­ »ç¿ë ÇÒ ¸ðµâÀ» ÀûÀçÇÏ´Â ÀÛ¾÷ÀÌ´Ù.
# µ¥ºñ¾È ¸®´ª½ºÀÇ °æ¿ì modconf¿¡¼­ ÀûÀçÇÒ ¸ðµâÀ» ¼±ÅÃÀ» Çϸé
# ºÎÆÃ ÇÒ ¶§¸¶´Ù ¾Æ·¡¿Í °°ÀÌ Àû¾îÁÙ ÇÊ¿ä´Â ¾ø´Ù.
# ´Ù¸¥ ¹èÆ÷ÆÇÀÇ °æ¿ì ¾Æ·¡¿Í °°ÀÌ ÇÊ¿äÇÑ ¸ðµâµéÀ» ¿Ã·ÁÁà¾ß iptables¿¡¼­
# °¢°¢ÀÇ ¸í·ÉµéÀÌ ÀÎ½Ä µÉ °ÍÀÌ´Ù.
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/iptable_filter.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_conntrack.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/iptable_nat.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_conntrack_irc.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ipt_string.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ipt_state.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ipt_REJECT.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ipt_REDIRECT.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_nat_snmp_basic.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_nat_ftp.o
/sbin/insmod /lib/modules/2.4.19/kernel/net/ipv4/netfilter/ip_nat_irc.o

ifconfig $INET_IFACE down   # ¸ðµç ·£Ä«µåÀÇ ¼³Á¤À» ÃʱâÈ­
ifconfig $LAN_IFACE down
ifconfig $BR_IFACE down

ifconfig $INET_IFACE 0.0.0.0  # ºê¸®Áö°¡ µÉ ·£Ä«µå¿¡ 0.0.0.0ÀÇ ¾ÆÀÌÇǸ¦ ÁØ´Ù.
ifconfig $LAN_IFACE 0.0.0.0

$IPTABLES -F  # üÀÎÀÇ ±ÔÄ¢µéÀ» Áö¿î´Ù.
$IPTABLES -X  # üÀÎÀ» Áö¿î´Ù, ÃʱâÈ­ ÀÛ¾÷.

# Ãʱâ Á¤Ã¥. 
# INPUT(µé¾î¿À´Â °Í) DROP(¹ö¸°´Ù)
# OUTPUT(³ª°¡´Â °Í) ACCEPT(Çã¿ë), INPUT OUTPUTÀº ¹æÈ­º® ÀÚü¿¡¼­ ¿À°í ³ª°¡´Â ÆÐŶÀ» ¶æÇÔ.
# FORWARD DROP : °¡Àå Áß¿äÇÑ ºÎºÐÀÌ´Ù. 
# ºê¸®Áö ¹æÈ­º®À» ÅëÇØ Áö³ª°¡´Â ¸ðµç ÆÐŶÀº FORWARD¿¡¼­ Á¦¾îÇÑ´Ù.
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# ºê¸®Áö ¼³Á¤
/usr/local/sbin/brctl addbr $BR_IFACE
/usr/local/sbin/brctl addif $BR_IFACE $INET_IFACE
/usr/local/sbin/brctl addif $BR_IFACE $LAN_IFACE

# ºê¸®Áö IP ¼³Á¤
if [ "$BR_IP" != "" ] ; then
    ifconfig $BR_IFACE $BR_IP broadcast $LAN_BCAST_ADDRESS netmask $INTERNAL_ADDRESS
    else
        ifconfig $BR_IFACE up
fi

# Firewall SSH
# ¹æÈ­º® ÄÄÇ»ÅÍ ÀÚüÀÇ ¼³Á¤.
# 234.234.200.0 ºÎÅÍ 255 ±îÁö ¾ÆÀÌÇÇ¿¡¼­ ¹æÈ­º® 22¹ø Æ÷Æ®·Î Á¢¼ÓÇÏ´Â °ÍÀ» Çã¿ë
# µû¶ó¼­ ȸ»ç³»ºÎ¿¡¼­¸¸ Á¢¼ÓÀÌ °¡´ÉÇϸç SSH·Î¸¸ Á¢¼ÓÀÌ °¡´ÉÇÏ´Ù.
# °ü¸®ÀÚÀÇ Æ¯Á¤ IP¸¸ Çã¿ëÇÏ·Á¸é 234.234.200.0/24´ë½Å 234.234.200.12 ÀÌ·±½ÄÀ¸·Î
# Àû¾îÁÖ¸é µÈ´Ù
$IPTABLES -A INPUT -p tcp -s 234.234.200.0/24 --dport 22 -j ACCEPT

# Deny IP list
# À̰ÍÀº ¿¹¸¦ µç °ÍÀÌ´Ù. »ç¿ëÇÏ°í ½ÍÀº »ç¶÷Àº »ç¿ëÇϱ⠹ٶõ´Ù.
# ù¹øÂ°´Â 10.105.4.202¿¡¼­ ¿À´Â icmp ÆÐŶÀ» ¹ö¸°´Ù´Â ¶æ, tcp, udp¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù
# µÎ¹øÂ°´Â MAC ÁÖ¼Ò¸¦ Â÷´ÜÇÏ´Â ¹æ¹ýÀ¸·Î ¾Æ·¡ÀÇ MAC ÁÖ¼Ò¿¡¼­ ¿À´Â ÆÐŶÀº Â÷´ÜµÈ´Ù.
#$IPTABLES -A FORWARD -p icmp -s 10.105.4.202 -j DROP
#$IPTABLES -A FORWARD -m mac --mac-source 00:02:2A:C4:86:17 -j DROP

# Nimda, CodeRed
# ´Ô´Ù ÆÐŶ ¹× Äڵ巹µå ÆÐŶ Â÷´ÜÇÏ´Â ¸í·É
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "/default.ida?" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "XXXXXXXX" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "root.exe?" -j REJECT --reject-with tcp-reset

# SQL Slammer
# SQL ½½·¡¸Ó ¿úÀÇ ÆÐŶÀ» Â÷´ÜÇÏ´Â ¸í·É
$IPTABLES -A FORWARD -p udp -m string --string "Qh.dllhel32hkern" -j REJECT

# 80¹ø Æ÷Æ®¸¸ »ç¿ëÇÏ´Â À¥ ¼­¹öÀÇ °æ¿ì 80¹øÆ÷Æ®¸¸ ¿­°í ³ª¸ÓÁö 80Æ÷Æ®·Î ¿À°í °¡´Â ÆÐŶ¿¡ ´ëÇÑ
# ½ºÆ®¸µ °Ë»ç¸¦ ÇØ¼­ Nimda, CodeRedÀÇ ÆÐŶÀ» ¸·´Â´Ù.
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "/default.ida?" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "XXXXXXXX" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "root.exe?" -j REJECT --reject-with tcp-reset

# MSN
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 1863:1864 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6901 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 7801:7825 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6891:6900 -j ACCEPT

# KTiman
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10020 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10250 -j ACCEPT

# IRC
$IPTABLES -A FORWARD -p tcp --dport 6667 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 6667 -j ACCEPT

# Remote
$IPTABLES -A FORWARD -p tcp --sport 6009 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 6009 -j ACCEPT

# FTP Client
$IPTABLES -A FORWARD -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 113 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 113 -j ACCEPT

# syn packet drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 -j DROP

# net send drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 139 -j DROP
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 2603 -j DROP
$IPTABLES -A FORWARD -p udp -d 234.234.200.0/24 --dport 135 -j DROP

$IPTABLES -A FORWARD -p ALL -j ACCEPT

³×Æ®¿öÅ© ¹üÀ§ ¼³Á¤ÀÇ ¶æ

¿ì¸®´Â ¾Õ¿¡¼­ ³×Æ®¿öÅ© ¹üÀ§ ¼³Á¤À̶ó´Â ºÎºÐÀ» ÇÏ¿´´Ù. 234.234.200.0 ºÎÅÍ 255±îÁö¸¦ 234.234.200.0/24¶ó°í ¼³Á¤ ÇÏ¿´´Ù. À̰ÍÀÌ ¿Ö ÀÌ·¸°Ô ¼³Á¤µÇ´ÂÁö ¾Ë¾Æº¸ÀÚ

Ç¥ 1. IP ÁÖ¼ÒÀÇ ¹üÀ§ Ç¥Çö

11111111.11111111.11111111.11111111
.101112131415.1617181920212223.2425262728293031

À§ÀÇ Ç¥´Â 255.255.255.255¸¦ 2Áø¼ö·Î Ç¥ÇöÇÑ °ÍÀÌ°í µÎ¹øÂ° ÁÙÀº °¢ ºñÆ®ÀÇ ¼ø¼­ÀÌ´Ù.

234.234.200.0/24¶ó°í ÇÒ¶§ 234.234.200.0ºÎÅÍ 234.234.200.255±îÁö µÇ´Â ÀÌÀ¯´Â 0/24 ¿¡¼­ 24¹øÂ° ºñÆ®±îÁö¸¦ ÀǹÌÇÑ´Ù.

Ç¥ 2. 0/24

.11111111
.2425262728293031

24 ¹øÂ° ºñÆ®±îÁö À̸é 1 1 1 1 1 1 1 1Áï 255´Ù. 0ºÎÅÍ 255±îÁö¶ó´Â ¸»ÀÌ´Ù

0/25¶ó°í Çϸé 0 1 1 1 1 1 1 1·Î 128ÀÌ µÈ´Ù. 0ºÎÅÍ 128ÀÌ µÈ´Ù.

0/26À̸é 0 0 1 1 1 1 1 1·Î 0ºÎÅÍ 64

128/25¶ó¸é. 128 ºÎÅÍ 255±îÁö »ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù.

4.3. Á¤Ã¥º¯°æ

¹æÈ­º®À» ºÎÆÃÀ» ÇØ³õ°í Á¤Ã¥À» ¼öÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯·Á¸é ½ºÅ©¸³Æ®¸¦ Çϳª ´õ ¸¸µé¾î Áà¾ß Çϴµ¥.. ¸Å¿ì ½±°Ô ÇÒ ¼ö ÀÖ´Ù. À§ÀÇ ºÎÆÃ ½ºÅ©¸³Æ®¿¡¼­ ºê¸®Áö ¼³Á¤ ºÎºÐ¸¸ »« iptables¸í·É ºÎºÐ¸¸ Àß¶ó¼­ ½ºÅ©¸³Æ®·Î ¸¸µé¸é ½ºÅ©¸³Æ® ½ÇÇุÀ¸·Î °£´ÜÇÑ Á¤Ã¥ º¯°æÀÌ °¡´ÉÇÏ°Ô µÈ´Ù.

´ÙÀ½Àº ¹æÈ­º®ÀÌ ºÎÆÃµÇ°í Á¤Ã¥À» º¯°æ ÇÒ ¼ö ÀÖ´Â ½ºÅ©¸³Æ®ÀÌ´Ù. ipt-sh¶ó°í ÀúÀåÇϰí chmod 755 ipt-sh ÇÑµÚ ./ipt-sh ¶ó°í ½ÇÇàÇÏ¸é µÈ´Ù.
IPTABLES="/usr/local/sbin/iptables"

$IPTABLES -F  # üÀÎÀÇ ±ÔÄ¢µéÀ» Áö¿î´Ù.
$IPTABLES -X  # üÀÎÀ» Áö¿î´Ù, ÃʱâÈ­ ÀÛ¾÷.

# Firewall SSH
$IPTABLES -A INPUT -p tcp -s 234.234.200.0/24 --dport 22 -j ACCEPT

#$IPTABLES -A FORWARD -p icmp -s 10.105.4.202 -j DROP
#$IPTABLES -A FORWARD -m mac --mac-source 00:02:2A:C4:86:17 -j DROP

# Nimda, CodeRed
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "/default.ida?" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "XXXXXXXX" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "root.exe?" -j REJECT --reject-with tcp-reset

# SQL Slammer
$IPTABLES -A FORWARD -p udp -m string --string "Qh.dllhel32hkern" -j REJECT

# WebServer
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "/default.ida?" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "XXXXXXXX" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe" -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p tcp -d 234.234.200.5 --tcp-flags ACK ACK --dport 80 -m string --string "root.exe?" -j REJECT --reject-with tcp-reset

# MSN
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 1863:1864 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6901 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 7801:7825 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6891:6900 -j ACCEPT

# KTiman
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10020 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10250 -j ACCEPT

# IRC
$IPTABLES -A FORWARD -p tcp --dport 6667 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 6667 -j ACCEPT

# Remote
$IPTABLES -A FORWARD -p tcp --sport 6009 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 6009 -j ACCEPT

# FTP Client
$IPTABLES -A FORWARD -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 113 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 113 -j ACCEPT

# syn packet drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 -j DROP

# net send drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 139 -j DROP
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 2603 -j DROP
$IPTABLES -A FORWARD -p udp -d 234.234.200.0/24 --dport 135 -j DROP

$IPTABLES -A FORWARD -p ALL -j ACCEPT

$IPTABLES -L

4.4. ±âº»ÀûÀÎ ¸í·É »ç¿ë¹ý

iptables¿¡ ¸í·ÉÀ» ³»·Á ¾î¶»°Ô ÆÐŶµéÀ» Á¶ÀÛÇÏ´ÂÁö ±âº»ÀûÀÎ °ÍµéÀ» ¾Ë¾Æº¸ÀÚ.

-A FORWARD : FORWARDüÀο¡ Á¤Ã¥ Ãß°¡, °¡Àå ¸¹ÀÌ »ç¿ëÇÑ´Ù.

-A INPUT, -A OUTPUT : INPUT, OUTPUT üÀο¡ Á¤Ã¥ Ãß°¡, ¹æÈ­º® ÀÚüÀÇ ¿À°í ³ª°¡´Â ÆÐŶÁ¤Ã¥. °ÅÀÇ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

-p tcp : TCPÇÁ·ÎÅäÄÝ, Web, FTP, Telnet, SSH, µî

-p udp : UDPÇÁ·ÎÅäÄÝ

-p icmp : ICMPÇÁ·ÎÅäÄÝ, PING

-d : Destination IP, ¸ñÀûÁö IP ¿¹) -d 234.234.200.123

-s : Source IP, ¹ß»ýÁö IP ¿¹) -s 234.234.200.123

--dport : Destination Port, ¸ñÀûÁö Æ÷Æ® ¿¹) --dport 80 ȤÀº --dport 80:90 80¹øºÎÅÍ 90¹ø±îÁö

--sport : Source Port, ¹ß»ýÁö Æ÷Æ® ¿¹) --sport 80 ȤÀº --sport 80:90 80¹øºÎÅÍ 90¹ø±îÁö

¾Õ¿¡¼­ ¿ì¸®´Â INTERNAL_ADDRESS_RANGE="234.234.200.0/24" ¶ó°í ¼³Á¤Çß´Ù. ³»ºÎ ³×Æ®¿öÅ©¸¦ ¶æÇϴµ¥ ¾Æ·¡ µÎÁÙÀÇ ¸í·ÉÀº °°´Ù. ´ÜÁö INTERNAL_ADDRESS_RANGE¶ó°í º¯¼ö¸¦ ÁÖ°í IP¸¦ ´ëÀÔ½ÃÄÑ ÁÖ¾ú´Âµ¥ ÀÌÇØ¸¦ µ½±â À§ÇØ IP¸¦ ±×´ë·Î ³Ö´Â ¹æ½ÄÀ¸·Î ÇϰڴÙ. º¯¼ö¸¸ ÇѰ¡µæÈ÷ ³ª¿À¸é óÀ½ º¸´Â »ç¶÷Àº Àß ÀÌÇØ°¡ °¡Áö ¾Ê±â ¶§¹®ÀÌ´Ù. óÀ½¿¡´Â IP¸¦ ±×´ë·Î ³Ö°í º¯¼ö¸¦ »ç¿ëÇÏ°í ½ÍÀº »ç¶÷Àº »ç¿ëÇØµµ »ó°ü ¾ø´Ù.
$IPTABLES -A FORWARD -p tcp -d $INTERNAL_ADDRESS_RANGE --dport 80 -j DROP
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 80 -j DROP

iptables ¿¡¼­ FORWARDüÀÎÀ» ±âº»ÀûÀ¸·Î DROPÀ¸·Î ÇØ³ù¾ú´Ù. ±×·¸°Ô µÇ¸é ¸ðµÎ ¸·È÷°Ô µÈ´Ù. Á¤Ã¥À» ¼³Á¤ ÇÒ ¶§ ¿­¾îÁÙ Æ÷Æ®¸¦ ¸ÕÀú ¿­°í ¸ðµÎ ¸·¾Æ¾ß ÇÑ´Ù. ¸ðµÎ ¸·°í ¿­¾îÁÙ °ÍÀ» ¿­¸é ¿­¸®Áö ¾Ê°Ô µÈ´Ù.

À§ÀÇ ºÎÆÃ ½ºÅ©¸³Æ®¿¡¼­´Â syn ÆÐŶÀ» µå·Ó ÇÑ´Ù. ÀÌ ¸»Àº FORWARDüÀο¡ (-A FORWARD) TCPÇÁÅä·ÎÄÝ (-p tcp) synÆÐŶ (--syn) ¸ñÀûÁö IP°¡ 234.234.200.0/24ÀÏ ¶§ (-d 234.234.200.0/24) µå·ÓÇÑ´Ù. (-j DROP)
# syn packet drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 -j DROP
$IPTABLES -A FORWARD -p ALL -j ACCEPT

syn ÆÐŶÀ» µå·Ó ÇÏ´Â ÀÌÀ¯´Â 234.234.200.0/24¶ó´Â ³»ºÎ ³×Æ®¿öÅ©¿¡ TCP Á¢¼ÓÀ» ¸·±â À§Çؼ­ÀÌ´Ù. TCP¸¦ »ç¿ëÇÏ´Â telnet, web, FTPµî ³»ºÎ·ÎÀÇ Á¢¼ÓÀ» ¸·´Â °ÍÀÌ´Ù. synÆÐŶÀº TCPÇÁ·ÎÅäÄÝÀÇ Ãʱâ Á¢¼Ó ¿ä±¸ ÆÐŶÀÌ´Ù. ¸ñÀûÁö IP°¡ ³»ºÎ ³×Æ®¿öÅ©·Î µÅÀÖ°í ±×°ÍÀ» µå·ÓÇÑ´Ù. ³»ºÎ¿¡¼­ ¿ÜºÎ·Î ³ª°¡´Â °ÍÀº ¸·È÷Áö ¾Ê´Â´Ù. ÁÖÀÇÇÒ Á¡Àº syn ÆÐŶÀ» ¸·Áö ¾Ê°í ±×³É ¸ñÀûÁö°¡ ³»ºÎ ³×Æ®¿öÅ©ÀÎ TCPÇÁ·ÎÅäÄÝÀ» ¸·´Â °æ¿ì À¥À» Æ÷ÇÔÇÑ ¸ðµç TCP¸¦ »ç¿ëÇÏ´Â °ÍµéÀº Åë½ÅÀ» ÇÏÁö ¸øÇÑ´Ù. ¿ÜºÎ·Î ³ª°¥ ¼ö´Â ÀÖÁö¸¸ ±× °á°ú¸¦ ³»ºÎ·Î °¡Á® ¿Ã ¼ö ¾ø±â ¶§¹®¿¡ Åë½ÅÀÌ µÇÁö ¾Ê´Â °ÍÀÌ´Ù. µÎ¹øÂ° ÁÙÀÇ ¸ðµç ÇÁ·ÎÅäÄÝÀ» Çã¿ëÇÑ´Ù´Â ¸í·ÉÀε¥ Àú°ÍÀ» ÇÏÁö ¾ÊÀ¸¸é Åë½ÅÀÌ µÇÁö ¾Ê´Â´Ù. ²À ÇØÁÖ¾î¾ß ÇÑ´Ù. FORWARDÀÇ ±âº» Á¤Ã¥ÀÌ DROPÀ̱⠶§¹®ÀÌ´Ù.

ƯÁ¤ Æ÷Æ® ¿­±â¿Í ƯÁ¤ Æ÷Æ® ¸·±â
# 21¹ø Æ÷Æ® ¸·±â, ¸ñÀûÁöIP°¡ ³»ºÎ, ¸ñÀûÁö Æ÷Æ®°¡ 21¹øÀÎ ÆÐŶÀ» µå·Ó, È¿°ú´Â TCPÇÁ·ÎÅäÄÝ 21¹ø Æ÷Æ®¸¦ »ç¿ëÇÏ´Â
# ÇÁ·Î±×·¥Àº ³»ºÎ¿¡¼­ Åë½ÅÀ» ÇÒ¼ö ¾ø´Ù. -s 234.234.200.0/24·Î ÇÏ´õ¶óµµ È¿°ú´Â °°´Ù. ¹ß»ýÁö IP°¡ ³»ºÎÀÌ°í ¸ñÀûÁö°¡ ¿ÜºÎ
# 21¹ø Æ÷Æ® À̹ǷΠȿ°ú´Â °°´Ù.
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 21 -j DROP

# 21¹ø Æ÷Æ® ¿­±â, ¸ñÀûÁö IP°¡ ³»ºÎ, ¸ñÀûÁö Æ÷Æ®°¡ 21¹øÀÎ ÆÐŶÀ» Çã¿ë, È¿°ú´Â ¿ÜºÎ¿¡¼­ ³»ºÎ·Î TCP¿¬°áÀ» ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 21 -j ACCEPT

# Á¤Ã¥ ¸¶Áö¸· ÁÙ¿¡´Â Ç×»ó À§ÀÇ synÆÐŶ µå·ÓÀ» ÇØÁÖ¾î¾ß ÇÑ´Ù. ±×·¯Áö ¾ÊÀ¸¸é ¾Æ¹«¸® ¿­°í ´Ý´Â´Ù ÇØµµ FORWARDüÀÎÀÇ ±âº»
# Á¤Ã¥À» DROP·Î ÇØ³ù±â ¶§¹®¿¡ Åë½ÅÀÌ ¾È µÈ´Ù. 

ƯÁ¤ Æ÷Æ®¸¦ ¸·´Â °ÍÀº ȸ»ç °°Àº °÷¿¡¼­ ƯÁ¤ Æ÷Æ®¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥(P2P µî)ÀÇ »ç¿ëÀ» ¸·°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù.

ƯÁ¤ Æ÷Æ®¸¦ ¿­°íÀÚ ÇÏ´Â °ÍÀº ¹æÈ­º® µÚ¿¡ ¸ÞÀϼ­¹ö, À¥¼­¹ö µîÀÌ ÀÖÀ»¶§ ±× ¼­¹öµéÀÌ »ç¿ëÇÏ´Â Æ÷Æ®¸¦ ¿­¾î ÁÙ¶§ »ç¿ëÇÑ´Ù.

4.5. ÀÚÁÖ »ç¿ëµÇ´Â °Íµé

¹æÈ­º®À» »ç¿ëÇÏ´Ù º¸¸é ÀÚÁÖ »ý±â´Â ÀϵéÀÌ ÀÖ´Ù. ÀνºÅÏÆ® ¸Þ½ÅÁ®, FTPµîÀÇ ¼³Á¤À» ¾Ë¾Æº¸ÀÚ.

ÀνºÅÏÆ® ¸Þ½ÅÁ®. MSN µî. °¢°¢ ¸Þ½ÅÀúÀÇ È¨ÆäÀÌÁö¿¡ »ç¿ëÇÏ´Â Æ÷Æ®¸¦ Ç¥½Ã ÇØ³õ°í ÀÖ´Ù. ±× Æ÷Æ®¸¦ º¸°í ¾Ë¸Â°Ô °íÄ¡¸é µÈ´Ù. ¸Þ½ÅÀú°¡ »ç¿ëÇÏ´Â Æ÷Æ®¸¦ ¿­¾îÁÖÁö ¾Ê¾Ò´Ù°í ÇØµµ ¸Þ½ÅÀú´Â µ¿ÀÛ ÇÒ °ÍÀÌ´Ù. ±×·¯³ª ÆÄÀÏÀü¼Û °°Àº °ÍÀÌ µ¿ÀÛÀÌ µÇÁö ¾Ê´Â °æ¿ì°¡ ¹ß»ýÇÑ´Ù.
# MSN
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 1863:1864 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6901 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 7801:7825 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 6891:6900 -j ACCEPT

# KTiman
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10020 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d 234.234.200.0/24 --dport 10250 -j ACCEPT

FTPŬ¶óÀÌ¾ðÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ¼³Á¤
# FTP Client
$IPTABLES -A FORWARD -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 113 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 113 -j ACCEPT

ÆÐŶ ½ºÆ®¸µ °Ë»ö String match Support, Nimda, CodeRed Packets
#$IPTABLES -A FORWARD -p tcp -d 234.234.200.1 --tcp-flags ACK ACK --dport 80 -m string --string "/default.ida?" -j REJECT --reject-with tcp-reset
#$IPTABLES -A FORWARD -p tcp -d 234.234.200.1 --tcp-flags ACK ACK --dport 80 -m string --string "XXXXXXXX" -j REJECT --reject-with tcp-reset
#$IPTABLES -A FORWARD -p tcp -d 234.234.200.1 --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe" -j REJECT --reject-with tcp-reset
#$IPTABLES -A FORWARD -p tcp -d 234.234.200.1 --tcp-flags ACK ACK --dport 80 -m string --string "root.exe?" -j REJECT --reject-with tcp-reset

À§ÀÇ ¸í·É¿¡¼­ --string "cmd.exe" ´Â ÆÐŶ ¼Ó¿¡ cmd.exe¶ó´Â ½ºÆ®¸µÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¸é Â÷´ÜÇϰųª °ÅºÎÇÑ´Ù´Â °ÍÀÌ´Ù --tcp-flags ACK ACK ´Â TCPÇÁ·ÎÅäÄÝ¿¡¼­ Ãʱ⠿¬°áÇÏ´Â ÆÐŶÀ» ¶æÇÑ´Ù.

net send (ÆË¾÷ ½ºÆÔ) À©µµ¿ì2000ÀÌ»óÀÇ ¿î¿µÃ¼Á¦¿¡ ¸Þ¼¼Áö âÀÌ ¶ß´Â ½ºÆÔÀ» ¸·´Â ¹æ¹ý
# net send drop
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 139 -j DROP
$IPTABLES -A FORWARD -p tcp --syn -d 234.234.200.0/24 --sport 2603 -j DROP
$IPTABLES -A FORWARD -p udp -d 234.234.200.0/24 --dport 135 -j DROP

ÀÌÁ¤µµ·Î ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù. óÀ½ ¸®´ª½º¸¦ Á¢ÇÏ´Â »ç¶÷Àº ¾Æ¹«·¡µµ Ä¿³Î ÄÄÆÄÀÏÀ̳ª ¼³Á¤ ºÎºÐÀÌ ¾î·Á¿ï °ÍÀÔ´Ï´Ù. ºÎÁ·ÇÑ ¹®¼­ÀÌÁö¸¸ ¸¹Àº µµ¿òÀÌ µÇ¾úÀ¸¸é ÇÕ´Ï´Ù. ¹®¼­ÀÇ À߸øµÈ Á¡ÀÌ ÀÖ´Ù¸é ¹Ù·Î ¸ÞÀÏÀ» º¸³» Áֽñ⠹ٶø´Ï´Ù.