# waar iptables staat
IPTABLES="/sbin/iptables"
# interfaces
INTERNAL_INTERFACE="eth2" # interface waarmee gateway aan lokale netwerk zit (aanpassen aan eigen omgeving)
INTERNAL_INTERFACE1="eth1" # interface waarmee gateway aan lokale netwerk zit (aanpassen aan eigen omgeving)
EXTERNAL_INTERFACE="eth0" # interface waarmee gateway aan het internet zit (aanpassen aan eigen omgeving)
# ipadressen / netwerken
IPADDR="WWW.XXX.YYY.ZZZ" # internet ip adres
LAN="10.10.100.0/24" # lokale netwerk (aanpassen aan eigen omgeving)
LAN1="10.10.10.0/24"
## variabelen die NIET moeten (lees: nodig zijn) worden aangepast
# interfaces
LOOPBACK_INTERFACE="lo" # loopback interface
# ipadressen / netwerken
ANYWHERE="0.0.0.0/0" # elk ip adres valt hierbinnen
LOOPBACK="127.0.0.1" # ip adres van localhost
CLASS_A="10.0.0.0/8" # klasse A prive netwerk
CLASS_B="172.16.0.0/12" # klasse B prive netwerk
CLASS_C="192.168.0.0/24" # klasse C prive netwerk
# poorten
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"
# Genereren van de lijst der te openen/blocken poorten
ls -1 $FILELOC > $PORTS_FILE # aanmaken van de lijst met services
######################################################################################################
# set de default policies
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
## flush en clear alle rules en zet de tellers op 0
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
################################################################################
# initialiseren van de kernel
## Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
## Enable IP-spoofing beveiliging
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do
echo 1 > $f
done
## Disable ICMP redirect acceptatie
for f in /proc/sys/net/ipv4/conf/*/accept_redirects ; do
echo 0 > $f
done
## Disable ICMP send_redirects
for f in /proc/sys/net/ipv4/conf/*/send_redirects ; do
echo 0 > $f
done
## Source routed pakketten niet accepteren
for f in /proc/sys/net/ipv4/conf/*/accept_source_route ; do
echo 0 > $f
done
## Log spoofed pakketten, source routed pakketten en redirected pakketten
#for f in /proc/sys/net/ipv4/conf/*/log_martians ; do
# echo 1 > $f
#done
## Enable TCP SYN cookie beveiliging
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
## Enable ICMP broadcasting protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
## Enable ICMP dead error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
## Enable dynamic TCP/IP address hacking
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
################################################################################
# op de loopback interface kunnen (en moeten) we alles toelaten
## Onbeperkt verkeer op lo toestaan
$IPTABLES -A INPUT -i $LOOPBACK_INTERFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $LOOPBACK_INTERFACE -j ACCEPT
################################################################################
# in de gemiddelde HTK-environment kunnen we ook alles op het lokale netwerk
# toelaten
## Onbeperkt verkeer op interne interface toestaan
$IPTABLES -A INPUT -i $INTERNAL_INTERFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNAL_INTERFACE -j ACCEPT
$IPTABLES -A INPUT -i $INTERNAL_INTERFACE1 -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNAL_INTERFACE1 -j ACCEPT
## verkeer tussen beide interne interfaces ook forwarden
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $INTERNAL_INTERFACE1 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $INTERNAL_INTERFACE -j ACCEPT
################################################################################
################################################################################
# masquerade
## Alles met afkomst van of bestemming lokale netwerk heeft forwarden
$IPTABLES -A POSTROUTING -t nat -o $EXTERNAL_INTERFACE -j MASQUERADE
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE1 -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
$IPTABLES -A FORWARD -o $INTERNAL_INTERFACE1 -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT