#!/bin/bash ######################## # Command ######################## IPTABLES=/sbin/iptables MYSELF=`ifconfig eth0|grep inet|tr -s ' '|cut -d ' ' -f 3|tr -d 'addr:'` TRUST_HOST=219.186.166.92 LOOPBACK=127.0.0.1 ANY=0.0.0.0/0
#echo $MYSELF_ETH0
######################## # Flash rules ######################## $IPTABLES -F $IPTABLES -X $IPTABLES -Z
######################## # Default Policy ######################## $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
######################## # Loopback ######################## $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT #$IPTABLES -A INPUT -s $LOOPBACK -d $LOOPBACK -j ACCEPT #$IPTABLES -A OUTPUT -s $LOOPBACK -d $LOOPBACK -j ACCEPT
######################## # ICMP ######################## ### IN ### $IPTABLES -A INPUT -p icmp --icmp-type echo-request -s $TRUST_HOST -d $MYSELF -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s $MYSELF -d $TRUST_HOST -j ACCEPT ### OUT ### $IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -s $MYSELF -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type echo-reply -d $MYSELF -j ACCEPT
################################## # Spoofed Packet(Source) ################################## #$IPTABLES -A INPUT -s 255.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:255.0.0.0/8):" $IPTABLES -A INPUT -s 255.0.0.0/8 -j DROP #$IPTABLES -A INPUT -s 0.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:0.0.0.0/8):" $IPTABLES -A INPUT -s 0.0.0.0/8 -j DROP #$IPTABLES -A INPUT -s 127.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:127.0.0.0/8):" $IPTABLES -A INPUT -s 127.0.0.0/8 -j DROP
#$IPTABLES -A INPUT -s 10.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:10.0.0.0/8):" $IPTABLES -A INPUT -s 10.0.0.0/8 -j DROP #$IPTABLES -A INPUT -s 172.16.0.0/12 -j LOG --log-level info --log-prefix "SP(S:172.16.0.0/12):" $IPTABLES -A INPUT -s 172.16.0.0/12 -j DROP #### ##$IPTABLES -A INPUT -s 192.168.0.0/16 -j LOG --log-level info --log-prefix "SP(S:192.168.0.0/16):" #$IPTABLES -A INPUT -s 192.168.0.0/16 -j DROP #### #$IPTABLES -A INPUT -s $MYSELF -j LOG --log-level info --log-prefix "SP(S:127.0.0.1):" $IPTABLES -A INPUT -s $MYSELF -j DROP
################################## # Spoofed Packet(Destination) ################################## #$IPTABLES -A INPUT -d 10.0.0.0/8 -j LOG --log-level info --log-prefix "SP(D:10.0.0.0/8):" $IPTABLES -A INPUT -d 10.0.0.0/8 -j DROP #$IPTABLES -A INPUT -d 172.16.0.0/12 -j LOG --log-level info --log-prefix "SP(D:172.16.0.0/12):" $IPTABLES -A INPUT -d 172.16.0.0/12 -j DROP #### ##$IPTABLES -A INPUT -d 192.168.0.0/16 -j LOG --log-level info --log-prefix "SP(D:192.168.0.0/16):" #$IPTABLES -A INPUT -d 192.168.0.0/16 -j DROP ####
######################## # Broad Cast ######################## $IPTABLES -A INPUT -d 255.255.255.255 -j DROP $IPTABLES -A INPUT -d 224.0.0.1 -j DROP
######################## # Return Packet ######################## $IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
######################## # Accept Server Service ######################## $IPTABLES -A INPUT -p tcp -d $MYSELF ! --syn -m state --state NEW -j DROP ### SSH ### $IPTABLES -A INPUT -p tcp -d $MYSELF --dport 22 -m state --state NEW -j ACCEPT ### DNS ### $IPTABLES -A INPUT -p udp -d $MYSELF --dport 53 -m state --state NEW -j ACCEPT ### HTTP ### $IPTABLES -A INPUT -p tcp -d $MYSELF --dport 80 -m state --state NEW -j ACCEPT ### FTP ### $IPTABLES -A INPUT -p tcp -d $MYSELF --dport 21 -m state --state NEW -j ACCEPT
######################## # OUTPUT ######################## $IPTABLES -A OUTPUT -p tcp -d $MYSELF ! --syn -m state --state NEW -j DROP ### DNS ### $IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT ### HTTP ### $IPTABLES -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
######################## # ######################## #$IPTABLES -A OUTPUT -p tcp -s $MYSELF --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
######################## # Logging ######################## $IPTABLES -N LOGGING $IPTABLES -A LOGGING -j LOG --log-level info --log-prefix "DROP:" -m limit $IPTABLES -A LOGGING -j DROP $IPTABLES -A INPUT -j LOGGING $IPTABLES -A OUTPUT -j LOGGING