2002/07/31 14:10:12     504   
   [re] Á˼ÛÇÕ´Ï´Ù¸¸.. µµ¿ò ºÎŹµå¸³´Ï´Ù.
¹Ý°©½À´Ï´Ù. COMPUZ.com °ü¸®ÀÚÀÔ´Ï´Ù.

>°³Àμ­¹ö
>
>1. ÀÏ´Ü Çö»óȲÀº Á¢¼ÓÀº µË´Ï´Ù. ¹®Á¦´Â ¾ÆÁÖ ´À¸®´Ù´Â°Í.
>
>2. °ø°ÝÀÇ Â¡ÈÄ´Â ÀÏ´Ü 80Æ÷Æ®¿¡´ë SYN_RECV¶ó´Â ±âº»ÀûÀÎ DOS°ø°Ý¡ÈÄ°¡ º¸¿´½À´Ï´Ù.
>
>3. ¾Æ¸¶µµ Àú·± DOSÇüÅÂÀÇ °ø°ÝÀÌ °è¼ÓµÇ´Â°Å¶ó º¸¿©Áý´Ï´Ù. ±Ùµ¥ ãÀ»¼ö°¡ ¾ø½À´Ï´Ù.
>
>    ¿Ö? Æ÷Æ®°¡ .... netstat -al|grep RECVµîµî º°ÀǺ°Áþ ´ÙÇصµ ³ªÅ¸³µ´Ù »ç¶óÁ³´Ù..ÂÁ...
>
>4. ping¿¡ ´ëÇÑ °ø°ÝÀº ¾Æ¿¹ ¸øÇÏ°Ô ÀÏ´Ü ¸·¾Ò½À´Ï´Ù.
>
>5. ÇöÀç »ç¿ëÇÏ´Â FTPµ¥¸óÀº proFTPD 1.2.5¹öÀüÀÔ´Ï´Ù. standaloneÇüÅ·Πµ¹¸®°í ÀÖ½À´Ï´Ù.
>
>
>°á·ÐÀûÀ¸·Î ¸Ó..inetdµ¥¸ó¿¡ ¹°¸° ÇÁ·Î¼¼½ºµµ ´À¸®°í
>
>ftpµµ µ¢´Þ¾Æ ´À¸®°í
>
>Ȥ ÀÌ·± À¯»çÇÑ °æ¿ì¿¡ Á¢¼ÓÀº µÇÁö¸¸ ¾ÆÁÖ¾ÆÁÖ ´À¸®°Ô µÇ´Â°æ¿ì

´ÙÀ½Àº SYN_RECV °ø°Ý¿¡ ´ëÇÑ ´ëó¹ýÀ» Àû¾î³õÀº ¹®¼­Áß ÀϺÎÀÔ´Ï´Ù.
Âü°íÇϽñ⠹ٶø´Ï´Ù.
============================================================================

TCP  SYN_Flooding °ø°ÝÀÇ ¿øÀΰú ÇØ°áÃ¥
  

                       ¿À´Ã°ú ³»ÀÏ ³Ý¼¾ÅÍ È«¼®¹ü(antihong@tt.co.kr)

Áß·«.................

SYN_Flooding °ø°Ý¿¡ ´ëÇÑ ´ëºñ ¹× ÇØ°áÃ¥

±×·¸´Ù¸é ÀÌ °ø°Ý¿¡ ´ëÇØ ¾î¶»°Ô ´ëºñÇÏ¿©¾ß ÇÒ±î?

1. ¹é·Î±× Å¥¸¦ ´Ã·ÁÁØ´Ù.

Á÷°üÀûÀ¸·Î º¸¾ÒÀ» ¶§ ¼­ºñ½º °ÅºÎ¿¡ µ¹ÀÔÇÏ°Ô µÇ´Â °ÍÀº ¹é·Î±×Å¥(Backlog Queue)°¡ °¡µæ
Â÷¼­ ´Ù¸¥ Á¢¼Ó ¿ä±¸¸¦ ¹Þ¾ÆµéÀÌÁö ¸øÇϱ⠶§¹®À̹ǷΠ¹é·Î±× Å¥ÀÇ Å©±â¸¦ ´Ã·ÁÁÖ¸é µÉ °ÍÀÌ´Ù. ½ÇÁ¦·Î ¸®´ª½º¸¦ Æ÷ÇÔÇؼ­ ¸¹Àº ¿î¿µÃ¼Á¦µéÀÇ ¹é·Î±×Å¥°ªÀ» Á¶»çÇØ º¸¸é ÀÌ °ªÀÌ ÇÊ¿ä ÀÌ»óÀ¸·Î ÀÛ°Ô ¼³Á¤µÇ¾î ÀÖ¾î ÀûÀýÈ÷ ´Ã·ÁÁÖ´Â °ÍÀÌ ÁÁ´Ù.
ÇöÀç ½Ã½ºÅÛ¿¡ ¼³Á¤µÈ ¹é·Î±×Å¥ÀÇ Å©±â´Â

[root@n.t /root]# sysctl -a|grep syn_backlog
net.ipv4.tcp_max_syn_backlog = 128

¶Ç´Â
[root@n.t /root]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
128
·Î È®Àΰ¡´ÉÇϸ砠128kb ÀÎ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î ½Ã½ºÅÛÀÇ RAM ÀÌ 128M ÀÏ °æ¿ì¿¡´Â 128 À» ¼³Á¤ÇÏ°í ±× ÀÌ»óÀÏ °æ¿ì¿¡´Â 1024 Á¤µµ·Î ¼³Á¤ÇØ ÁÖ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¶§ ÁÖÀÇÇÒ Á¡Àº ÀÌ °ªÀ» ¹«ÀÛÁ¤ Å©°Ô ¼³Á¤ÇÑ´Ù°í ÁÁÀº °ÍÀº ¾Æ´Ï¸ç 1024 ÀÌ»óÀ¸·Î ¼³Á¤ÇÒ °æ¿ì´Â /usr/src/linux/include/net/tcp.h ¼Ò½º¿¡¼­ TCP_SYNQ_SIZE º¯¼ö¸¦ ¼öÁ¤ ÈÄ Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇÏ¿©¾ß ÇÑ´Ù.  ÀÌ º¯¼ö¸¦ ¼³Á¤½Ã TCP_SYNQ_HSIZE¿¡ 16À» °öÇÑ °ªÀÌ tcp_max_syn_backlog º¸´Ù´Â À۰ųª °°¾Æ¾ß Çϴµ¥,  ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â ½Ã½ºÅÛ¿¡ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸´Ï 1024 º¸´Ù ³ôÀº °ªÀ¸·Î ¼³Á¤ÇÏÁö ¸»±â ¹Ù¶õ´Ù.  ±×¸®°í ÀÌ °ªÀ» ³Ê¹« Å©°Ô ¼³Á¤ÇÏ¿´À» °æ¿ì¿¡´Â °æÇèÀûÀ¸·Î ¾Æ·¡ ¼³¸íÇÒ syncookies ±â´ÉÀÌ  Àß Àû¿ëµÇÁö ¾Ê´Â Çö»óÀÌ °¡²û È®ÀεǾú´Ù.  
ÀÌ¿Í´Â º°°³·Î ½Ã½ºÅÛÀÇ ºÎÇÏ°¡ ¸¹ÀÌ °É¸± °æ¿ì¿¡µµ ¹é·Î±×Å¥¸¦ ´Ã·ÁÁÖ¸é ÀÏÁ¤ Á¤µµÀÇ È¿°ú¸¦ º¼ ¼ö  ÀÖ´Â °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ´Ù.

¹é·Î±×Å¥ÀÇ °ªÀ» ¼³Á¤ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

[root@n.t /root]# sysctl -w net.ipv4.tcp_max_syn_backlog=1024
¶Ç´Â
[root@n.t /root]# echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
·Î Çصµ µÈ´Ù.

±×·¯³ª ÀÌ ¹æ¹ýÀº ÀÓ½ÃÀûÀÎ ´ëÃ¥ÀÏ »Ó, Áö¼ÓÀûÀ¸·Î ¸¹Àº TCP SYN Flooding °ø°ÝÀ» ´çÇÒ ¶§´Â °á±¹ ¹é·ÎÅ©Å¥°¡ °¡µæ Â÷°Ô µÇ¹Ç·Î ±Ùº»ÀûÀÎ ÇØ°á ¹æ¾ÈÀº ¾Æ´Ï´Ù.

2.  syncookies ±â´ÉÀ» ÄÒ´Ù.

Syncookies(¡°½ÅÄíÅ°¡± ¶ó°í ¹ßÀ½ÇÑ´Ù.) ´Â  "Three-way handshake" ÁøÇà °úÁ¤À» ´Ù¼Ò º¯°æÇÏ´Â °ÍÀ¸·Î  Alex Yuriev ¿Í Avi Freedman ¿¡ ÀÇÇØ Á¦¾ÈµÇ¾ú´Âµ¥, TCP header ÀÇ Æ¯Á¤ÇÑ ºÎºÐÀ» »Ì¾Æ³»¾î ¾Ïȣȭ ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÏ´Â ¹æ½ÄÀ¸·Î Three-way Handshake °¡ ¼º°øÀûÀ¸·Î ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸é ´õ ÀÌ»ó ¼Ò½º °æ·Î¸¦ °Å½½·¯ ¿Ã¶ó°¡Áö ¾Ê´Â´Ù.  µû¶ó¼­ ÀûÀýÇÑ ¿¬°á ¿äû¿¡ ´ëÇؼ­¸¸ ¿¬°áÀ» ¸Î±â À§ÇØ ¸®¼Ò½º¸¦ ¼ÒºñÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.

syncookies ±â´ÉÀº TCP_Syn_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇÑ °¡Àå È®½ÇÇÑ ¹æ¹ýÀ¸·Î ÀÌ ±â´ÉÀ» ÀÌ¿ëÇÏ·Á¸é ÀÏ´Ü Ä¿³Î ÄÄÆÄÀÏ ¿É¼Ç¿¡¼­ CONFIG_SYN_COOKIESÀÌ Y ·Î ¼±ÅõǾî ÀÖ¾î¾ß ÇÑ´Ù.

ÀÚ½ÅÀÇ Ä¿³Î ¿É¼Ç¿¡ ÀÌ ±â´ÉÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ·Á¸é
/usr/src/linux µð·ºÅ丮·Î À̵¿ÈÄ make menuconfig ÈÄ
Networking options  --->
[*]   IP: TCP syncookie support (disabled per default)  
¿Í °°ÀÌ È®ÀÎÇÏ¸é µÈ´Ù.

¸¸¾à ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾Ê´Ù¸é ¼±Åà ÈÄ Ä¿³Î ÄÄÆÄÀÏÀ» ´Ù½Ã ÇÏ¿©¾ß ÇÏÁö¸¸ ´ëºÎºÐ ¹èÆ÷ÆÇÀº ±âº»ÀûÀ¸·Î ÀÌ ¿É¼ÇÀÌ ¼±ÅõǾî ÀÖÀ¸¹Ç·Î °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
±×·¯³ª À§¿Í °°ÀÌ Ä¿³Î ¿É¼Ç¿¡ ¼³Á¤µÇ¾î ÀÖ´Ù ÇÏ´õ¶óµµ ½ÇÁ¦ syncookies Àû¿ëÀº ²¨Á® ÀÖÀ¸¹Ç·Î ÀÌ °ªÀ» ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î È°¼ºÈ­ÇØ¾ß ÇÑ´Ù.

[root@control.src]# sysctl -a|grep syncookie
net.ipv4.tcp_syncookies = 0

0 À¸·Î ¼³Á¤µÇ¾î ÀÖÀ¸¹Ç·Î  ÇöÀç syncookies´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.
µû¶ó¼­ ¾Æ·¡¿Í °°ÀÌ 1À» ¼³Á¤ÇÏ¿© syncookies ±â´ÉÀ» È°¼ºÈ­Çϵµ·Ï ÇÑ´Ù.

[root@control.src]# sysctl -w net.ipv4.tcp_syncookies=1

syncookies´Â ¹é·Î±×Å¥°¡ °¡µæ áÀ» °æ¿ì¿¡µµ Á¤»óÀûÀÎ Á¢¼Ó ¿ä±¸¸¦ °è¼Ó ¹Þ¾ÆµéÀÏ ¼ö ÀÖµµ·Ï ÇØ ÁֹǷΠ SYN_Flooding °ø°Ý¿¡ ´ëºñÇÑ °¡Àå È¿°úÀûÀÎ ¹æ¹ýÁß ÇϳªÀÌ´Ù.
¸¸¾à °ø°ÝÀ» ´çÇØ syncookies °¡ ÀÛµ¿ÇÒ ¶§¿¡´Â  /var/log/messages ÆÄÀÏ¿¡ ¾Æ·¡¿Í °°ÀÌ SynFlooding °ø°ÝÀÌ ÁøÇàÁßÀ̶ó´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù.

Jun 11 18:54:08 net kernel: possible SYN flooding on port 80. Sending cookies.

SYN_Flooding °ø°ÝÀÌ Áö¼ÓÀûÀ¸·Î ¸Å¿ì ½ÉÇÏ°Ô ÁøÇàÁßÀÏ ¶§¿¡´Â syncookies ±â´ÉÀÌ ÀÛµ¿ÇÑ´Ù ÇÏ´õ¶óµµ ³×Æ®¿öÅ©°¡ ´Ù¿îµÇ´Â Çö»óÀÌ °¡²û È®ÀεǾú´Ù. µû¶ó¼­ syncookies ±â´É ¿Ü¿¡ ¸î °¡Áö ¼³Á¤µµ ÇÔ²² Àû¿ëÇÏ´Â °ÍÀÌ ½Ã½ºÅÛÀÇ ¾ÈÁ¤¼ºÀ» À§ÇØ ±ÇÀåÇÏ´Â ¹æ¹ýÀÌ´Ù. ¾Æ¿ï·¯ ³×Æ®¿öÅ©°¡ ´Ù¿îµÇ¾úÀ» °æ¿ì¿¡´Â /etc/rc.d/init.d/network restart ·Î network ¸¦ Àç¼³Á¤ÇØ º¸°Å³ª reboot ¸¦ ÇÏ¿©¾ß ÇÑ´Ù.


3. ±âŸ ½Ã½ºÅÛÀÇ ³×Æ®¿öÅ© ¼³Á¤À» ÃÖÀûÈ­ÇÑ´Ù.

¾Æ·¡ ¼³Á¤Àº ºñ´Ü TCP Syn_Flooding °ø°Ý»Ó¸¸ÀÌ ¾Æ´Ï¶ó ´Ù¸¥ ¿©Å¸ DoS °ø°Ý¿¡µµ È¿°úÀûÀÌÀ¸·Î ¹æ¾îÇϹǷΠÀûÀýÈ÷ ¼³Á¤ÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù.

sysctl -w net.ipv4.icmp_destunreach_rate=1
# 1/100ÃÊ µ¿¾È ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â "dest unreach (type 3) icmp" ÀÇ °³¼ö

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
# Broadcast ·ÎºÎÅÍ ¿À´Â ping À» Â÷´ÜÇÔ. (Smurf °ø°ÝÀ» Â÷´ÜÇÔ)

sysctl -w net.ipv4.icmp_echoreply_rate=1
# 1/100ÃÊ¿¡ ¹ÝÀÀÇÏ´Â ping ÀÇ ÃÖ´ë ¼ýÀÚ

sysctl -w net.ipv4.icmp_echo_ignore_all=1
#¸ðµç ping À» Â÷´ÜÇÔ

sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
# IP ³ª TCP Çì´õ°¡ ±úÁø bad icmp packetÀ» ¹«½ÃÇÑ´Ù.

sysctl -w net.ipv4.icmp_paramprob_rate=1
# 1/100 ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â param probe packetsÀÇ ¼ö

sysctl -w net.ipv4.icmp_timeexceed_rate=1
# 1/100 ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â timeexceed ÆÐŶÀÇ ¼ö(traceroute ¿Í °ü·Ã)

sysctl -w net.ipv4.igmp_max_memberships=1
# 1/100 ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â igmp "memberships" ÀÇ ¼ö

sysctl -w net.ipv4.ip_always_defrag=0
# Ç×»ó ÆÐŶ Á¶°¢ ¸ðÀ½À» ÇÏÁö ¾Ê´Â´Ù.

sysctl -w net.ipv4.ip_default_ttl=64
# ¸Å¿ì º¹ÀâÇÑ »çÀÌÆ®¿¡¼­´Â ÀÌ °ªÀ» ´Ã¸®´Â °Íµµ °¡´ÉÇÏÁö¸¸
# 64·Î µÎ´Â °ÍÀÌ Àû´çÇÏ¸ç ´õ ´Ã·ÈÀ» °æ¿ì¿¡´Â Å« ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù.

sysctl -w net.ipv4.ip_forward=0
# °ÔÀÌÆ®¿þÀÌ ¼­¹ö°¡ ¾Æ´Ñ ÀÌ»ó ÆÐŶÀ» Æ÷¿öµù ÇÒ ÇÊ¿ä´Â ¾ø´Ù.

sysctl -w net.ipv4.ipfrag_time=15
# fragmented packetÀÌ ¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ´Â ½Ã°£À» 15ÃÊ·Î ¼³Á¤ÇÑ´Ù.

sysctl -w net.ipv4.tcp_syn_retries=3  
# ÀÏÁ¤ÇÑ ½Ã°£°ú IP º°·Î º¸³»°í ¹Þ´Â SYN Àç½Ãµµ Ƚ¼ö¸¦ 3ȸ·Î Á¦ÇÑÇÑ´Ù.
# ÀÌ ¿É¼ÇÀº ½ºÇªÇεÈ(À§Á¶µÈ) ÁÖ¼Ò·Î ¿À´Â SYN ¿¬°áÀÇ ¾çÀ» ÁÙ¿©ÁØ´Ù.
# ±âº»°ªÀº 5À̸ç 255¸¦ ³ÑÁö ¾Ê¾Æ¾ß ÇÑ´Ù.

sysctl -w net.ipv4.tcp_retries1=3
# ¹«¾ð°¡ ¹®Á¦°¡ ÀÖÀ» ¶§ ¿¬°áÀ» À§ÇØ Àç½Ãµµ ÇÒ È½¼ö. ÃÖ¼Ò°ª°ú ±âº»°ªÀº 3ÀÌ´Ù.

sysctl -w net.ipv4.tcp_retries2=7
# TCP ¿¬°áÀ» ²÷±â Àü¿¡ Àç½ÃµµÇÒ È½¼ö.

sysctl -w net.ipv4.conf.eth0.rp_filter=2
sysctl -w net.ipv4.conf.lo.rp_filter=2
susctl -w net.ipv4.conf.default.rp_filter=2
sysctl -w net.ipv4.conf.all.rp_filter=2
# ÀÌ ¼³Á¤Àº ÀÚ½ÅÀÇ ³×Æ®¿öÅ©°¡ ½ºÇªÇÎµÈ °ø°ÝÁöÀÇ ¼Ò½º·Î ¾²ÀÌ´Â °ÍÀ» Â÷´ÜÇÑ´Ù.
# ¸ðµç ÀÎÅÍÆäÀ̽º¿¡¼­ µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇØ reply¸¦ ÇÏ¿© µé¾î¿À´Â ÀÎÅÍÆäÀ̽º·Î ³ª°¡Áö
# ¸øÇÏ´Â ÆÐŶÀ» °ÅºÎÇÑ´Ù.  

sysctl -w net.ipv4.conf.eth0.accept_redirects=0
sysctl -w net.ipv4.conf.lo.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0
#  icmp redirects ¸¦ Çã¿ëÇÏÁö ¾Ê´Â´Ù.
# ¸¸¾à ICMP Redirect ¸¦ Çã¿ëÇÒ °æ¿ì¿¡´Â °ø°ÝÀÚ°¡ ÀÓÀÇÀÇ ¶ó¿ìÆà Å×À̺íÀ» º¯°æÇÒ ¼ö
# ÀÖ°Ô µÇ¾î ÀÚ½ÅÀÌ ÀǵµÇÏÁö ¾Ê´Â °æ·Î, Áï °ø°ÝÀÚ°¡ ÀǵµÇÑ °æ·Î·Î Æ®·¡ÇÈÀÌ Àü´ÞµÉ ¼ö
# ÀÖ´Â À§ÇèÀÌ ÀÖ´Ù.

sysctl -w net.ipv4.conf.eth0.accept_source_route=0
sysctl -w net.ipv4.conf.lo.accept_source_route=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.all.accept_source_route=0
# ½ºÇªÇÎÀ» ¸·±â À§ÇØ source route ÆÐŶÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
# ¼Ò½º ¶ó¿ìÆÃÀ» Çã¿ëÇÒ °æ¿ì ¾ÇÀÇÀûÀÎ °ø°ÝÀÚ°¡ IP ¼Ò½º ¶ó¿ìÆÃÀ» »ç¿ëÇؼ­ ¸ñÀûÁöÀÇ °æ·Î# ¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ°í, ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿À´Â °æ·Îµµ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
# ÀÌ·¯ÇÑ ¼Ò½º ¶ó¿ìÆÃÀÌ °¡´ÉÇÑ °ÍÀ» ÀÌ¿ëÇØ  °ø°ÝÀÚ°¡ ¸¶Ä¡ ½Å·Ú¹Þ´Â È£½ºÆ®³ª
# Ŭ¶óÀ̾ðÆ®ÀÎ°Í Ã³·³ À§ÀåÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.


sysctl -w net.ipv4.conf.eth0.bootp_relay=0
sysctl -w net.ipv4.conf.lo.bootp_relay=0
sysctl -w net.ipv4.conf.default.bootp_relay=0
sysctl -w net.ipv4.conf.all.bootp_relay=0
# bootp ÆÐŶÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù.

sysctl -w net.ipv4.conf.eth0.log_martians=1
sysctl -w net.ipv4.conf.lo.log_martians=1
sysctl -w net.ipv4.conf.default.log_martians=1
sysctl -w net.ipv4.conf.all.log_martians=1
# ½ºÇªÇÎµÈ ÆÐŶÀ̳ª ¼Ò½º¶ó¿ìÆÃ,  Redirect ÆÐŶ¿¡ ´ëÇØ ·Î±×ÆÄÀÏ¿¡ Á¤º¸¸¦ ³²±ä´Ù.

sysctl -w net.ipv4.conf.eth0.secure_redirects=0
sysctl -w net.ipv4.conf.lo.secure_redirects=0
sysctl -w net.ipv4.conf.default.secure_redirects=0
sysctl -w net.ipv4.conf.all.secure_redirects=0
# °ÔÀÌÆ®¿þÀ̷κÎÅÍÀÇ redirect ¸¦ Çã¿ëÇÏÁö ¾ÊÀ½À¸·Î½á ½ºÇªÇÎÀ» ¸·±â À§ÇØ ¼³Á¤ÇÑ´Ù.

sysctl -w net.ipv4.conf.eth0.send_redirects=0
sysctl -w net.ipv4.conf.lo.send_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
# icmp redirects ¸¦ º¸³»Áö ¾Ê´Â´Ù.

sysctl -w net.ipv4.conf.eth0.proxy_arp=0
sysctl -w net.ipv4.conf.lo.proxy_arp=0
sysctl -w net.ipv4.conf.default.proxy_arp=0
sysctl -w net.ipv4.conf.all.proxy_arp=0
# proxy arp ¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù. ÀÌ °ªÀÌ 1·Î ¼³Á¤µÇ¾úÀ» °æ¿ì proxy_arp °¡ ¼³Á¤µÈ ÀÎÅÍÆä
# À̽º¿¡ ´ëÇØ arp ÁúÀÇ°¡ µé¾î¿ÔÀ» ¶§ ¸ðµç ÀÎÅÍÆäÀ̽º°¡ ¹ÝÀÀÇÏ°Ô µÈ´Ù.

sysctl -w net.ipv4.tcp_keepalive_time=30
# ÀÌ¹Ì ÇÁ·Î¼¼½º°¡ Á¾·áµÇ¾î ºÒÇÊ¿äÇÏ°Ô ³²¾Æ ÀÖ´Â ¿¬°áÀ» ²÷´Â ½Ã°£À» ÁÙÀ̵µ·Ï ÇÑ´Ù.

sysctl -w net.ipv4.tcp_fin_timeout=30
# ¿¬°áÀ» Á¾·á½Ã ¼Ò¿äµÇ´Â ½Ã°£À» ÁÙ¿©ÁØ´Ù. (±âº» ¼³Á¤°ª : 60)

sysctl -w net.ipv4.tcp_tw_buckets=720000
# µ¿½Ã¿¡ À¯Áö °¡´ÉÇÑ timewait ¼ÒÄÏÀÇ ¼öÀÌ´Ù. ¸¸¾à ÁöÁ¤µÈ ¼ýÀÚ¸¦ ÃÊ°úÇÏ¿´À» °æ¿ì¿¡´Â
# timewait ¼ÒÄÏÀÌ ¾ø¾îÁö¸ç °æ°í ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù. ÀÌ Á¦ÇÑÀº ´Ü¼øÇÑ DoS °ø°ÝÀ» Â÷´ÜÇÏ
# ±â À§ÇØ Á¸ÀçÇϴµ¥, ÀÓÀÇ·Î ÀÌ °ªÀ» ÁÙ¿©¼­´Â ¾È µÇ¸ç ¸Þ¸ð¸®°¡ ÃæºÐÇÏ´Ù¸é ÀûÀýÇÏ°Ô ´Ã
# ·ÁÁÖ´Â °ÍÀÌ ÁÁÀºµ¥,  64M ¸¶´Ù 180000 À¸·Î ¼³Á¤ÇÏ¸é µÈ´Ù. µû¶ó¼­ 256M ÀÏ °æ¿ì¿¡´Â
# 256/4=4 4*180000=720000 À» Àû¿ëÇÏ¸é µÈ´Ù.

sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_max_ka_probes=100
# °£´ÜÇÑ DoS °ø°ÝÀ» ¸·¾ÆÁØ´Ù.

À§ÀÇ ¸ðµç ¼³Á¤Àº ÀçºÎÆà ÈÄ¿¡ ¿ø·¡ÀÇ °ªÀ¸·Î ´Ù½Ã ÃʱâÈ­µÇ¹Ç·Î  /etc/rc.d/rc.local ¿¡ µÎ¾î ºÎÆýø¶´Ù ½ÇÇàÇϵµ·Ï ÇÏ¿©¾ß ÇÑ´Ù.  ±×¸®°í ¸®´ª½ºÀÇ ¹öÀüÀÌ ³·¾Æ sysctl ¸í·É¾î°¡ ¾ø´Â °æ¿ì¿¡´Â
echo 0 or 1 > /proc/sys/net/* ¿Í °°ÀÌ Á÷Á¢ /proc ÀÌÇÏÀÇ °ªÀ» Á÷Á¢ ¼³Á¤ÇØ Á־ µÈ´Ù.
echo ¸í·É¾î ¿ª½Ã ÀçºÎÆõǸé ÃʱâÈ­µÇ¹Ç·Î /etc/rc.d/rc.local ¿¡ ¼³Á¤ÇØ µÎ¾î¾ß ÀçºÎÆÃÈÄ¿¡µµ Àû¿ëÀÌ µÈ´Ù.  
¾Æ¿ï·¯ ·¹µåÇÞ 6.2 ÀÌ»óÀÏ °æ¿ì¿¡´Â /etc/sysctl.conf ÆÄÀÏ¿¡ net.ipv4.tcp_syncookies=1 ¿Í °°ÀÌ ¼³Á¤ÇÑ ÈÄ network ¸¦ restart ÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.
  

4. ±×¿Ü SYN_Flooding ¿¡ ´ëÇÑ º¸Ãæ ¼³¸í ¸î °¡Áö


(1)  À§¿¡¼­ ¼³¸íÇÑ ¹æ¹ý ¿Ü¿¡ Ãß°¡ÀûÀ¸·Î ¼³Á¤ÇÒ ¸¸ÇÑ ¸î °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
RFC 1918 ¿¡ ÀÇÇØ ³»ºÎ(Private) IP¸¦ ¼Ò½º·Î µé¾î¿À´Â Æ®·¡ÇÈÀ» Â÷´ÜÇÑ´Ù.
127.0.0.0, 10.0.0.0, 172.16.0.0, 192.168.0.0 µîÀº Private IP ·Î¼­ ³»ºÎÀÇ °¡»ó IP ¸¦ »ç¿ëÇÒ ¶§  ¾²ÀÌ´Â ÁÖ¼ÒÀ̸ç ÀϹÝÀûÀ¸·Î ÀÌ·¯ÇÑ IP¸¦ ¼Ò½º ÁÖ¼Ò·Î ¶ó¿ìÆÃÀÌ µÉ ¼ö ¾ø´Ù.
µû¶ó¼­ ¾Æ·¡¿Í °°ÀÌ ºñÁ¤»óÀûÀÎ IP ÁÖ¼Ò¸¦ ¼Ò½º·Î Çؼ­ µé¾î¿À´Â Æ®·¡ÇÈÀ» Â÷´ÜÇÑ´Ù.

iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
# »ç¼³ IP ¸¦ Â÷´ÜÇÑ´Ù.
# /8, /16 µîÀº CIDR ¶ó Çϸç /8 Àº A Class, /16 Àº B Class ¸¦ ¶æÇÑ´Ù.

iptables -A INPUT -s 255.255.255.255/32 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
# ÀϹÝÀûÀ¸·Î ¶ó¿ìÆÃÀÌ µÇÁö ¾Ê´Â IP ´ë¿ªÀ» Â÷´ÜÇÑ´Ù.

iptables -A INPUT  -s 240.0.0.0/5 -j DROP
# IANA ¿¡ ¿¹¾àµÈ ÁÖ¼Ò¸¦ Â÷´ÜÇÑ´Ù.

iptables -A INPUT  -s 211.2.3.4 -j DROP
# ¾Æ¿ï·¯ ÀÚ±â ÀÚ½ÅÀÇ IP ¸¦ ¼Ò½º·Î ÇÏ´Â ÆÐŶµµ ÇÊÅ͸µÇÑ´Ù.(211.2.3.4 ´ë½Å ÀÚ½ÅÀÇ IPÀÔ·Â)
# ÀÚ½ÅÀÇ IP ¸¦ ¼Ò½º·Î Çؼ­ ÆÐŶÀÌ µé¾î¿Ã ¼ö´Â ¾ø´Ù.

ÀÚ½ÅÀÇ ½Ã½ºÅÛÀÌ Kernel 2.4 ÀÌÀü ¹öÀüÀÇ °æ¿ì¿¡´Â iptables ´ë½Å ipchains ¸¦ »ç¿ëÇϹǷÎ
ipchains -A input -s 10.0.0./8 -j DENY ¿Í °°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÏ¸é µÈ´Ù.
¸¸¾à iptables °¡ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀ¸¸é http://netfilter.kernelnotes.org/ ¿¡ Á¢¼Ó ÈÄ ÃֽŠ¹öÀüÀÇ iptables.tar ¸¦ ´Ù¿î·Îµå ¹Þ¾Æ ¾ÐÃàÇØÁ¦ ÈÄ make; make install ·Î ¼³Ä¡ÇÏ¸é µÈ´Ù.
ÇöÀç ¸®´ª½º ½Ã½ºÅÛÀÇ Kernel ¹öÀüÀº uname –r À» ÀÔ·ÂÇϸé È®ÀÎÇÒ ¼ö ÀÖ´Ù.
¾Æ¿ï·¯ ¾Æ·¡´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ ¶ó¿ìÆà µÉ ¼ö ¾ø´Â IP ´ë¿ªÀ̹ǷΠ ÇÊÅ͸µ ÇÏ¿©¾ß ÇÒ IP ÀÌ´Ù.

0.0.0.0/8           - Historical Broadcast
10.0.0.0/8          - RFC 1918 ¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
127.0.0.0/8         - Loopback
169.254.0.0/16      - Link Local Networks
172.16.0.0/12       - RFC 1918 ¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
192.0.2.0/24        - TEST-NET
192.168.0.0/16      - RFC 1918¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
224.0.0.0/4         - Multicast D Class
240.0.0.0/5         - ¿¹¾àµÈ E Class
248.0.0.0/5         - ¹ÌÇÒ´ç
255.255.255.255/32  - ºê·Îµåij½ºÆ®

(2) ÀÓÀÇÀÇ IP °¡ ¾Æ´Ñ ƯÁ¤ÇÑ IP¸¦ ¼Ò½º ÁÖ¼Ò·Î °è¼ÓÀûÀ¸·Î SYN °ø°ÝÀÌ ÀÌ·ç¾î Áú °æ¿ì¿¡´Â ÇØ´ç IP ¸¦ Â÷´ÜÇÏ´Â °Íµµ ÁÁÀº ¹æ¹ýÀÌ´Ù.
¸¸¾à 211.2.3.4 ¿¡¼­ Áö¼ÓÀûÀ¸·Î °ø°ÝÀÌ µé¾î¿Ã ¶§´Â ¾Æ·¡¿Í °°ÀÌ Â÷´ÜÇÒ ¼ö ÀÖ´Ù.

iptables -A INPUT -s 211.2.3.4 -j DROP (Kernel 2.4.x ¹öÀü)
ipchains -A input  -s 211.2.3.4 -j DENY (Kernel 2.4 ÀÌÀü ¹öÀü)

¶Ç´Â
route add -host 211.2.3.4 reject ·Î ÇÑ´Ù.
¸¸¾à 211.2.3.X ´ë¿ª Àüü¸¦ Â÷´ÜÇÏ·Á¸é 211.2.3.0/24 ¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.
(/24 ´Â C Class ¸¦ ¶æÇÑ´Ù.)
±×·¯³ª À§¿Í °°ÀÌ route º¸´Ù´Â iptables ³ª ipchains ·Î Â÷´ÜÇÏ´Â °ÍÀÌ ´õ È¿°úÀûÀÌ´Ù.

¸¸¾à ÀÓÀÇÀÇ IP·Î °ø°ÝÁö¸¦ »ý¼ºÇÑ´Ù¸é SYN_RECEIVED ·Î º¸ÀÌ´Â IP Áß¿¡´Â ½ÇÁ¦ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇ¾î ÀÖ´Â IP µµ ÀÖÀ» °ÍÀÌ°í ±×·¸Áö ¾ÊÀº IP µµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ½ÇÁ¦ °ø°ÝÀ» ´çÇÒ ¶§ °ø°ÝÁö IP ¸¦ °ËÃâÇØ º¸¸é ¸ðµÎ ping ÀÌ µÇÁö ¾Ê´Â ½ÇÁ¦ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇÁö ¾ÊÀº IP ÁÖ¼ÒÀÌ´Ù. ¾î°¼­ ÀÌ·± Çö»óÀÌ ÀϾ±î? ÀÌ´Â ¾Õ¿¡¼­ ¼³¸íÇÑ TCP ÀÇ 3 Way-Handshake ¿ø¸®¸¦ Àß »ý°¢Çغ¸¸é ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù.
Áï, ¹«ÀÛÀ§·Î »ý¼ºµÈ IP ¸¦ ¼Ò½º·Î ÇÑ SYN ÆÐŶÀ» ¹ÞÀº ¼­¹ö´Â, ¿äûÀ» ¹ÞÀº ¸ðµç IP ·Î SYN+ACK ÆÐŶÀ» º¸³½´Ù. ±×·±µ¥, Á¤ÀÛ ½ÇÁ¦·Î ÇØ´ç IP ¸¦ »ç¿ëÁßÀΠȣ½ºÆ®´Â SYN ÆÐŶÀ» º¸³»Áöµµ ¾Ê¾Ò´Âµ¥, °ø°ÝÀ» ¹ÞÀº ¼­¹ö·ÎºÎÅÍ ¿µ¹®µµ ¸ð¸£´Â SYN+ACK ¸¦ ¹Þ¾ÒÀ¸¹Ç·Î ÀÌ ÆÐŶÀ» ºñÁ¤»óÀûÀÎ ÆÐŶÀ¸·Î °£ÁÖÇÏ°í ÇØ´ç ÆÐŶÀ» ¸®¼Â(RST)ÇÏ¿© ÃʱâÈ­ ½ÃŲ´Ù.
±×¸®°í ½ÇÁ¦ Á¸ÀçÇÏÁö ¾Ê´Â IP ¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ. °ø°ÝÀ» ´çÇÑ ¼­¹ö°¡ ÇØ´ç IP·ÎºÎÅÍ  SYN ÆÐŶÀ» ¹Þ¾Ò´Ù°í ÆÇ´Ü(½ÇÁ¦·Î´Â À§Á¶µÈ ÆÐŶÀÌÁö¸¸) ÇÏ¿© SYN+ACK ÆÐŶÀ» ¹ß¼Û ÈÄ ACK ÆÐŶÀ» °è¼Ó ±â´Ù¸®Áö¸¸ ÇØ´ç IP ´Â ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î SYN+ACK ÆÐŶÀ» ¹ÞÀ» ¼öµµ ¾øÀ» »Ó´õ·¯ ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ACK ÆÐŶÀ» ¹ß¼ÛÇÏÁö ¾ÊÀ» °ÍÀÓÀº ºÒÀ» º¸µí »·ÇÑ °ÍÀÌ°í, °á±¹ °ø°ÝÀ» ¹Þ´Â ¼­¹ö´Â Á¸ÀçÇÏÁöµµ ¾Ê´Â IP ·ÎºÎÅÍ ACK ÆÐŶÀ» ¹ÞÀ» °Í¸¸À» ±â´Ù¸®¸ç ¹é·Î±×Å¥´Â °¡µæ Â÷°Ô µÇ´Â °ÍÀÌ´Ù.  ÀÌ°ÍÀÌ ¹é·Î±×Å¥°¡ °¡µæ Â÷°Ô µÇ´Â ÀÌÀ¯ÀÌ¸ç ¹é·Î±×Å¥¸¦ °¡µæ ä¿ì´Â IP°¡  ¸ðµÎ ½ÇÁ¦·Î´Â Á¸ÀçÇÏÁö ¾Ê´Â IP µéÀÎ °ÍÀÌ´Ù. µû¶ó¼­ °ø°ÝÀÚÀÇ ÀÔÀå¿¡¼­´Â ÀÎÅͳݻ󿡼­ ¶ó¿ìÆÃÀÌ µÇÁö ¾Ê´Â IP ¸¦ ¼Ò½º IP ·Î ÇÏ¿© °ø°ÝÇÏ´Â °ÍÀÌ °¡Àå È¿°úÀûÀÏ °ÍÀÌ´Ù. Áï ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖ´Â IP ¸¦ ¼Ò½º ÁÖ¼Ò·Î ÇÏ¿© SYN Flooding °ø°ÝÇÏ´Â °ÍÀº Àǹ̰¡ ¾ø´Ù.


(3) ½ÇÁ¦ °ø°ÝÁö IP¸¦ ÃßÀûÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù.
´ëºÎºÐÀÇ DoS °ø°ÝÀÌ ±×·¯ÇϵíÀÌ SYN_Flooding °ø°Ýµµ ¼Ò½ºIP¸¦ ¼Ó¿©¼­ µé¾î¿À±â ¶§¹®¿¡ netstat À¸·Î º¸ÀÌ´Â IP¸¦ ½ÇÁ¦ °ø°ÝÁö IP ¶ó°í ÆÇ´ÜÇؼ­ ÇØ´ç IP·Î ¿ª°ø°ÝÀ» Çؼ­´Â ¾È µÈ´Ù.  °ø°ÝÀ» ´çÇÏ´Â ¸®´ª½º ¼­¹ö¿¡¼­ °ø°ÝÁö¸¦ ¾Æ´Â ¹æ¹ýÀº ¾øÀ¸¸ç »óÀ§ ¶ó¿ìÅÍ¿Í ÇØ´ç ¶ó¿ìÅÍ°¡ ¿¬°áµÇ¾î ÀÖ´Â ISP ¾÷ü¿Í ±ä¹ÐÇÏ°Ô ÇùÁ¶°¡ µÇ¾úÀ» ¶§¶ó¾ß  ±×³ª¸¶ ÃßôÀÌ °¡´ÉÇÏ´Ù.
±×·¯³ª »ç½Ç»ó ÇùÁ¶°¡ ÀÌ·ç¾îÁ®µµ ÃßôÇϱâ¶õ ¸Å¿ì ¾î·Á¿îµ¥, ¸¸¾à ¶ó¿ìÆà °æ·Î°¡ 20°³ÀÌ»ó µÇ´Â °÷¿¡¼­ °ø°ÝÇÑ´Ù¸é 20°³ ¶ó¿ìÅ͸¦ °ü¸®ÇÏ´Â ¸ðµç °ü¸®ÀÚ¿Í µ¿½Ã¿¡ ÇùÁ¶°¡ ÀÌ·ç¾îÁ®¾ßÇÏ°í °ø°ÝÀÌ ½ÇÁ¦ ÀÌ·ç¾îÁö°í ÀÖ´Â ´ç½Ã¿¡  ÃßôÀÌ µÇ¾î¾ß ÇϹǷΠ¸Å¿ì ¾î·Æ´Ù°í ÇÒ ¼ö ÀÖ´Ù.    °á·ÐÀûÀ¸·Î °ø°ÝÁö IP ¸¦ ÃßôÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù.
±×¸®°í, Âü°íÀûÀ¸·Î ½Ã½ºÅÛ¿¡¼­ À§Á¶µÈ ÆÐŶÀ» »ý¼ºÇÏ´Â °ÍÀº ¿ÀÁ÷ root ¸¸ÀÌ °¡´ÉÇϹǷΠ°ø°ÝÀÚ´Â °ø°ÝÁö ½Ã½ºÅÛÀÇ root ¼ÒÀ¯·Î SYN Flooding °ø°ÝÀ» ÇÏ´Â °ÍÀ̶ó´Â »ç½ÇÀ» Âü°íÇϱ⠹ٶõ´Ù.


(4) Virtul-Sever Ä¿³Î ÆÐÄ¡¸¦ ÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.
ÀÌ Ä¿³Î ÆÐÄ¡¸¦ ÇÏ¿´À» °æ¿ì¿¡´Â ¸î °¡Áö DoS °ø°ÝÀ» Â÷´ÜÇÒ ¼ö ÀÖ´Ù. VirtualServer¶õ ¸» ±×´ë·Î ·Îµå ¹ë·£½ÌµîÀÇ Å¬·¯½ºÅ͸µ ½Ã½ºÅÛÀ» ±¸¼ºÇÒ ¶§ ÇÊ¿äÇÑ Ä¿³Î ÆÐÄ¡·Î¼­ ÆÐÄ¡¸¦ ÇÑ ÈÄ  sysctl -a|grep .vs. ·Î È®ÀÎÇØ º¸¸é ¸î °¡Áö ¼³Á¤ÀÌ Ãß°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ÀÌ ¹æ¹ý¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ ¾È³»´Â http://www.linuxvirtualserver.org/defense.html ¸¦ Âü°íÇϱ⠠¹Ù¶õ´Ù.

(5) ¶ó¿ìÅͳª ¹æÈ­º®¿¡¼­ Â÷´Ü °¡´ÉÇÏ´Ù.
¶ó¿ìÅÍµî ³×Æ®¿öÅ© Àåºñ·Î À¯¸íÇÑ CISCO ¿¡¼­´Â TCP SYN_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇØ TCP Intercept ¶ó´Â ¼Ö·ç¼ÇÀ» Á¦¾ÈÇß´Ù.  TCP Intercept ´Â µÎ °¡Áö ¹æ½ÄÀ¸·Î ±¸Çö°¡´ÉÇѵ¥ , ù¹ø° ¹æ½ÄÀº ¡°ÀÎÅͼÁÆ® ¸ðµå¡± ¶ó ÇÏ¿© ¸» ±×´ë·Î ¶ó¿ìÅÍ·Î µé¾î¿À´Â SYN ÆÐŶ ¿äûÀ» ±×´ë·Î ¼­¹ö¿¡ ³Ñ°ÜÁÖÁö ¾Ê°í ¶ó¿ìÅÍ¿¡¼­ ÀÏ´Ü °¡·Îä¾î(Intercept ÇÏ¿©) ¼­¹ö¸¦ ´ë½ÅÇÏ¿© SYN ÆÐŶÀ» ¿äûÇÑ Å¬¶óÀ̾ðÆ®¿Í ¿¬°áÀ» ¸Î°í, ¿¬°áÀÌ Á¤»óÀûÀ¸·Î ÀÌ·ç¾îÁö¸é À̹ø¿¡´Â Ŭ¶óÀ̾ðÆ®¸¦ ´ë½ÅÇÏ¿© ¼­¹ö¿Í ¿¬°áÀ» ¸ÎÀº ´ÙÀ½ µÎ ¿¬°áÀ» Åõ¸íÇÏ°Ô Æ÷¿öµùÇÏ¿© ¿¬°á½ÃÄÑÁÖ´Â ¹æ½ÄÀÌ´Ù.  µû¶ó¼­ Á¸ÀçÇÏÁö ¾Ê´Â IP ·ÎºÎÅÍ ¿À´Â SYN ¿äûÀº ¼­¹ö¿¡ µµ´ÞÇÏÁö ¸øÇÏ°Ô µÇ´Â °ÍÀÌ´Ù. µÎ¹ø° ¹æ½ÄÀº ¡°¿ÍÄ¡(watch) ¸ðµå¡± ¶ó ÇÏ¿© ¡°ÀÎÅͼÁÆ® ¸ðµå¡±¿Í´Â ´Þ¸® ¶ó¿ìÅ͸¦ Åë°úÇÏ´Â SYNÆÐŶÀ» ±×´ë·Î Åë°ú½ÃÅ°°í ÀÏÁ¤ ½Ã°£µ¿¾È ¿¬°áÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸é ¶ó¿ìÅÍ°¡ Áß°£¿¡¼­ SYN ÆÐŶÀ» Â÷´ÜÇÏ´Â ¹æ½ÄÀÌ´Ù.  ¸î¸î ¹æÈ­º®¿¡¼­µµ À§ÀÇ µÎ °¡Áö ¹æ½ÄÀ¸·Î SYN Flooding À» Â÷´ÜÇÏ°í ÀÖ´Ù.   ½ÇÁ¦·Î tcp intercept ¸¦ ¼³Á¤ÇÏ¿© Å×½ºÆ® °á°ú ¼­¹ö ·¹º§¿¡´Â ÀüÇô ½ºÇªÇÎµÈ SYN ÆÐŶÀÌ º¸³»ÁöÁö ¾Ê¾Æ SYN_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇÑ °¡Àå È®½ÇÇÑ ¹æ¹ýÀ̱â´Â ÇßÁö¸¸ ¾Æ½±°Ôµµ ¶ó¿ìÅÍÀÇ CPU, Memory ºÎÇÏ°¡ ³Ê¹« ³ô¾ÆÁö´Â ´ÜÁ¡ÀÌ ÀÖ¾ú´Ù. ÀÌ ¼³Á¤¿¡ ´ëÇØ ±Ã±ÝÇϽŠºÐÀº http://www.cisco.com/ Á¢¼ÓÈÄ "tcp intercept" ·Î °Ë»öÇØ º¸±â ¹Ù¶õ´Ù. ÀÌ ¼³Á¤À» ÇßÀ» °æ¿ì¿¡´Â ¸ðµç ÆÐŶ¿¡ ´ëÇØ ÀÎÅͼÁÆ®¸¦ ÇϹǷΠƮ·¡ÇÈÀÌ ¸¹À» °æ¿ì¿¡´Â ¶ó¿ìÅÍ°¡ ´Ù¿îµÇ´Â °æ¿ìµµ ÀÖÀ¸´Ï ¼³Á¤½Ã °¢º°È÷ ÁÖÀÇÇϱ⠹ٶõ´Ù.


(6)  Windows NT/2000 °è¿­¿¡¼­´Â Registry°ªÀ» ¼öÁ¤ÇÔÀ¸·Î½á Æ©´×ÀÌ °¡´ÉÇÏ´Ù.
ÀÌ °ª¿¡ ´ëÇÑ Æ©´×Àº Microsoft ÀÇ technical page ³ª
http://packetstorm.securify.com/groups/rhino9/synflood.doc ¸¦ ´Ù¿î·Îµå ¹Þ¾Æ Âü°íÇϱ⠹ٶõ´Ù.
AIX³ª Solarisµî ´Ù¸¥ UNIX °è¿­¿¡ ´ëÇÑ Æ©´×Àº
http://www.cymru.com/~robt/Docs/Articles/ip-stack-tuning.html ¸¦ Âü°íÇϱ⠹ٶõ´Ù.


(7) CRON À» ÀÌ¿ëÇØ SYN_Flooding °ø°ÝÀ» °¨ÁöÇÑ´Ù.
¾Æ¹«¸® Æ©´×À» Àß Çß´Ù ÇÏ´õ¶óµµ ÁýÁßÀûÀ¸·Î SYN Flooding °ø°ÝÀ» ¹ÞÀ» ¶§´Â ³×Æ®¿öÅ©³ª ¼­ºñ½º µ¥¸óÀÌ ÀÌ»ó ÀÛµ¿ÇÒ  ¼öµµ  ÀÖ´Ù. ±×·¡¼­ ÀÌ»ó Çö»óÀÌ ³ªÅ¸³ª±â Àü¿¡ ÀÏÁ¤ ½Ã°£¸¶´Ù ½Ã½ºÅÛ¿¡ ·Î±×ÀÎÇÏ¿© netstat À¸·Î  È®ÀÎÇÒ ¼ö ÀÖ°ÚÁö¸¸ ¾ðÁ¦ °ø°ÝÀÌ µé¾î¿Ã ÁÙ ¾Ë°í ÁöÄѺ¸°í Àְڴ°¡?    ±×·¡¼­ ÇÊÀÚ´Â SYN Flooding À» °¨ÁöÇϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ Â¥¼­ °ø°ÝÀÌ È®ÀÎµÇ¸é ¸ÞÀÏ·Î Å뺸µÇµµ·Ï ÇÏ¿© »ç¿ëÁßÀÌ´Ù.

#!/usr/bin/perl

$TASK = `netstat -na|grep SYN_RECV`;
$HOSTNAME = `/bin/hostname`;
$TO_MAIL      = 'antihong@tt.co.kr';      
$SUBJECT      = "$HOSTNAME SYN_FLOODING °ø°Ý °¨Áö";
$MAIL_PROGRAM  = "/usr/sbin/sendmail";

if ($TASK){
  $TASK_CONFIRM = `netstat -na|grep SYN_RECV|wc -l`;

if($TASK_CONFIRM > 20){
`/etc/rc.d/init.d/httpd stop`;
`/etc/rc.d/init.d/httpd start`;
$HTTP_DONE ="httpd was Refreshed!!\n";
}

open(MAIL, "|$MAIL_PROGRAM -t");
    print MAIL "To: $TO_MAIL \n";
    print MAIL "Subject: $SUBJECT \n\n";
    print MAIL "$HOSTNAME Server is Attacked by SYN_Flooding!!!\n";
print MAIL "SYN_Flooding Process Number :$TASK_CONFIRM \n";
    print MAIL "$HTTP_DONE\n";
    print MAIL "$TASK \n";
close(MAIL);
}


À§ ÆÄÀÏÀÇ ³»¿ëÁß $TO_MAIL Àº °ø°Ý °¨Áö½Ã Å뺸µÉ ¸ÞÀÏ ÁÖ¼ÒÀ̹ǷΠÀÚ½ÅÀÇ e-mail ÁÖ¼Ò·Î º¯°æÇÏ°í, ºÒ¿ÏÀüÇÑ SYN ÆÐŶÀÌ 20°³ ÀÌ»óÀÏ °æ¿ì ($TASK_CONFIRM > 20)
`/etc/rc.d/init.d/httpd stop`; °ú  `/etc/rc.d/init.d/httpd start`; À¸·Î  À¥µ¥¸óÀ» ¸ØÃß¾ú´Ù°¡ ½ÃÀÛÇϵµ·Ï ¼³Á¤ÇÏ¿´´Âµ¥, ÀÌ´Â ÀÚ½ÅÀÇ ¼³Á¤¿¡ ¸Â°Ô ÀûÀýÈ÷ ¼öÁ¤Çϵµ·Ï ÇÑ´Ù.
¹°·Ð SYN Flooding °ø°ÝÀÌ Æ¯Á¤ Æ÷Æ®¿¡ ´ëÇؼ­¸¸ °¡´ÉÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ °ÅÀÇ 80¹ø Æ÷Æ®¿¡ ´ëÇØ ÁýÁßÀûÀ¸·Î ÀÌ·ç¾îÁö°í ÀÖÀ¸¹Ç·Î À¥µ¥¸óÀ» ¿¹·Î ¼³Á¤ÇÑ °Í »ÓÀÌ´Ù.

À§ ÆÄÀÏÀÇ ³»¿ëÀ» /etc/cron.5min/ À̶ó´Â µð·ºÅ丮¿¡ µÎ°í ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï 700 À¸·Î ¼³Á¤ÇØ µÐ´Ù. ±×¸®°í /etc/crontab ÆÄÀÏÀ» ¿­¾î ¾Æ·¡ ³»¿ëÀ» Ãß°¡Çϸé 5ºÐ¸¶´Ù SYN_Flooding ¿©ºÎ¸¦ üũÇÏ¿© °ø°ÝÀÌ È®Àνà ÁöÁ¤µÈ ¸ÞÀÏ ÁÖ¼Ò·Î Å뺸ÇØ ÁØ´Ù..

59/5 * * * * root run-parts /etc/cron.5min/

===============================================================================

À§ÀÇ ¼³Á¤À¸·Î ÀÎÇÑ ¿À·ù ¹× ÇÇÇØ¿¡ ´ëÇÑ Ã¥ÀÓÀº ÀüÀûÀ¸·Î Àû¿ëÇϽźп¡°Ô ÀÖ½À´Ï´Ù.
ÀúÈñ´Â ÀÌ ¹®¼­¸¦ ÂüÁ¶¸¸ ÇϽöó°í ¼Ò°³ÇØ µå¸³´Ï´Ù.

°¨»çÇÕ´Ï´Ù.

Ä¿¹Â´ÏƼ¸¦ ²Þ²Ù´Â... Â¥¾Æ¾ÓèØ
writer ip : 211.41.4.18    
      

       

9328 [re] Á˼ÛÇØ¿ä..³Ê¹« Ä£ÀýÇϼż­.. ÀÌÁ¤±æ 07/31 447
9327 Á˼ÛÇØ¿ä..³Ê¹« ¹ø°Å·Ó°Ô¤Ð¤Ð [1] ÀÌÁ¤±æ 07/31 5
9326 ¸ðÁú¶ó´Ô ¼ö°í¿ä ÁøÂ¥ ¸¶Áö¸· Çѹø¸¸¿ä....¤Ì.¤Ì [1] Çѱ¤¿µ 07/31 886
9325 [re] ftp ¾÷·Îµå°¡ ¾È µË´Ï´Ù. 07/31 516
9324 [re] Â¥¾Ó´Ô~ [2] 07/31 436
9323 [re] Áú¹® ÀÖ½À´Ï´Ù 07/31 1
9322 [re] °ü¸®ÀÚ´Ô ¹æ±Ý ¹«½¼ÀÏÀÌ? [1] 07/31 519
9321 °ü¸®ÀÚ´Ô ¹æ±Ý ¹«½¼ÀÏÀÌ? À±Ã¢¹Î 07/31 454
9320 Â¥¾Ó´Ô~ ¸ÚÀïÀÌ 07/31 460
9319 [re] °ü¸®ÀÚ´Ô Áú¹®ÀÖ½À´Ï´Ù. 07/31 3
9318 °ü¸®ÀÚ´Ô Áú¹®ÀÖ½À´Ï´Ù. ±è¿µ¼ø 07/31 2
9317 ftp ¾÷·Îµå°¡ ¾È µË´Ï´Ù. ¾ß¸£ 07/31 446
9316 Áú¹® ÀÖ½À´Ï´Ù ±è¿µ 07/31 2
>> [re] Á˼ÛÇÕ´Ï´Ù¸¸.. µµ¿ò ºÎŹµå¸³´Ï´Ù. 07/31 504
9314 [re] Á¦·Îº¸µå ·Î±×ÀÎ À» ´ÞÀ¸¶ó°í Çϴµ¥¿ä 07/31 449
FIRST99099799899910001001100210031010LAST