echo "###################################################################"
echo "#################### 시스템 방화벽 정책 보안 설정 #################"
echo "#################### 작성자 : 하 태 용 <bunny> #################"
echo "#################### http://bunnyblog.tistory.com #################"
echo "#################### E-Mail : lovego75@yahoo.co.kr ################"
echo "###################################################################"
IPTABLES="/sbin/iptables"
IP_ADDR=`grep "IPADDR=" /etc/sysconfig/network-scripts/ifcfg-Auto_eth0 | awk -F'=' '{ print $2 }'`
. /etc/init.d/functions
case "$1" in
start|restart)
echo "$1ing next_firewall :"
;;
stop)
echo "$1ping next_firewall :"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
exit
;;
*)
echo $"Usage: $0 {start|restart|stop}"
exit
;;
esac
echo "================== 룰셋 초기화 ====================="
$IPTABLES -F
echo "================== 기본정책 설정 ======================"
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
echo "================== Loopback 트래픽 허용 ================="
$IPTABLES -A INPUT -i lo -j ACCEPT
echo "================== 자기자신을 소스로 하는 트래픽 차단 =================="
$IPTABLES -A INPUT -i eth0 -s $IP_ADDR -j DROP
$IPTABLES -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP
echo "================== 상태추적 설정 ======================="
$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
echo "================== 비정상적 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
echo "================== ftp servive ========================"
$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
echo "================== ssh servive ========================"
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
echo "================== telnet servive ======================"
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 23 -m state --state NEW -j ACCEPT
echo "================== smtp servive ======================="
#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 25 -m state --state NEW -j ACCEPT
echo "================== domainserver servive ====================="
$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
echo "================== http servive ====================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
echo "================== OpenVPN service ==================="
$IPTABLES -A INPUT -p udp --sport 1024: --dport 1194 -m state --state NEW -j ACCEPT
echo "================== pop3 servive ====================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 110 -m state --state NEW -j ACCEPT
echo "================== identd servive ==================="
$IPTABLES -A INPUT -p tcp --syn --dport 113 -j REJECT --reject-with tcp-reset
echo "================== imap servive =================="
#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 143 -m state --state NEW -j ACCEPT
echo "================== snmp servive =================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 1024: --dport 199 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 199 -m state --state NEW -j ACCEPT
echo "================== https servive ================="
#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT
echo "================== rsync servive ================="
#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 873 -m state --state NEW -j ACCEPT
echo "================== mysql servive ================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT
echo "================== http servive 3000 =================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 3000 -m state --state NEW -j ACCEPT
echo "================== servive luxe =================="
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 39789 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 36785 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT |