#!/bin/sh
### BEGIN INIT INFO
# Provides: Firewall
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Firewall startscript.
# Description: Starts Firewall
### END INIT INFO
# 1. chmod 777 firewall
# 2. update-rc.d firewall defaults
# 3. service firewall start
# 4. erst neustarten wenn ... bescheid sagt
# iptables suchen
sleep 10
iptables="which iptables"
# wenn iptables nicht installiert abbrechen
test -f $iptables || exit 0
case "$1" in
start)
echo "Starte Firewall..."
# alle Regeln löschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#####################################################
# Ausgehende Verbindungen
#Ungenutzte Regeln
#$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED --dest homeserver.dyndns.org -p tcp --dport 0:65500 -j ACCEPT
#$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED --dest homeserver.dyndns.org -p tcp --dport 0:65500 -j ACCEPT
#Standard Freigaben
$iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT #Absolut notwendig ist der DNS auf Port 53, da der Server sonst keine Hostnamen auflösen kann!
$iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT #Absolut notwendig ist der DNS auf Port 53, da der Server sonst keine Hostnamen auflösen kann!
$iptables -A OUTPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 20 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 21 -j ACCEPT
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 80 -j ACCEPT
#$iptables -A OUTPUT -m state --state NEW -p tcp --dport 1234 -j ACCEPT
#$iptables -A OUTPUT -p icmp --icmp-type 0 -s xxx.xxx.xxx.xxx -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Ausgehender Share.
#
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 11111 -j ACCEPT #
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22222 -j ACCEPT #
$iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 33333 -j ACCEPT #
#####################################################
# Eingehende Verbindungen
#Ungenutzte Regeln
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver -p tcp --dport 0:65500 -j ACCEPT
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver.dyndns.org -p tcp --dport 0:65500 -j ACCEPT
#ICMP Allowed
#$iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d xxx.xxx.xxx.xxx -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#SSH Zugriff
#Nur über eigene Dyn Adresse SSH Port erreichbar!
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver.dyndns.org -p tcp --dport 21 -j ACCEPT
#Webif Zugriff
# Port 1234
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver.dyndns.org -p tcp --dport 1234 -j ACCEPT #ggf. Anpassen!
#Webif Zugriff
# Port 1234
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver.dyndns.org -p tcp --dport 1234 -j ACCEPT #ggf. Anpassen!
#Webif Zugriff
# Port 1234
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source homeserver.dyndns.org -p tcp --dport 1234 ACCEPT #ggf. Anpassen!
$iptables -A INPUT -i eth0 -j REJECT
;;
stop)
echo "Stoppe Firewall..."
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/firewall (start|stop)"
exit 1
;;
esac
exit 0