*ÆÐŶÇÊÅ͸µ°ú ¹æÈ­º®±¸Ãà (Á¦ 1ȸ µ¥ºñ¾È ÄÁÆÛ·±½º °­ÀÇÀÚ·á) **1. ÆÐŶ ÇÊÅ͸µÀ̶õ ***1-1. ÆÐŶ ÇÊÅͶõ: Áö³ª°¡´Â ÆÐŶÀÇ Çì´õ¸¦ »ìÆìº¸°í ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤Áþ´Â ÇÁ·Î±×·¥ ¾Æ·¡¿¡ TCP ÆÐŶÀÇ ±¸Á¶¸¦ ¿¹·Î µé¾î³õ¾Ò´Ù. °¢°¢ÀÇ ÆÐŶÀÇ Çì´õ¸¦ »ìÆìº¸¸é »ó´çÈ÷ À¯¿ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö Àִµ¥ ÀÌ·¯ÇÑ °ÍÀ» ÀÌ¿ëÇÏ¿© ÇÕ¹ýÀûÀ̰ųª Á¤»óÀûÀÎ ÆÐŶÀº ACCEPT ÇÏ°í ±×·¸Áö ¾ÊÀº ÆÐŶ¿¡ ´ëÇØ¼­´Â DROPÀ» ½ÃŰ°Å³ª Áö³ª°¡´Â Ưº°ÇÑ ÆÐŶ¿¡ ´ëÇÑ °üÂû(LOG)À» ÇÒ ¼ö ÀÖ´Ù. ****¿¹) TCP/IP ÆÐŶÀÇ ±¸Á¶ +--------------------------------------------+---- | IP header | TCP Header | Application Data | +--------------------------------------------+---- ***** TCP ÆÐŶÀÇ ±¸Á¶ 0 16 31 +----------------------------------------------------------------------+ | Source Port | Destination Port | +----------------------------------------------------------------------+ | Sequence Number | +----------------------------------------------------------------------+ | Acknowledgement Number | +----------------------------------------------------------------------+ | offset | Reserved | Flag | Window | +----------------------------------------------------------------------+ | Checksum | Urgent Pointer | +----------------------------------------------------------------------+ | Option | Padding | +----------------------------------------------------------------------+ | Data region | +----------------------------------------------------------------------+ Source Port : ¼Ò½º Æ÷Æ® ¹øÈ£ Destination Port : ¸ñÀûÁö Æ÷Æ® ¹øÈ£ Sequence number : ÆÐŶÀÇ Ã¹ ¹øÂ° ¹ÙÀÌÆ®ÀÇ ÀϷùøÈ£ Acknowledgment number : ¼ö½ÅµÉ ´ÙÀ½¹ø ¹ÙÀÌÆ®ÀÇ ¿¹»ó ÀϷùøÈ£ Data Offset : ÆÐŶ³»ÀÇ µ¥ÀÌÅÍ ¿ÀÇÁ¼Â Control Bits : URG : ±ä±Þ Æ÷ÀÎÅÍ ACK : ½ÂÀÎ PSH : Ǫ½¬ ±â´É RST : Á¢¼ÓÀÇ ¸®¼Â SYN : µ¿±âÈ­ ÀϷùøÈ£ FIN : ¼Û½ÅÀڷκÎÅÍ ´õ ÀÌ»óÀÇ µ¥ÀÌÅÍ ¾øÀ½ Window : ¼Û½ÅÀÚÀÇ À©µµ¿ì »çÀÌÁî Checksum : Çì´õ¿Í µ¥ÀÌÅÍÀÇ TCP üũ¼¶°ª Urgent Pointer : TCP ±ä±Þ Æ÷ÀÎÅÍ Options : TCP ¿É¼Çµé *SEG_SEQ : ÆÐŶÀÇ ÀϷùøÈ£ *SEG_ACK : ÆÐŶÀÇ È®ÀιøÈ£ *SEG_FLAG : Á¦¾î ºñÆ® ***** IP ÆÐŶÀÇ ±¸Á¶ ¾Æ·¡ÀÇ ±×¸²¿¡¼­´Â IP ÆÐŶÀÇ ±¸Á¶¸¦ °£·«ÇÏ°Ô º¸¿©ÁÖ°í ÀÖÀ¸¸ç Á¤È®ÇÑ Å©±â´Â ¾Æ´Ï´Ù. 0 16 31 +----------------------------------------------------------------------+ | version | header length| TOS | Total length | +----------------------------------------------------------------------+ | identification | flag | flagment offset | +----------------------------------------------------------------------+ | Time To Live(TTL)| protocol | Header Checksum | +----------------------------------------------------------------------+ | 32bit Source address | +----------------------------------------------------------------------+ | 32bit Destination address | +----------------------------------------------------------------------+ | Option | Padding | +----------------------------------------------------------------------+ | Data region | +----------------------------------------------------------------------+ version : ¹öÀü Header length : IP headerÀÇ ±æÀÌ Type of Service(TOS) : ¼­ºñ½ºÀÇ Á¾·ù (FTP, DNS.....) total length : ÆÐŶ ÀüüÀÇ ±æÀÌ Identification : 16bit·Î °¢°¢ÀÇ datagramÀ» ±¸ºÐ Fregmentation offset : ºÐÀý¿¡ ´ëÇÑ offset Time to live(TTL) : ÆÐŶÀÇ »ýÁ¸½Ã°£ Protocol : ÇÁ·ÎÅäÄÝ Header checksum : ¿À·ù°ËÃâ Source IP address : 32bit·Î µ¥ÀÌÅ͸¦ º¸³»´Â ÁÖ¼Ò Destination IP address : 32bit·Î µ¥ÀÌÅ͸¦ ¹Þ´Â ÁÖ¼Ò < TCP/IP 5 Layers > Application Transport(TCP, UDP) Network(IP) Data link Physical ***1-2. netfilter ÀÇ ±¸Á¶ ----> Routing --------> [Forword Chain] -----------------------> | ^ | | v | [Input Chain] ---> local Process -------> [Output Chain] **2. netfilter¸¦ »ç¿ëÇϱâ À§ÇÑ Ä¿³Î¿É¼Ç Menuconfig Networking options ---> [*] Network packet filtering (replaces ipchains) IP: Netfilter Configuration ---> Connection tracking (required for masq/NAT) FTP protocol support Userspace queueing via NETLINK (EXPERIMENTAL) IP tables support (required for filtering/masq/NAT) limit match support MAC address match support netfilter MARK match support Multiple port match support TOS match support tcpmss match support Connection state match support Unclean match support (EXPERIMENTAL) Owner match support (EXPERIMENTAL) Packet filtering REJECT target support MIRROR target support (EXPERIMENTAL) Full NAT MASQUERADE target support REDIRECT target support Packet mangling LOG target support TCPMSS target support **3. iptablesÀÇ È°¿ë iptablesÀº netfilter ÀÇ Á¶ÀÛÀ» À§ÇÑ utility ÀÌ´Ù. ¿É¼ÇÁ¤¸® --------------------------------------------------------------------- -N : »õ·Î¿î üÀÎ ¸¸µé±â -X : ºñ¾îÀִ üÀÎÀ» Á¦°ÅÇϱâ -P : ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ Á¤Ã¥À» ¹Ù²Ù±â -L : ¾î¶² üÀÎÀÇ ±ÔÄ¢µéÀ» ³ª¿­Çϱâ -F : üÀÎÀ¸·ÎºÎÅÍ ±ÔÄ¢µéÀ» Áö¿ì±â -Z : üÀγ»ÀÇ ¸ðµç ±ÔÄ¢µéÀÇ ÆÐŶ°ú ¹ÙÀÌÆ®ÀÇ Ä«¿îµå¸¦ 0 À¸·Î ¸¸µé±â -A : üÀο¡ »õ·Î¿î ±ÔÄ¢À» Ãß°¡Çϱâ -I : üÀÎÀÇ ¾î¶² ÁöÁ¡¿¡ ±ÔÄ¢À» »ðÀÔÇϱâ -R : üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» ±³È¯Çϱâ -D : üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» Á¦°ÅÇϱâ -D : üÀο¡¼­ ÀÏÄ¡Çϴ ù¹øÂ° ±ÔÄ¢À» Á¦°ÅÇϱâ -s : Ãâó ÁÖ¼Ò -d : ¸ñÀûÁö ÁÖ¼Ò -p : ÇÁ·ÎÅäÄÝ(tcp, udp, icmp) -i : ÆÐŶÀÌ µé¾î¿À´Â ÀÎÅÍÆäÀ̽º ( input, foward ) -o : ÆÐŶÀÌ ³ª°¡´Â ÀÎÅÍÆäÀ̽º ( foward, output ) -f : ºÐÀý -j : Á¡ÇÁ --syn : ¹Ø¿¡¼­ ÀÚ¼¼È÷ ¼³¸íÇϰÚÀ½ --dport : ¸ñÀûÁöÀÇ Æ÷Æ® Á¤ÀÇ --sport : Ãâ¹ßÁöÀÇ Æ÷Æ® Á¤ÀÇ ---------------------------------------------------------------------- Á»´õ ÀÚ¼¼ÇÑ ¼³¸íÀº ¸®´ª½º 2.4 ÆÐŶ ÇÊÅ͸µ ÇÏ¿ìÅõ¸¦ È®ÀÎÇϱ⠹ٶõ´Ù. ¿©±â¼­´Â °£·«ÇÑ ¿¹¸¸À» ´Ù·ê°ÍÀÌ´Ù. ***3.1 iptablesÀÇ »ç¿ë¿¹ Rule À» chain¿¡ Àû¿ëÇϱâ # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP Rule À» chain¿¡¼­ Á¦°ÅÇϱâ # iptables -D INPUT 1 # iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP ÀԷ üÀÎÀ¸·ÎºÎÅÍ 1¹ø ±ÔÄ¢À» Á¦°ÅÇÑ´Ù. ***3.3 ÇÊÅ͸µ ÁöÁ¤ ¾Õ¿¡¼­ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-p'¸¦ ÀÌ¿ëÇÏ¿´°í, Ãâó¸¦ ÁöÁ¤Çϱâ À§ÇÏ¿© '-s'¸¦ ÀÌ¿ëÇÏ¿´´Ù. ±× ¿Ü¿¡µµ ÆÐŶÀÇ Æ¯Â¡À» ÁöÁ¤Çϴµ¥ »ç¿ëµÇ ´Â ´Ù¸¥ ¿É¼ÇµéÀÌ ÀÖ´Ù. ¾Æ·¡´Â À̰͵鿡 ´ëÇÑ ¿Ïº®ÇÑ °³¿äÀÌ´Ù. ****source ¿Í destination ÀÇ ÁöÁ¤ -s, -d ¿É¼ÇÁöÁ¤¿¡ »ç¿ëµÇ¾îÁö´Â 4°¡Áö ¹æ¹ý kerbung.org, localhost 127.0.0.1 192.168.1.7/24 192.168.1.7/255.255.255.0 # iptables -A INPUT -s 192.168.1.7 -j DROP ****'¿ª'ÀÇ °æ¿ì ÁöÁ¤ ¸¹Àº Áö½ÃÀÚµé('-s'³ª '-d' °°Àº)Àº ÀÏÄ¡ÇÏÁö ¾Ê´Â ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÏ¿© '!'('not'À» ÀǹÌÇÑ´Ù)·Î ½ÃÀÛÇÏ´Â ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ¿¹·Î, '-s ! localhost' ´Â localhost·ÎºÎÅÍ¿À´Â ÆÐŶÀÌ ¾Æ´Ñ°æ¿ì¸¦ ³ªÅ¸³½´Ù. ****ÇÁ·ÎÅäÄÝ ÁöÁ¤ ÇÁ·ÎÅäÄÝÀº '-p' Áö½ÃÀÚ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝÀ» ¼ýÀÚ°¡ µÉ¼ö ÀÖ°í (IPÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ¾Ë°í ÀÖ´Ù¸é) 'TCP', 'UDP', 'ICMP' °°Àº À̸§ÀÌ µÉ ¼öµµ ÀÖ´Ù. ±×¸®°í 'tcp'´Â 'TCP'¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù. ÇÁ·ÎÅäÄÝ À̸§ ÁöÁ¤¿¡µµ '!'À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. '-p ! TCP' ****ÀÎÅÍÆäÀ̽º ÁöÁ¤ '-i'('--in-interface')¿Í '-o'('--out-interface')°¡ ÀÎÅÍÆäÀ̽º¸¦ ÁöÁ¤ Çϴµ¥ »ç¿ëµÈ´Ù. Ưº°ÇÑ °æ¿ì·Î, ÀÎÅÍÆäÀ̼­ À̸§ÀÌ '+'·Î ³¡³¯¼ö Àִµ¥ À̰ÍÀº ±× À̸§À¸·Î ½ÃÀÛÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̼­¸¦ ¸ðµÎ ÁöÁ¤ÇÑ´Ù(±×°ÍÀÌ ÇöÀç Á¸ÀçÇϵç Á¸ÀçÇÏÁö ¾Êµç). ¿¹¸¦µé¾î, ¸ðµç PPP ÀÎÅÍÆäÀ̼­¿Í ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» ÁöÁ¤ÇÏ·Á¸é -i ppp+¿Í°°ÀÌ ÇÏ¸é µÈ´Ù. ÀÎÅÍÆäÀ̼­ À̸§¾Õ¿¡ '!'µµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ****È®Àå *****TCP È®Àå --tcp-flags '!' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ°Í µÚ¿¡ µÎ°³ÀÇ ´Ü¾î¸¦ »ç¿ëÇÑ´Ù. ù¹øÂ° °ÍÀº °Ë»çÇϰíÀÚ ÇÏ´Â Áö½ÃÀÚ ¸®½ºÆ®ÀÇ ¸¶½ºÅ©ÀÌ´Ù. µÎ¹øÂ° ´Ü¾î´Â Áö½ÃÀÚ¿¡°Ô ¾î¶²°ÍÀÌ ¼³Á¤ µÉ °ÍÀÎÁö¸¦ ¸»ÇØÁØ´Ù. ¿¹¸¦µé¾î, # iptables -A INPUT -s 192.168.1.1 --protocol tcp --tcp-flags SYN,RST,ACK,SYN -j DENY 192.168.1.1·Î ºÎÅÍ tcp¹æ½Ä¿¡ ÀÇÇÑ Á¢¼Ó Â÷´Ü --syn À̰ÍÀº '--tcp-flags SYN,RST,ACK,SYN'ÀÇ ¾à¾îÀÌ´Ù. # iptables -A INPUT -p TCP -s 192.168.1.1 --syn -j DENY --source-port or --sport Source Æ÷Æ® --destination-port or --dport µµÂøÁö Æ÷Æ® *****UDP È®Àå ÀÌ È®ÀåÀº '--protocol udp'°¡ ÁöÁ¤µÇ°í Àû¿ëÀÌ ÀúÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î ÀûÀçµÈ´Ù. À̰ÍÀº '--source-port', '--sport', '--destination-port', '-dport'¸¦ Áö¿øÇÏ°í ³»¿ëÀº TCP ¼³¸í¿¡¼­ ÀÚ¼¼È÷ ³ª¿Ô´Ù. *****»õ·Î¿î Ÿ°Ù Ÿ°ÙÀÇ ´Ù¸¥ ÇüÅ´ ȮÀåÀÌ´Ù. Ÿ°Ù È®ÀåÀº Ä¿³Î ¸ðµâ·Î ±¸¼ºµÈ´Ù. ±×¸®°í iptables ¿¡ ´ëÇÑ ¼±ÅÃÀû È®ÀåÀº »õ·Î¿î ¸í·ÉÇàÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. ±âº»ÀûÀ¸·Î ³ÝÇÊÅÍ ¹èÆ÷¿¡ Æ÷ÇÔµÈ ¸î¸îÀÇ È®ÀåÀº ´ÙÀ½°ú °°´Ù. LOG ÀÏÄ¡ÇÏ´Â ÆÐŶÀÇ Ä¿³Î ·Î±×¸¦ Á¦°øÇÑ´Ù. À̰ÍÀº ºÎ°¡ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. --log-level ·¹º§ ¼ýÀÚ³ª À̸§ ÁöÁ¤ 'debug' 'info', 'notice', 'warning', 'err', 'crit', 'alert', 'emerg' À̸§Àº °¢°¢ ¼ýÀÚ 7 ¿¡¼­ 0 ¿¡ ´ëÀÀµÈ´Ù. --log-prefix 14ÀÚ ±îÁöÀÇ ¹®ÀåÀ» ÁöÁ¤ REJECT ÀÌ ¸ðµâÀº 'DROP'°ú °°Àº È¿°ú¸¦ ³ªÅ¸³½´Ù. ´Ù¸¸, 'port unreachable' À̶ó´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ ICMP ·Î º¸³½´Ù. RETURN RETURNÀº ÇÑ Ã¼ÀÎÀÇ ³¡À¸·Î º¸³»Áö´Â °Í°ú °°Àº È¿°ú°¡ ÀÖ´Ù. : ¹Ì¸® ¸¸µé¾îÁø ü ÀÎÀÇ °æ¿ì ±× üÀÎÀÇ Á¤Ã¥Àº ½ÇÇàÀÌ´Ù. »ç¿ëÀÚ Á¤ÀÇ Ã¼ÀÎÀÇ °æ¿ì ÀÌ Ã¼ÀÎÀ¸·Î Á¡ÇÁ ÇÏ´Â ±ÔÄ¢ÀÇ ¹Ù·Î ´ÙÀ½ÀÎ ÀÌÀü üÀÎÀ¸·Î À̵¿ÇÑ´Ù. QUEUE QUEUEÀº Ưº°ÇÑ Å¸°ÙÀ¸·Î, »ç¿ëÀÚ°ø°£ÀÇ ÀÛ¾÷À» À§ÇØ ÆÐŶÀ» ´ë±âÇϵµ·Ï ÇÑ´Ù. ÆÐŶ À» À§Çؼ­ ´ë±âÇϰíÀÖ´Â °ÍÀÌ ¾ø´Ù¸é(Áï, ÀÌ ÆÐŶÀ» ´Ù·ê ÇÁ·Î±×·¥ÀÌ ¾ÆÁ÷ ¾º¾îÁ® ÀÖÁö ¾Ê´Ù¸é) ÆÐŶÀº DROP µÉ °ÍÀÌ´Ù. ***3.4 Ÿ°Ù ÁöÁ¤ ÀÌÁ¦ ÆÐŶ¿¡¼­ ¾î¶² °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Ò´Ù. ÀÌÁ¦ ¿ì¸®ÀÇ °Ë»ç¿¡ ÀÏÄ¡ ÇÏ´Â ÆÐŶÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö¸¦ ¸»ÇÏ´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. À̰ÍÀ» ±ÔÄ¢ Ÿ°Ù À̶ó°í ÇÑ´Ù. µÎ°³ÀÇ ÀÌ¹Ì ¸¸µé¾îÁø ´Ü¼øÇÑ Å¸°ÙÀÌ ÀÖ´Ù. : 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 -A input -p tcp --dport 0:1023 -j DROP iptables -A input -p tcp --dport 80 -j ACCEPT ***3.5 Àüü üÀο¡ ´ëÇÑ ÀÛ¿ë. iptablesÀÇ À¯¿ëÇÑ ±â´ÉÁÖ Çϳª´Â ¿©·¯ °ü°è°¡ ÀÖ´Â ±ÔÄ¢À» ÇϳªÀÇ Ã¼ÀμÓÀ¸·Î ±×·ìÈ­ ÇÏ´Â °ÍÀÌ´Ù. üÀÎÀÇ À̸§Àº ¾î¶² °ÍÀ» »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ¹Ì¸® ¸¸µé¾î Áø üÀΰúÀÇ È¥µ¿À» ¸·±â À§ÇÏ¿© ¼Ò¹®ÀÚ¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù. üÀÎÀÇ À̸§Àº 16 ÀÚ ±îÁö °¡´ÉÇÏ´Ù. ****»õ·Î¿î üÀÎ »ý¼º # iptables -N test ****üÀÎ Á¦°Å '-X' ³ª '--delete-chain' »ç¿ë # iptables -X test üÀÎÀ» Áö¿ì±â À§Çؼ­´Â üÀÎÀÌ ºñ¾îÀÖ¾î¾ß ÇÏ¸ç ´Ù¸¥ ±ÔÄ¢ÀÇ Å¸°ÙÀÌ ¾Æ´Ï¾î¾ß ÇÑ´Ù. ****üÀÎ ºñ¿ì±â '-F' ('--flush') »ç¿ë # iptables -F forward üÀÎÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç üÀÎÀÇ ±ÔÄ¢ÀÌ Áö¿öÁø´Ù. ****üÀÎ ±ÔÄ¢ ³ª¿­Çϱâ '-L' »ç¿ë ¿¹) iptables -L INPUT iptables -t nat -L **4. NAT(Network Address Translation) Ȱ¿ë ***4-1 NAT À̶õ SNAT(Source Nat), DNAT(Destination Nat) [PREROUTING](DNAT) --> Routing ------------> [POSTROUTING](SNAT) --> | ^ | | +- local Process ----------+ ****NATÀÇ È°¿ë *****¿¹1)MASQUERADING iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE *****¿¹2) °íÁ¤IP Çϳª·Î ³»ºÎÈ£½ºÆ®µé¿¡ ´ëÇÑ ¼­ºñ½ºÇϱâ # soribada & dialpad for Sung-ho iptables -A PREROUTING -t nat -p udp --dport 9068 -j DNAT --to 192.168.1.7:9068 iptables -A PREROUTING -t nat -p udp --dport 9067 -j DNAT --to 192.168.1.7:9067 iptables -A PREROUTING -t nat -p udp --dport 9066 -j DNAT --to 192.168.1.7:9066 iptables -A PREROUTING -t nat -p udp --dport 9065 -j DNAT --to 192.168.1.7:9065 iptables -A PREROUTING -t nat -p tcp --dport 51210 -j DNAT --to 192.168.1.7:51210 iptables -A PREROUTING -t nat -p udp --dport 51200 -j DNAT --to 192.168.1.7:51200 iptables -A PREROUTING -t nat -p udp --dport 51201 -j DNAT --to 192.168.1.7:51201 iptables -A PREROUTING -t nat -p tcp --dport 51210 -j DNAT --to 192.168.1.7:51210 iptables -A PREROUTING -t nat -p udp --dport 51200 -j DNAT --to 192.168.1.7:51200 iptables -A PREROUTING -t nat -p udp --dport 51201 -j DNAT --to 192.168.1.7:51201 # nanumi for Sung-ho iptables -A PREROUTING -t nat -p udp --dport 9292 -j DNAT --to 192.168.1.7:9292 iptables -A PREROUTING -t nat -p tcp --dport 9292 -j DNAT --to 192.168.1.7:9292 # Winamp broadcast for Sung-ho iptables -A PREROUTING -t nat -p udp --dport 8000 -j DNAT --to 192.168.1.7:8000 iptables -A PREROUTING -t nat -p tcp --dport 8000 -j DNAT --to 192.168.1.7:8000 # ftp for Bokyu iptables -A PREROUTING -t nat -p udp --dport 2100 -j DNAT --to 192.168.1.5:2100 iptables -A PREROUTING -t nat -p tcp --dport 2100 -j DNAT --to 192.168.1.5:2100 # telnet for Bokyu iptables -A PREROUTING -t nat -p udp --dport 2300 -j DNAT --to 192.168.1.5:2300 iptables -A PREROUTING -t nat -p tcp --dport 2300 -j DNAT --to 192.168.1.5:2300 # www for Bokyu iptables -A PREROUTING -t nat -p udp --dport 8080 -j DNAT --to 192.168.1.5:8080 iptables -A PREROUTING -t nat -p tcp --dport 8080 -j DNAT --to 192.168.1.5:8080 *****¿¹3) Åõ¸íÇÁ·Ï½Ã 111.111.111.112 <-> 192.168.1.2 111.111.111.113 <-> 192.168.1.3 111.111.111.114 <-> 192.168.1.4 ³»ºÎ È£½ºÆ®ÀÇ Gateway 192.168.1.1 /etc/network/interfaces ------------------------------------------------------------------------ # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface # automatically added whe upgrading auto lo iface lo inet loopback # The first network card - this entry was created during the Debian installatio # (network, broadcast and gateway are optional) # automatically added whe upgrading auto eth0 iface eth0 inet static address 111.111.111.112 netmask 255.255.255.0 broadcast 111.111.111.255 network 111.111.111.0 gateway 111.111.111.1 auto eth0:0 iface eth0:0 inet static address 111.111.111.113 netmask 255.255.255.0 broadcast 111.111.111.255 network 111.111.111.0 auto eth0:1 iface eth0:1 inet static address 111.111.111.114 netmask 255.255.255.0 broadcast 111.111.111.255 network 111.111.111.0 auto eth1 iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 network 192.168.1.0 auto eth1:0 iface eth1:0 inet static address 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 network 192.168.1.0 ------------------------------------------------------------------------ *nat -A PREROUTING -d 111.111.111.112 -j DNAT --to-destination 192.168.1.2 -A PREROUTING -d 111.111.111.113 -j DNAT --to-destination 192.168.1.3 -A PREROUTING -d 111.111.111.114 -j DNAT --to-destination 192.168.1.4 -A POSTROUTING -s 192.168.1.2 -j SNAT --to-source 111.111.111.102 -A POSTROUTING -s 192.168.1.3 -j SNAT --to-source 111.111.111.103 -A POSTROUTING -s 192.168.1.4 -j SNAT --to-source 111.111.111.104 *****¿¹4) ºÎÇϺлê RoundRobin ¹æ½Ä¿¡ ÀÇÇÑ ºÎÇÏºÐ»ê ¸ñÀûÁö ÁÖ¼Ò¸¦ 192.168.1.2 À̳ª 192.168.1.3 ¶Ç´Â 192.168.1.4·Î ¹Ù²Ù±â iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 192.168.1.2-192.168.1.4 **5. ½Ã½ºÅÛ ºÎÆ®½Ã ÃʱâÈ­Çϱâ À§¿¡¼­ Àû¿ëÇÏ¿´´ø ¿©·¯°¡Áö RuleµéÀ» ÀúÀåÇϰųª º¹±¸ÇÏ´Â µµ±¸·Î¼­ iptables-save ¿Í iptables-restore °¡ ÀÖ´Ù. °£´ÜÇÑ ¿¹¸¦ »ìÆìº¸¸é # iptables-save > myRule ¾Æ·¡´Â »ý¼ºµÈ myRule ÆÄÀÏÀÌ´Ù. ------------------------------------------------------------------------------------ # Generated by iptables-save v1.2.3 on Sat Oct 27 15:06:49 2001 *nat :PREROUTING ACCEPT [865:65046] :POSTROUTING ACCEPT [4:752] :OUTPUT ACCEPT [162:9841] -A PREROUTING -p udp -m udp --dport 9068 -j DNAT --to-destination 192.168.1.7:9068 -A PREROUTING -p udp -m udp --dport 9067 -j DNAT --to-destination 192.168.1.7:9067 -A PREROUTING -p udp -m udp --dport 9066 -j DNAT --to-destination 192.168.1.7:9066 -A PREROUTING -p udp -m udp --dport 9065 -j DNAT --to-destination 192.168.1.7:9065 -A PREROUTING -p tcp -m tcp --dport 51210 -j DNAT --to-destination 192.168.1.7:51210 -A PREROUTING -p udp -m udp --dport 51200 -j DNAT --to-destination 192.168.1.7:51200 -A PREROUTING -p udp -m udp --dport 51201 -j DNAT --to-destination 192.168.1.7:51201 -A PREROUTING -p tcp -m tcp --dport 51210 -j DNAT --to-destination 192.168.1.7:51210 -A PREROUTING -p udp -m udp --dport 51200 -j DNAT --to-destination 192.168.1.7:51200 -A PREROUTING -p udp -m udp --dport 51201 -j DNAT --to-destination 192.168.1.7:51201 -A PREROUTING -p udp -m udp --dport 9292 -j DNAT --to-destination 192.168.1.7:9292 -A PREROUTING -p tcp -m tcp --dport 9292 -j DNAT --to-destination 192.168.1.7:9292 -A PREROUTING -p udp -m udp --dport 8000 -j DNAT --to-destination 192.168.1.7:8000 -A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT --to-destination 192.168.1.7:8000 -A PREROUTING -p udp -m udp --dport 2100 -j DNAT --to-destination 192.168.1.5:2100 -A PREROUTING -p tcp -m tcp --dport 2100 -j DNAT --to-destination 192.168.1.5:2100 -A PREROUTING -p udp -m udp --dport 2300 -j DNAT --to-destination 192.168.1.5:2300 -A PREROUTING -p tcp -m tcp --dport 2300 -j DNAT --to-destination 192.168.1.5:2300 -A PREROUTING -p udp -m udp --dport 8080 -j DNAT --to-destination 192.168.1.5:8080 -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.5:8080 -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Sat Oct 27 15:06:49 2001 -------------------------------------------------------------------------------------- # iptables-restore myRule À§ÀÇ °úÁ¤Àº ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â Rule À» myRule ÆÄÀÏ¿¡ ÀúÀåÇÏ°í ´Ù½Ã ÀúÀåµÇ¾ú´ø Rule À» º¹±¸ÇÏ´Â ¹æ¹ýÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ¹æ¹ýº¸´Ù´Â ÇÊÀÚÀÇ °æ¿ì´Â ´ÙÀ½°ú °°Àº Çü½ÄÀÇ ½ºÅ©¸³Æ®¸¦ /etc/init.d/myRule À̶ó´Â ½ºÅ©¸³Æ®·Î ¸¸µé¾î¼­ ÀúÀåÇϰí Runlevel 2 ¿¡¼­ À̸¦ Àû¿ëÇÏ¿© »ç¿ëÇϰí ÀÖ´Ù. ---------------------------------------------------------------------------- /etc/init.d/myRule #/bin/sh case "$1" in start) echo "iptables myRule start" iptables-restore /etc/myRule.conf stop) echo "iptables myRule stop" iptables -F iptables -t nat -F ;; restart) echo "iptables stop" iptables -F iptables -t nat -F echo "iptables start" iptables-restore /etc/myRule.conf esac exit 0 ---------------------------------------------------------------------------- ½ºÅ©¸³Æ®¿¡¼­´Â myRule.conf ÆÄÀÏÀ» Àо ½Ã½ºÅÛ ºÎÆ®½Ã ¼³Á¤À» º¹±¸Çϰí ÀÖ´Ù. myRule.conf ÆÄÀÏÀ» ¸¸µå´Â ¹ýÀº ¾Æ¸¶µµ ´Ù ¾Æ½Ã¸®¶ó´Â »ý°¢À» ÇÑ´Ù. ^^; iptables-save ·Î ÇØ¼­ ¸¸µé°æ¿ìÀÇ ´ÜÁ¡Àº ¾Æ¹«·¡µµ ÁÖ¼®ºÎºÐÀÌ ¾Æ´Ò±î ÇÑ´Ù. Áï iptables-save·Î¼­ ¸¸µçÈÄ¿¡ ºÎºÐºÎºÐ ÁÖ¼®À» ³Ö¾î³õ´Â°Íµµ ÁÁÀº ¹æ¹ýÁßÀÇ ÇϳªÀÏ °ÍÀÌ´Ù. **6. ¹æÈ­º® ¼³Á¤ÀÇ ¿¹ ¾Æ·¡ÀÇ ¿¹´Â Á¶´ë¿ø´Ô(PCHarley)ÀÇ ¼³Á¤ÀÔ´Ï´Ù. Âü°í·Î ÷ºÎÇÏ¿´½À´Ï´Ù. ---------------------------------------------------------------------- #!/bin/sh ###### TCP º¯¼ö ¼³Á¤ ###### # ¿ÜºÎ·Î ¼­ºñ½ºÇÒ µ¥¸óÀÇ Æ÷Æ® ÁöÁ¤ # 20 : ftp-data port # 21 : ftp port # 22 : ssh port # 25 : smtp port # 80 : http port # 113 : auth ident port TCP_ALLOWPORT="20 21 22 25 80 113" TCP_DENYPORT=1024 # ƯÁ¤ È£½ºÆ®¿¡ ƯÁ¤ Æ÷Æ®¸¦ °³¹æ # ¼±º°ÀûÀΠȣ½ºÆ®¿¡ ´ëÇÏ¿© ¼±º°ÀûÀÎ ¼­ºñ½º ¿Àǰú DNS Zone Transfer¸¦ À§ÇØ # »ç¿ëÇÏ¸é Æí¸® # <È£½ºÆ®ipÁÖ¼Ò>:<Æ÷Æ®> Çü½ÄÀ¸·Î »ç¿ë #TCP_HOSTPERPORT="" # Ãâ¹ßÁö Æ÷Æ®·Î ¿ÀÇÂÀ» °áÁ¤ # Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» »ç¿ëÇϱâ À§ÇÏ¿© 1024 ÀÌÇÏÀÇ Æ¯Á¤ Æ÷Æ®¸¦ °³¹æ # 21 : ftp ¼­¹ö ÀÀ´ä Æ÷Æ® # 22 : ssh ¼­¹ö ÀÀ´ä Æ÷Æ® # 23 : telnet ¼­¹ö ÀÀ´ä Æ÷Æ® # 25 : mail ¼­¹ö ÀÀ´ä Æ÷Æ® # 43 : whois ÀÀ´ä Æ÷Æ® # 53 : dns ¼­¹ö ÀÀ´ä Æ÷Æ® # 79 : finger ¼­¹ö ÀÀ´ä Æ÷Æ® # 80 : httpd ¼­¹ö ÀÀ´ä Æ÷Æ® # 110 : pop3 ¼­¹ö ÀÀ´ä Æ÷Æ® # 113 : AUTH ¼­¹ö ÀÀ´ä Æ÷Æ® # 119 : nntp ¼­¹ö ÀÀ´ä Æ÷Æ® # 443 : https ¼­¹ö ÀÀ´ä Æ÷Æ® TCP_ALLOWSPORT="21 22 23 25 53 80 110 113 119 443" ###### UDP º¯¼ö ¼³Á¤ ####### # UDPÀÇ °æ¿ì¿¡´Â ÀÌ ÇÁ·ÎÅäÄÝÀÇ Æ¯¼º»ó À§ÇèÇÑ ¼­ºñ½º°¡ ¸¹´Ù. # ÀÌ ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ¼­ºñ½º¸¦ Çã¿ëÇØ¾ß ÇÒ °æ¿ì¿¡´Â ÁÖÀǸ¦ Çϴ°ÍÀÌ ÁÁ´Ù # ¿ÜºÎ·Î ¼­ºñ½ºÇÒ µ¥¸óÀÇ Æ÷Æ® #UDP_ALLOWPORT="" UDP_DENYPORT=1024 # ƯÁ¤ È£½ºÆ®¿¡ ƯÁ¤ Æ÷Æ®¸¦ °³¹æ # ¼±º°ÀûÀΠȣ½ºÆ®¿¡ ´ëÇÏ¿© ¼±º°ÀûÀÎ ¼­ºñ½º ¿Àǰú DNS Zone Transfer¸¦ À§ÇØ # »ç¿ëÇÏ¸é Æí¸® # <È£½ºÆ®ipÁÖ¼Ò>:<Æ÷Æ®> Çü½ÄÀ¸·Î »ç¿ë #UDP_HOSTPERPORT="" # Ãâ¹ßÁö Æ÷Æ®·Î ¿ÀÇÂÀ» °áÁ¤ # Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» »ç¿ëÇϱâ À§ÇÏ¿© 1024 ÀÌÇÏÀÇ Æ¯Á¤ Æ÷Æ®¸¦ °³¹æ # 53 : dns ¼­¹ö ÀÀ´ä Æ÷Æ® UDP_ALLOWSPORT="53" ###### µðÆúÆ®º¯¼ö ¼³Á¤ ###### IPTABLES=/sbin/iptables IPADD="" # ·çÆ® ±ÇÇÑÀ¸·Î ¿î¿µµÇ´Â Æ÷Æ®µé PRIVPORTS="0:1023" # ÀÏ¹Ý ±ÇÇÑÀ¸·Îµµ ¿î¿µµÉ¼ö ÀÖ´Â Æ÷Æ®µé UNPRIVPORTS="1024:65535" # ¸®´ª½º ¸Ó½ÅÀÌ GATEWAY³ª MASQ·Î »ç¿ëµÉ °æ¿ì spoof °ø°ÝÀ̳ª Àß ¾Ë·ÁÁø # À§ÇèÇÑ ÁÖ¼Ò·Î ºÎÅÍ ¿À´Â °ø°ÝÀ» ¸·±â À§ÇÑ º¯¼ö ¼³Á¤ LOOPBACK="127.0.0.0/8" BROADCAST_SRC="0.0.0.0" BROADCAST_DEST="255.255.255.255" CLASS_A="10.0.0.0/8" CLASS_B="172.0.0.0/8" CLASS_C="192.0.0.0/8" CLASS_D_MULTICAST="224.0.0.0/4" CLASS_E_RESERVED_NET="240.0.0.0/5" ###### kernel tunable parameter ###### # ¾î¶² ÀÎÅÍÆäÀ̽º¿¡¼­µµ ping ¿¡ ¹ÝÀÀÇÏÁö ¸øÇϵµ·Ï echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # ºê·Îµåij½ºÆ®, ¸ÖƼij½ºÆ® ÁÖ¼Ò¿¡ ICMP ¸Þ¼¼Áö º¸³»´Â°Í ¸·±â. # smuf °ø°Ý ¹æÁö echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # ip ¼Ò½º ¶ó¿ìÆÃÀ» ¹æÁö(µðÆúÆ®·Î 0ÀÌ µÇ¾î ÀÖÁö¸¸ È®½ÇÇÏ°Ô Çϱâ À§ÇÔ) # ip ¼Ò½º ¶ó¿ìÆÃÀÌ Çã¿ëµÉ °æ¿ì ¸ðµç ¹æÈ­º® ¼³Á¤ÀÌ ÇÊ¿ä¾ø°Ô µÈ´Ù. for f in /proc/sys/net/ipv4/conf/*/accept_source_route do echo 0 > $f done # DOS(¼­ºñ½º ºÎÀÎ °ø°Ý)ÀÇ ¹æ¹ýÀÎ SYN AttackÀ» ¹æÁöÇϱâ À§ÇÏ¿© TCP syncookies¸¦ enable echo 1 > /proc/sys/net/ipv4/tcp_syncookies # icmp_redirect ¸Þ¼¼Áö¸¦ °ÅºÎ for f in /proc/sys/net/ipv4/conf/*/accept_redirects do echo 0 > $f done # gateway³ª Masquerading ¸Ó½ÅÀ¸·Î »ç¿ëÇÑ´Ù¸é ÀÌ ¿É¼ÇÀº ¹Ýµå½Ã Æ÷ÇÔ ÇÏ¿©¾ß ÇÑ´Ù. # echo 1 > /proc/sys/net/ipv4/ip_always_defrag # Á¤ÀǵÇÁö ¾ÊÀº ¿¡·¯ ¸Þ¼¼Áö¸¦ ¸·À½ echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # ip sppof ¹æÁö for pfile in /proc/sys/net/ipv4/conf/*/rp_filter do echo 1 > $pfile done # Log Spoofed Packets, Source Routed Packets, Redirect Packets µîÀ» ŽÁöÇÏ¸é ·Î±×ÆÄÀÏ¿¡ ±â·Ï echo 1 > /proc/sys/net/ipv4/conf/all/log_martians ##### ÃʱâÈ­ ##### # È£½ºÆ®°¡ X À©µµµµ ±ò¸®Áö ¾ÊÀº ¼­¹ö¿ëÀ¸·Î ¿î¿µµÉ °æ¿ì¿¡´Â OUTPUT ±âº» Á¤Ã¥µµ # DROPÀ¸·Î Çϴ°ÍÀÌ ¾ÈÀüÇÏ´Ù. ${IPTABLES} -F INPUT ${IPTABLES} -P INPUT DROP ${IPTABLES} -F OUTPUT ${IPTABLES} -P OUTPUT ACCEPT ${IPTABLES} -F FORWARD ${IPTABLES} -P FORWARD DROP ###### INPUT ###### ###### TCP ###### # local loopback Çã¿ë ${IPTABLES} -A INPUT -i lo -j ACCEPT # 1024 ¹Ø¿¡ ·çÆ®¿¡ ÀÇÇØ ¼­¹ö°¡ »ç¿ëÇÒ Æ÷Æ® ¿ÀÇ for values in ${TCP_ALLOWPORT} do ${IPTABLES} -A INPUT -i eth0 -p tcp --dport ${values} -j ACCEPT done # ƯÁ¤ È£½ºÆ®·ÎÀÇ Æ÷Æ®¸¦ °³¹æ #for values in ${TCP_HOSTPERPORT} #do # echo ${values} | { # IFS=':' read hosts ports # ${IPTABLES} -A INPUT -s ${hosts} -p tcp --dport ${ports} -j ACCEPT # } #done # Ãâ¹ß Æ÷Æ®°¡ Ãʱâ Á¢¼ÓÀÌ ¾Æ´Ñ °æ¿ì Çã°¡µÈ Æ÷Æ®¿¡ ´ëÇØ¼­¸¸ Çã°¡ for values in ${TCP_ALLOWSPORT} do ${IPTABLES} -A INPUT -i eth0 -p tcp ! --syn --sport ${values} ! --dport ${PRIVPORTS} -j ACCEPT done # ftp ³ë¸» ¸ðµåÀÇ °æ¿ì Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¼­¹ö·Î Á¢¼ÓÀ» ¿äûÇÒ °æ¿ì ¼­¹öÀÇ # 20Æ÷Æ®¿¡¼­ Ŭ¶óÀÌ¾ðÆ®·Î Ãʱâ Á¢¼ÓÀ» ¿äûÇϹǷΠ20¹ø Æ÷Æ®¿¡¼­ Ãʱâ Á¢¼ÓÀ» # Çã°¡ÇØÁà¾ßÇÔ ÀÌ´Â ÀÏÁ¾¿¡ º¸¾È ±¸¸ÛÀ» À¯¹ß ÇϹǷΠpassive mode ³ª proxy¸¦ # »ç¿ëÇØ¼­ ÀÌ holeÀ» ¸·À»´Â °ÍÀÌ ÁÁ´Ù # ¸¸¾à ÀÏ¹Ý ¸ðµå·ÎÀÇ Á¢¼ÓÀ» Çã¿ëÇØ¾ß ÇÑ´Ù¸é Àß ¾Ë·ÁÁø À§ÇèÇÑ Æ÷Æ®¸¦ Á¦¿ÜÇÑ # ³ª¸ÓÁö Æ÷Æ®·Î¸¸ Çã¿ëÀ» ÇØ¾ßÇÑ´Ù. # open window Æ÷Æ®·ÎÀÇ ¼­ºñ½º ¿ä±¸ °ÅºÎ ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 2000 -j LOG --log-prefix "To 20 From 2000 DROP" ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 2000 -j DROP # NFS Æ÷Æ®·ÎÀÇ ¼­ºñ½º ¿ä±¸ °ÅºÎ ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 2049 -j LOG --log-prefix "To 20 From 2049 DROP" ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 2049 -j DROP # xwindow Æ÷Æ®·ÎÀÇ ¼­ºñ½º ¿ä±¸ °ÅºÎ ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 6000:6010 -j LOG --log-prefix "To 20 From 6000:6010 DROP" ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport 6000:6010 -j DROP ${IPTABLES} -A INPUT -i eth0 -p tcp --sport 20 --dport ${UNPRIVPORTS} -j ACCEPT # 1024:65535 Æ÷Æ®´Â Ãʱâ Á¢¼ÓÀÌ ¾Æ´Ñ°æ¿ì Çã°¡ - ftp passive mode¿Í apt-get # ¿¡¼­ ÇÊ¿ä. # 1023ÀÌÇÏ Çã¿ëÇÒ Ãâ¹ß Æ÷Æ®´Â »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡ µû¶ó À§¿¡¼­ Á÷Á¢ ÁöÁ¤ ${IPTABLES} -A INPUT -i eth0 -p tcp ! --syn --sport ${UNPRIVPORTS} --dport ${UNPRIVPORTS} -j ACCEPT ###### UDP ###### # ¿­¾îÁÙ Æ÷Æ® °³¹æ 1024 ¹Ø¿¡ Æ÷Æ® # for values in ${UDP_ALLOWPORT} # do # ${IPTABLES} -A INPUT -p tcp --dport ${values} -j ACCEPT # done # ƯÁ¤ È£½ºÆ®·ÎÀÇ Æ÷Æ®¸¦ °³¹æ # for values in ${UDP_HOSTPERPORT} # do # echo ${values} | { # IFS=':' read hosts ports # ${IPTABLES} -A INPUT -s ${hosts} -p udp --dport ${ports} -j ACCEPT # } # done # »ó´ëÆí Æ÷Æ®¸¦ º¸°í Çã°¡ # UDP´Â Ư¼º»ó -syn°°Àº ¿É¼ÇÀ¸·Î Ãʱâ Á¢¼ÓÀ» Á¦ÇÑÇÒ ¼ö°¡ ¾ø´Ù. # ±×·¸±â¶§¹®¿¡ UDP ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ¼­´Â Çã°¡ÇÒ ¼­ºñ½º¿¡ ´ëÇØ »ó´çÇÑ ÁÖÀǰ¡ # ¿ä¸Á µÈ´Ù. for values in ${UDP_ALLOWSPORT} do ${IPTABLES} -A INPUT -i eth0 -p udp --sport ${values} ! --dport ${PRIVPORTS} -j ACCEPT done # ICMP # Á×À½ÀÇ ÇÎÀ̶ó ºÒ¸®´Â DOS(¼­ºñ½º °ÅºÎ)°ø°Ý¿¡ »ç¿ëµÇ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. # ³»ºÎ È£½ºÆ®¿¡ ÀÌÀÍÀÌ µÇ´Â°Í¸¸À» ¼±º°Çؼ­ Çã¿ëÇØ¾ß ÇÑ´Ù. # echo-reply (pong) - 0 # destination-unreachable - 3 # source-quench - 4 # redirect - 5 # echo-request (ping) - 8 # time-exceeded (ttl-exceeded) - 11 # parameter-problem - 12 # icmp ÆÐŶ À¯ÇüÁß echo-reply(0)¸¦ Çã°¡ÇÔ # ÀÌ È£½ºÆ®°¡ ¿ÜºÎ È£½ºÆ®·Î pingÀ» »ç¿ëÇϱâ À§ÇØ pongÀº Çã°¡ ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT # icmp ÆÐŶ À¯ÇüÁß destination-unreachable(3) À» Çã°¡ÇÔ ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT # icmp ÆÐŶ À¯ÇüÁß source-quench(4) ¸¦ Çã°¡ÇÔ ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type source-quench -j ACCEPT # host¿¡¼­ ½ÇÇàÇÏ´Â traceroute ¸¦ Çã¿ëÇϱâ À§ÇØ icmp time-exceeded(11)À» # Çã¿ë ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT # icmp ÆÐŶ À¯ÇüÁß parameter-problem(12)À» Çã°¡ÇÔ ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type parameter-problem -j ACCEPT ###### deny Á¤Ã¥ ####### # deny Á¤Ã¥À» ÇϱâÀü¿¡ ¸ÕÀú Çã°¡ÇÒ °ÍÀ» ¸í½ÃÇØ¾ß¸¸ ÇÑ´Ù. # pingÀ» ÀÌ¿ëÇÑ DOS °ø°Ý¿¡ ´ëºñÇÏ¿© echo-request¸¦ °ÅºÎ ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type echo-request -j LOG --log-prefix "PING REJECT" ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type echo-request -j REJECT # icmp-type redirect(5) °ÅºÎ # À̰ÍÀÌ Çã¿ëµÇ¸é ¿ÜºÎ¿¡¼­ ÀÌ È£½ºÆ®ÀÇ ¶ó¿ìÆÃ Å×À̺íÀ» ÀÓÀÇ·Î Á¶ÀÛÇÒ ¼ö°¡ ÀÖ°Ô µÈ´Ù. ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type redirect -j LOG --log-prefix "icmp-type 5 DROP" ${IPTABLES} -A INPUT -i eth0 -p icmp --icmp-type redirect -j DROP # ±×¿Ü Çã°¡ µÇÁö ¾ÊÀº 1023ÀÌÇÏÀÇ Æ÷Æ® ¸ðµÎ¸¦ ¸·À½ ${IPTABLES} -A INPUT -i eth0 -p tcp --dport 1:${TCP_DENYPORT} -j LOG --log-prefix "Under 1024 Tcp DROP" ${IPTABLES} -A INPUT -i eth0 -p udp --dport 1:${TCP_DENYPORT} -j LOG --log-prefix "Under 1024 Udp DROP" ${IPTABLES} -A INPUT -i eth0 -p tcp --dport 1:${TCP_DENYPORT} -j DROP ${IPTABLES} -A INPUT -i eth0 -p udp --dport 1:${TCP_DENYPORT} -j DROP # ¿ÜºÎ¿¡¼­ Çã°¡µÈ tcp Á¢¼Ó ¿äû Á¦¿ÜÇÑ ¸ðµç tcpÁ¢¼Ó ¿äûÀ» °ÅºÎÇÔ ${IPTABLES} -A INPUT -i eth0 -p tcp --syn -j LOG --log-prefix "TCP SYN REJECT" ${IPTABLES} -A INPUT -i eth0 -p tcp --syn -j REJECT # ±×¹ÛÀÇ È®ÀÎÇÒ¼ö ¾ø´Â ÆÐŶÀ» ¸ðµÎ DROP ${IPTABLES} -A INPUT -i eth0 -m state --state INVALID -j LOG --log-prefix "INVALID DROP" ${IPTABLES} -A INPUT -i eth0 -m state --state INVALID -j DROP ###### OUTPUT ###### # local loopback Àº ¸ðµç ÆÐŶÀ» Çã¿ë ${IPTABLES} -A OUTPUT -o lo -j ACCEPT #ICMP OUTPUT DROP ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j LOG --log-prefix "ICMP output DROP" ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type destination-unreachable -j LOG --log-prefix "ICMP output DROP" ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type time-exceeded -j LOG --log-prefix "ICMP output DROP" ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j DROP ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type destination-unreachable -j DROP ${IPTABLES} -A OUTPUT -o eth0 -p icmp --icmp-type time-exceeded -j DROP ###### »ç¼³ ip ¹× ±âŸ °ÅºÎ ###### ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_A} -j LOG --log-prefix "CLASS_A DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_A} -j LOG --log-prefix "CLASS_A DROP" ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_A} -j LOG --log-prefix "CLASS_A DROP" ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_A} -j LOG --log-prefix "CLASS_A DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_A} -j DROP ${IPTABLES} -A INPUT -i eth0 -d ${CLASS_A} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_A} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_A} -j DROP ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_B} -j LOG --log-prefix "CLASS_B DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_B} -j LOG --log-prefix "CLASS_B DROP" ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_B} -j LOG --log-prefix "CLASS_B DROP" ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_B} -j LOG --log-prefix "CLASS_B DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_B} -j DROP ${IPTABLES} -A INPUT -i eth0 -d ${CLASS_B} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_B} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_B} -j DROP ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_C} -j LOG --log-prefix "CLASS_C DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_C} -j LOG --log-prefix "CLASS_C DROP" ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_C} -j LOG --log-prefix "CLASS_C DROP" ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_C} -j LOG --log-prefix "CLASS_C DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_C} -j DROP ${IPTABLES} -A INPUT -i eth0 -d ${CLASS_C} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -s ${CLASS_C} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_C} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -d ${CLASS_C} -j DROP ${IPTABLES} -A INPUT -i eth0 -s ${LOOPBACK} -j LOG --log-prefix "INPUT loopback DROP" ${IPTABLES} -A OUTPUT -o eth0 -s ${LOOPBACK} -j LOG --log-prefix "INPUT loopback REJECT" ${IPTABLES} -A INPUT -i eth0 -s ${LOOPBACK} -j DROP ${IPTABLES} -A OUTPUT -o eth0 -s ${LOOPBACK} -j REJECT ${IPTABLES} -A INPUT -i eth0 -s ${BROADCAST_DEST} -j LOG --log-prefix "Broadcast_dest DROP" ${IPTABLES} -A INPUT -i eth0 -d ${BROADCAST_DEST} -j LOG --log-prefix "Broadcast_src DROP" ${IPTABLES} -A INPUT -i eth0 -s ${BROADCAST_DEST} -j DROP ${IPTABLES} -A INPUT -i eth0 -d ${BROADCAST_DEST} -j DROP # class D multicast address °ÅºÎ # multicast ´Â ¼Ò½º Áּҷδ ºÒ¹ý ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_D_MULTICAST} -j LOG --log-prefix "class D Multicast DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_D_MULTICAST} -j DROP ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_E_RESERVED_NET} -j LOG --log-prefix "class E reserved net DROP" ${IPTABLES} -A INPUT -i eth0 -s ${CLASS_E_RESERVED_NET} -j DROP # refuse addresses defined as reserved by the IANA # 0.*.*.*, 1.*.*.*, 2.*.*.*, 5.*.*.*, 7.*.*.*, 23.*.*.*, 27.*.*.* # 31.*.*.*, 37.*.*.*, 39.*.*.*, 41.*.*.*, 42.*.*.*, 58-60.*.*.* # 65-95.*.*.*, 96-126.*.*.*, 197.*.*.*, 201.*.*.* (?), 217-223.*.*.* ${IPTABLES} -A INPUT -i eth0 -s 1.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 2.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 5.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 7.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 23.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 27.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 31.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 37.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 39.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 41.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 42.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 58.0.0.0/7 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 60.0.0.0/8 -j LOG --log-prefix "IANA reserved DROP" ${IPTABLES} -A INPUT -i eth0 -s 1.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 2.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 5.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 7.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 23.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 27.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 31.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 37.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 39.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 41.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 42.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 58.0.0.0/7 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 60.0.0.0/8 -j DROP #65: 01000001 - /3 includes 64 - need 65-79 spelled out ${IPTABLES} -A INPUT -i eth0 -s 65.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 66.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 67.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 68.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 69.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 70.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 71.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 72.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 73.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 74.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 75.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 76.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 77.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 78.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 79.0.0.0/8 -j LOG --log-prefix "65-79 DROP" ${IPTABLES} -A INPUT -i eth0 -s 65.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 66.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 67.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 68.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 69.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 70.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 71.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 72.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 73.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 74.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 75.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 76.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 77.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 78.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 79.0.0.0/8 -j DROP #80: 01010000 - /4 masks 80-95 ${IPTABLES} -A INPUT -i eth0 -s 80.0.0.0/4 -j LOG --log-prefix "80-95 DROP" ${IPTABLES} -A INPUT -i eth0 -s 80.0.0.0/4 -j DROP # 96: 01100000 - /4 makses 96-111 ${IPTABLES} -A INPUT -i eth0 -s 96.0.0.0/4 -j LOG --log-prefix "96-111 DROP" ${IPTABLES} -A INPUT -i eth0 -s 96.0.0.0/4 -j DROP #126: 01111110 - /3 includes 127 - need 112-126 spelled out ${IPTABLES} -A INPUT -i eth0 -s 112.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 113.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 114.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 115.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 116.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 117.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 118.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 119.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 120.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 121.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 122.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 123.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 124.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 125.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 126.0.0.0/8 -j LOG --log-prefix "112-126 DROP" ${IPTABLES} -A INPUT -i eth0 -s 112.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 113.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 114.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 115.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 116.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 117.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 118.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 119.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 120.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 121.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 122.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 123.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 124.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 125.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 126.0.0.0/8 -j DROP #217: 11011001 - /5 includes 216 - need 217-219 spelled out ${IPTABLES} -A INPUT -i eth0 -s 217.0.0.0/8 -j LOG --log-prefix "217-219 DROP" ${IPTABLES} -A INPUT -i eth0 -s 218.0.0.0/8 -j LOG --log-prefix "217-219 DROP" ${IPTABLES} -A INPUT -i eth0 -s 219.0.0.0/8 -j LOG --log-prefix "217-219 DROP" ${IPTABLES} -A INPUT -i eth0 -s 217.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 218.0.0.0/8 -j DROP ${IPTABLES} -A INPUT -i eth0 -s 219.0.0.0/8 -j DROP #223: 11011111 - /6 masks 220-223 ${IPTABLES} -A INPUT -i eth0 -s 220.0.0.0/6 -j LOG --log-prefix "220-223 DROP" ${IPTABLES} -A INPUT -i eth0 -s 220.0.0.0/6 -j DROP