#!/bin/sh
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
### Localhost alles erlauben
iptables -A INPUT -i lo -j ACCEPT #eingehende Kommunikation für lo (Localhost) zulassen
iptables -A OUTPUT -o lo -j ACCEPT #ausgehende Kommunikation für lo (Localhost zulassen
### Ping erlauben
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
### DNS erlauben
iptables -I OUTPUT -o eth0 -p TCP --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i eth0 -p TCP --sport 53 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -o eth0 -p UDP --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i eth0 -p UDP --sport 53 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
### SSH Verbindungen erlauben
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
### HTTP Verbindungen erlauben
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
### HTTPS Verbindungen erlauben
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
### Openvpn Verbindungen erlauben
iptables -I OUTPUT -o eth0 -p udp --sport 1024:65535 --dport 1194 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i eth0 -p udp --sport 1194 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
### MySQL Verbindung 10er Netz erlauben
iptables -A INPUT -i tap0 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tap0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
### SMTP Verbindung erlauben
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT -o eth0 -p TCP --sport 1024:65535 --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i eth0 -p TCP --sport 25 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
### Postfix SMTP Workaround
iptables -I OUTPUT -o tap0 -p TCP --sport 1024:65535 --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i tap0 -p TCP --sport 25 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i tap0 -p tcp --dport 26 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tap0 -p tcp --sport 26 -m state --state ESTABLISHED -j ACCEPT
### APT GET
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
### Weiterleitung SMTP
iptables -t nat -A PREROUTING -d 123.123.123.123 -p tcp --dport 25 -j DNAT --to-destination 10.0.0.1:25
iptables -t nat -A POSTROUTING -s 10.0.0.1 -j SNAT --to-source 123.123.123.123