- #!/bin/sh
- # firewall.sh - Configurable per-host firewall for workstations and
- # servers.(c) 2003 Tero Karvinen - tero karvinen at iki fi - GPL
- stop_fw()
- {
- echo -n "stopping `basename $0`..."
- iptables --flush
- iptables --delete-chain
- iptables -P FORWARD ACCEPT
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- echo "done."
- }
- start_fw()
- {
- echo -n "starting `basename $0`..."
- # Cleanup old rules # All the time firewall is in a secure, closed state
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables --flush # Flush all rules, but keep policies
- iptables --delete-chain
- ## Workstation Minimal firewall ###
- iptables -P FORWARD DROP
- iptables -P INPUT DROP
- #loopback
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A INPUT -s 212.117.63.0/24 -j ACCEPT
- #Kiryakov home
- iptables -A INPUT -s 212.117.49.236/32 -j ACCEPT
- #Kiryakov work
- iptables -A INPUT -s 213.226.29.178/32 -j ACCEPT
- iptables -A INPUT -s 89.215.140.180/32 -j ACCEPT
- iptables -A INPUT -s 200.43.193.212/32 -j DROP
- iptables -A INPUT -s 200.43.193.180/32 -j DROP
- iptables -A INPUT -s 91.206.202.23/32 -j DROP
- iptables -A INPUT -s 89.190.64.47/32 -j DROP
- iptables -A INPUT -s 190.210.176.44/32 -j DROP
- iptables -A INPUT -s 212.80.69.60/32 -j DROP
- iptables -A INPUT -s 200.43.192.246/32 -j DROP
- iptables -A INPUT -s 89.190.196.252/32 -j DROP
- iptables -A INPUT -s 89.190.196.51/32 -j DROP
- iptables -A INPUT -s 89.190.196.55/32 -j DROP
- iptables -A INPUT -s 89.190.196.52/32 -j DROP
- iptables -A INPUT -s 200.82.77.144/32 -j DROP
- iptables -A INPUT -s 199.15.234.159/32 -j DROP
- #Svetlana home
- iptables -A INPUT -s 212.117.49.235/32 -j ACCEPT
- #Svetlin home
- iptables -A INPUT -s 79.100.171.74/32 -j ACCEPT
- #Svetlin work
- iptables -A INPUT -s 88.213.199.34/32 -j ACCEPT
- #ircN
- #iptables -A INPUT -s 46.47.97.98/32 -j ACCEPT
- #iptables -A INPUT -s 83.228.2.18/32 -j ACCEPT
- iptables -A INPUT -s 62.182.112.97/32 -j ACCEPT
- iptables -A INPUT -s 94.26.69.137/32 -j ACCEPT
- iptables -A INPUT -s 78.90.162.209/32 -j ACCEPT #ivo-niki
- iptables -A INPUT -s 85.130.29.167/32 -j ACCEPT
- #iptables -A INPUT -s 212.104.115.143 -j ACCEPT
- #defaults settings
- iptables -A INPUT -m state --state "ESTABLISHED,RELATED" -j ACCEPT
- iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
- iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
- iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
- iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
- ####### HOLES ####### Edit holes below, then run this script again
- #* time(37), bind(53), apache2(80), openssh(2266), unknown(4444) on all ips
- iptables -A INPUT -p tcp -m multiport --dports 20,21,25,37,53,80,113 -j ACCEPT
- #* Ventrilo Server
- #iptables -A INPUT -d 212.117.63.66 -p tcp -m multiport --dports 3784 -j ACCEPT
- #iptables -A INPUT -d 212.117.63.66 -p udp -m multiport --dports 3784 -j ACCEPT
- #* standart ircd ports & qwebirc on 212.117.63.66
- iptables -A INPUT -d 212.117.63.66 -p tcp -m multiport --dports 6665:6669,7000,7777,9000,9090 -j ACCEPT
- # iptables -A INPUT -d 212.117.63.67 -p tcp -m multiport --dports 3333,4141,8033 -j ACCEPT
- # iptables -A INPUT -d 212.117.63.68 -p tcp -m multiport --dports 5000,6665:6669,7000,7777,9000 -j ACCEPT
- #* counter strike on all ips
- iptables -A INPUT -p tcp -m multiport --dports 27000:27050 -j DROP
- iptables -A INPUT -p udp -m multiport --dports 27000:27050 -j DROP
- #iptables -A INPUT -p udp -m udp --dport 27000:27050 -m string --hex-string "|07000080050000003b7464043d657c2e617c216f7026792b237127697b344307302c79612b71682771617c616c6f3e22791b40237321366b2c3820223e6c362b707635615e587466|" --algo kmp --to 65535 -j DROP
- ##################### Edit above
- iptables -A INPUT -j LOG -m limit --limit 40/minute
- iptables -A INPUT -j DROP
- # Save
- iptables-save > /etc/sysconfig/iptables
- echo "done."
- }
- fw_status()
- {
- iptables -L
- }
- case "$1" in
- start)
- start_fw
- ;;
- stop)
- stop_fw
- ;;
- status)
- fw_status
- ;;
- *)
- echo "Usage:" $0 "{start|stop|status}"
- exit 1
- ;;
- esac
- exit 0