#!/bin/sh IPTABLES="/sbin/iptables" IP_ADDR=`grep "IPADDR=" /etc/sysconfig/network-scripts/ifcfg-eth0 | awk -F'=' '{ print $2 }'` . /etc/init.d/functions case "$1" in start|restart) echo "$1ing My_Firewall :" service iptables save ;; stop) echo "$1ping My_Firewall :" $IPTABLES -F $IPTABLES -X $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT service iptables save exit ;; *) echo $"Usage: $0 {start|restart|stop}" exit ;; esac ### ·ê¼Â ÃʱâÈ $IPTABLES -F ### ±âº»Á¤Ã¥ ¼³Á¤ $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT ### Loopback Æ®·¡ÇÈ Çã¿ë $IPTABLES -A INPUT -i lo -j ACCEPT ### ÀÚ±âÀÚ½ÅÀ» ¼Ò½º·Î ÇÏ´Â Æ®·¡ÇÈ Â÷´Ü $IPTABLES -A INPUT -i eth0 -s $IP_ADDR -j DROP $IPTABLES -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP ### »óÅÂÃßÀû ¼³Á¤ $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A INPUT -p all -m state --state INVALID -j DROP ### ºñÁ¤»óÀû tcp-flags Â÷´Ü $IPTABLES -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL PSH,FIN -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL URG,PSH,FIN -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST,PSH -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,ACK,RST -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP $IPTABLES -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP ### ¼ºñ½ºÆ÷Æ® Ãß°¡/Á¦°Å¸¦ À§Çؼ´Â, ¹Ýµå½Ã ¾Æ·¡ÀÇ ¼³Á¤¸¸ ¼öÁ¤ÇϽñ⠹ٶø´Ï´Ù!!! ### $IPTABLES ±¸¹®¾ÕÀÇ ÁÖ¼® Á¦°ÅÈÄ, My_Firewall ¸¦ Àç°¡µ¿ÇϽøé ÇØ´çÆ÷Æ®´Â È°¼ºÈ µË´Ï´Ù. ## MASTER IP µî·Ï (¾Æ·¡ÀÇ ¸ðµç ·êÀ» ¹«½ÃÇÏ°í ¹«Á¶°Ç Á¢¼Ó Çã¿ëÇÏ´Â IP¸¦ µî·Ï) $IPTABLES -A INPUT -p tcp -s 211.58.254.0/255.255.255.0 -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -p tcp -s 125.177.20.194 -m state --state NEW -j ACCEPT ## Â÷´ÜÇÒ IP ´ë¿ª (¹«Á¶°Ç Â÷´ÜÇÏ´Â IP) $IPTABLES -A INPUT -p tcp -s 72.34.235.215 -j DROP $IPTABLES -A INPUT -p tcp -s 222.162.80.184 -j DROP ### ftp servive 20Àº µ¥ÀÌŸ Æ÷Æ®À̹ǷΠ¹Ýµå½Ã ¿ÀÇ 21Àº FTP Æ÷Æ®¸¦ ¹Ù²Ù¾î »ç¿ë°¡´É #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 20 -m state --state NEW -j ACCEPT #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 21 -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -p tcp --dport 20 -j ACCEPT $IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT # ¶Ç´Â FTPÀÇ IP ´ë¿ªÀ» ÁöÁ¤µµ °¡´ÉÇÏ´Ù. $IPTABLES -A INPUT -p tcp --sport 1024: --dport 21 -s 211.58.254.0/255.255.255.0 -j ACCEPT ### ssh servive 22¿Ü¿¡ ´Ù¸¥ Æ÷Æ®·Î º¯°æÇؼ »ç¿ëÇϴ°ÔÁÁ´Ù. $IPTABLES -A INPUT -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
### telnet servive º¸¾È»ó ÁÁÁö ¾ÊÀ¸¹Ç·Î »ç¿ëÇÏÁö ¸»ÀÚ. #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 23 -m state --state NEW -j ACCEPT ### smtp servive ¸á ¼¹ö µ¹¸®Áö ¾ÊÀ¸¸é ¸·ÀÚ $IPTABLES -A INPUT -p tcp --sport 1024: --dport 25 -m state --state NEW -j ACCEPT ### dns servive DNS µ¹¸®Áö ¾ÊÀ¸¸é ¸·ÀÚ #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT #$IPTABLES -A INPUT -p udp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT ### http servive ±âº»ÀûÀ¸·Î À¥Àº µ¹¸±ÅÙµ¥... ¿¾î³õÀÚ. $IPTABLES -A INPUT -p tcp --sport 1024: --dport 80 -m state --state NEW -j ACCEPT ### pop3 servive ¸ÞÀÏ ¼¹ö ¾È¾²¸é ¸·ÁÒ... #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 110 -m state --state NEW -j ACCEPT ### identd servive $IPTABLES -A INPUT -p tcp --syn --dport 113 -j REJECT --reject-with tcp-reset ### imap servive #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 143 -m state --state NEW -j ACCEPT ### snmp servive #$IPTABLES -A INPUT -p udp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT ### https servive º¸¾È¼¹ö »ç¿ëÇÑ´Ù¸é ¿ÀÇÂÇØ¾ß µÈ´Ù. $IPTABLES -A INPUT -p tcp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT ### rsync servive RSYNC »ç¿ëÇÑ´Ù¸é ¿ÀÇ $IPTABLES -A INPUT -p tcp --sport 1024: --dport 873 -m state --state NEW -j ACCEPT ### mysql servive Mysql Àº µ¹¸±Å×´Ï ¿ÀÇ $IPTABLES -A INPUT -p tcp --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT ### ping servive ÇÎÀ» ¿¾î Á¢±Ù Å×½ºÆ®°¡ °¡´ÉÇϵµ·Ï... $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT |