#!/bin/sh
#
# Version: 0.1
# Date: 19.12.2014
#
###############################################################################

# IPTABLES
IPTABLES=/usr/sbin/iptables
SYSCTL=/usr/sbin/sysctl

$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

###############################################################################

# DNS
$IPTABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT

# FTP
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 21 -j ACCEPT

# SSH Server
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 22 -j ACCEPT

# SSH Client
$IPTABLES -A OUTPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 22 -j ACCEPT

# HTTP Server
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 80 -j ACCEPT

# HTTP Client
$IPTABLES -A OUTPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 80 -j ACCEPT

# HTTPS Server
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 443 -j ACCEPT

# HTTPS Client
$IPTABLES -A OUTPUT -p tcp --dport 443 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 443 -j ACCEPT

# E-Mail
$IPTABLES -A INPUT -p tcp --dport 995 -j ACCEPT
$IPTABLES -A Output -p tcp --sport 995 -j ACCEPT

# Chess Board Server
$IPTABLES -A INPUT -p tcp --dport 5799 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 5799 -j ACCEPT

# Chess Board Client
$IPTABLES -A OUTPUT -p tcp --dport 5799 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 5799 -j ACCEPT

# IRCD Server
$IPTABLES -A INPUT -p tcp --dport 6667 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 6667 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 6667 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 6667 -j ACCEPT

# IRCD Client
$IPTABLES -A OUTPUT -p tcp --dport 6667 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 6667 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 6667 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 6667 -j ACCEPT

# Icecast Server
$IPTABLES -A INPUT -p tcp --dport 8000 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 8000 -j ACCEPT

###############################################################################

# IP6TABLES
IP6TABLES=/usr/sbin/ip6tables

$IP6TABLES -F
$IP6TABLES -X
$IP6TABLES -t nat -F
$IP6TABLES -t nat -X
$IP6TABLES -t mangle -F
$IP6TABLES -t mangle -X
$IP6TABLES -P INPUT DROP
$IP6TABLES -P OUTPUT DROP
$IP6TABLES -P FORWARD DROP

###############################################################################

# DNS
$IP6TABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT
$IP6TABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 53 -j ACCEPT
$IP6TABLES -A INPUT -p udp --sport 53 -j ACCEPT

# FTP
$IP6TABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 21 -j ACCEPT

# SSH Server
$IP6TABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 22 -j ACCEPT

# SSH Client
$IP6TABLES -A OUTPUT -p tcp --dport 22 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 22 -j ACCEPT

# HTTP Server
$IP6TABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 80 -j ACCEPT

# HTTP Client
$IP6TABLES -A OUTPUT -p tcp --dport 80 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 80 -j ACCEPT

# HTTPS Server
$IP6TABLES -A INPUT -p tcp --dport 443 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 443 -j ACCEPT

# HTTPS Client
$IP6TABLES -A OUTPUT -p tcp --dport 443 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 443 -j ACCEPT

# E-Mail
$IP6TABLES -A INPUT -p tcp --dport 995 -j ACCEPT

# Chess Board Server
$IP6TABLES -A INPUT -p tcp --dport 5799 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 5799 -j ACCEPT

# Chess Board Client
$IP6TABLES -A OUTPUT -p tcp --dport 5799 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 5799 -j ACCEPT

# IRCD Server
$IP6TABLES -A INPUT -p tcp --dport 6667 -j ACCEPT
$IP6TABLES -A INPUT -p udp --dport 6667 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 6667 -j ACCEPT
$IP6TABLES -A OUTPUT -p udp --sport 6667 -j ACCEPT

# IRCD Client
$IP6TABLES -A OUTPUT -p tcp --dport 6667 -j ACCEPT
$IP6TABLES -A OUTPUT -p udp --dport 6667 -j ACCEPT
$IP6TABLES -A INPUT -p tcp --sport 6667 -j ACCEPT
$IP6TABLES -A INPUT -p udp --sport 6667 -j ACCEPT

# Icecast Server
$IP6TABLES -A INPUT -p tcp --dport 8000 -j ACCEPT
$IP6TABLES -A OUTPUT -p tcp --sport 8000 -j ACCEPT

###############################################################################

