• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Probleme mit meiner DMZ

Hi Leute!
Sitze gerade an meinem Abschluß-Projekt und hab mit meiner Externen Firewall nen kleines Problem, ich bekomm bestimmte sachen nicht so hin wie ich will :(

-Weiterleitung auf den WebServer
-Und ich will das die User nur Port 80,443 offen haben!

#! /bin/sh
#myfw.sh ---
#Externe Firewall

#Konstantendefinition
EXT="eth0"
EXT_IP="62.154.253.248"

DMZ="eth1"
DMZ_IP="192.168.1.1"
INT_NET="192.168.5.0/255.255.255.0"

INT_FW="192.168.1.2"

WEBSERVER="192.168.1.25"

. /etc/rc.status
rc_reset

case "$1" in
start)
echo -n "Starting Firewall"

#Loeschen der vorhandenen Regeln
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain

#Default Policy
iptables --policy INPUT DROP
iptables --policy FORWARD ACCEPT
iptables --policy OUTPUT ACCEPT

#SYN_COOKIES aktivieren
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#SOUCE ADDRESS VERIFICATION aktivieren
for i in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $i
done

#Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#SSH
iptables -A INPUT -p tcp -i $DMZ --dport 22 -j ACCEPT
# iptables -A OUTPUT -o $DMZ -d $INT_NET -p TCP --sport 22 --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Pakete ablehnen die vorgeben von der eingenen IP zu stammen
# iptables -A input -i $EXT -s $IP -j REJECT
# iptables -A input -i $DMZ -s $DMZ_IP -j REJECT

#Routing und Masquerading
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -i $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

#von intern alles erlauben
# iptables -A INPUT -i $EXT -p all -j ACCEPT


iptables -A PREROUTING -t nat -p tcp -i $EXT --dport 80 -j DNAT --to-destination 192.168.1.25

#Ping und Traceroute
iptables -A OUTPUT -p icmp -o $EXT --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp -i $EXT --icmp-type echo-reply -j ACCEPT

#NTP
# iptables -A INPUT -p tcp -i eth0 --dport 123 -j ACCEPT
# iptables -A INPUT -p udp -i eht0 --dport 123 -j ACCEPT


echo -n
rc_status -v
;;
close)
echo -n "Closing Firewall"

#Loeschen der vorhandenen Regeln
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain

#Default Policy
iptables --policy INPUT DROP
iptables --policy FORWARD ACCEPT
iptables --policy OUTPUT ACCEPT

#Routing und Masquerading
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#von intern alles erlauben
iptables -A INPUT -i eth1 -p all -j ACCEPT

#Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

echo -n
rc_status -v
;;
status)
iptables -L
;;
*)
echo "Usage: /etc/init.d/myfw.sh {start|close|status}"
exit 1
;;
esac

rc_exit
exit 0
 
OP
P

Pretender81

Newbie
ich will (muß):
-Externe Firewall soll können:
-Weiterleitung von extern auf den Web (Port 80 und 443) (später noch mail und cirtix)
-Zugang der User zum Internet
-Zugriff auf SSH von intern

-Interne Firewall soll können:
-Zugriff auf SSH von innen
-Zugang der User aufs Internet

Das Wirwa ist bei meinem vorgehen nach den SuSE Firewall Handbuch (was an einigen Stellen Fehler enthält) entstanden...
 

Martin Breidenbach

Ultimate Guru
Hast Du sowas:

intern
I
Firewall - DMZ mit Webserver
I
extern

oder wie soll das aussehen ? Das wären dann DREI Netzwerkschnittstellen.
 
OP
P

Pretender81

Newbie
Es soll aussehen

Internet <=="Erterne Firewall" <==> Die DMZ (WEB-Server) <==> "Interne Firewall" <==> LAN

mit 2 alten Servern (je 2 Netwwerkkarten) als Firewall und das ganze mit SuSE 9.2 (onhe die SuSEfirewall2) mit eigenen Scripten.

Was mich grade echt zur Verzweiflung bringt!!! Warum weicht immer alles von einander ab? Warum muß SuSE immer so viel ändern, so das die ganzen Sachen, die im Internet stehen, nicht so laufen wie sie da stehen?
 

Martin Breidenbach

Ultimate Guru
Ah jetzt ja ! So macht das mit den zwei Netzwerkkarten schonmal Sinn.

iptables funktioniert bei SuSE genauso wie woanders.

Mein Vorschlag:

Fang erstmal mit einer Minimalkonfig an. Also setzte die beiden Firewalls so auf daß die grundsätzlich alles von innen durchlassen und gegen außen sperren, das Routing funktioniert und die Firewall nach außen ggf maskiert. Die Firewallskripte hierfür sollten so etwa 3-5zeiler sein.

Dann füge weitere Funktionalitäten Schritt für Schritt hinzu.
 
OP
P

Pretender81

Newbie
so ich habs soweit am laufen und dicht (stell die scripte später auch noch hier rein + Kurzanleitung)

was mir jetzt noch fehlt und irgendwie nicht funkzt ist das Weiterleiten auf mein Web-Server!

zur weiterleitung der bestehenden Verbindung ins Internet:
iptables -A FORWARD -i $DMZ -o $EXT -s $WEBSERVER -m state --state ESTABLISHED,RELATED -p TCP --sport http --dport http -j ACCEPT

zum routen der Verbindung zum Web-Server:
iptables -t nat -A PREROUTING -i $EXT -p TCP --sport http --dport http -j DNAT --to-destination $WEBSERVER

Zum öfnen der Verbindung zum Web-Server:
iptables -A FORWARD -i $EXT -o $DMZ -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport http --dport http -j ACCEPT


Verhalten:
-vom internen netz erreich ich die Seite azf dem Web-Server über Port 80
-Von außen kommt die Fehlermeldung "Seite kann nicht geöfnet werden......bla bla bla... timeout der Antwort"
 

Martin Breidenbach

Ultimate Guru
Damit Du den Webserver von außen erreichen kannst brauchst Du:

- Umleiten von Paketen auf Port 80 der externen Karte auf Port 80 des Webservers
- eine FORWARD Regel die diese Pakete durchläßt
- eine Regel die Antwortpakete des Webservers rausläßt

Die Antwortregel kann auch eine allgemeine Regel sein die ESTABLISHED und RELATED generell durchläßt.

Deine Regeln enthalten alle denselben Fehler. Du verbiegst Pakete die von Quellport 80 des Clients an Zielport 80 der Firewall gehen auf Port 80 auf dem Webserver. Der Webserver verwendet in der Tat Port 80. Der Client-Rechner mit dem er kommuniziert benutzt aber einen 'beliebigen' Port (das dürfte etwas zwischen 1024 und 65535 sein wenn ich mich nicht irre). Also laß einfach mal das --sport http bzw --dport http für den Rechner mit dem Browser weg.
 
OP
P

Pretender81

Newbie
hatte port 1024 bis 65535 (da liegst du richtig) uhrsprünglich als source Port drin stehen, habs dann später geändert, als es nicht lief... könnte aber die Lösung sein, weil ich zu dem Zeitpunkt nen fehler in der forward Regel hatte der die Verbindung nach drinen auf macht.
Werde es morgen Früh gleich ausprobieren, hatte vergessen zu Feierabend den ssh wieder nach außen zu öfnen :(
 
OP
P

Pretender81

Newbie
Läuft alles :D

Kurz zum nachmachen:
Interne Firewall:
code einfach in eine /etc/init.d/firewall.sh kopieren und anpassen
starten
./firewall.sh start

damit die firewall nachen neustart funktioniert:
yast --> System --> Runtime Editor
Experten Modus
SuSEfirewall ausschalten
und
firewall.sh auf 3 und 5 setzen
und dann nochmal unter /etc/init.d/rc3.d drauf achten das die $Sxxfirewall.sh als letztes steht

Externe Firewall:
-------------------------------------------------------------------------------
#! /bin/sh
#firewall.sh ---
#Externe Firewall
#Marcus Reinartz
#

modprobe ip_tables
modprobe ip_conntrack

#Konstantendefinition

p_high="1024:65535"
p_ssh="1000:1023"

EXT="eth0"
DMZ="eth1"

ext_ip="62.154.253.248"
NS=" 217.237.150.225"
WEBSERVER="192.168.1.25"
INT_NET="192.168.5.0/255.255.255.0"
DMZ_NET="192.168.1.0/255.255.255.0"

IPTABLES="iptables"

echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo "1" > /proc/sys/net/ipv4/conf/$EXT/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$EXT/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$EXT/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/$EXT/log_martians

echo "1" > /proc/sys/net/ipv4/conf/$DMZ/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$DMZ/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$DMZ/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/$DMZ/log_martians



. /etc/rc.status
rc_reset

case "$1" in
start)
echo -n "Starting Firewall..."

#
#Default Policy und flush

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

#
#Lokale Regeln
#

#
#Lokale Prozesse

$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#
#Fuer ssh

$IPTABLES -A INPUT -i $DMZ -s $DMZ_NET -p TCP --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DMZ -d $DMZ_NET -p TCP --sport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Zugrif von Aussen
# $IPTABLES -A INPUT -i $EXT -p TCP --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# $IPTABLES -A OUTPUT -o $EXT -p TCP --sport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#
#Drop und LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP"
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP"
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP"
$IPTABLES -A my_drop -j DROP


#
#Source-NAT

$IPTABLES -t nat -A POSTROUTING -o $EXT -j SNAT --to-source $ext_ip
echo "1" > /proc/sys/net/ipv4/ip_forward

#
#Filterregeln fuer lokale Dienste
#

#
#Rueckkanal: eingehende Pakete zu einer bestehenden Verbindung

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW,INVALID -j my_drop

#
#ICMP

$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT

#
#Forwarding DMZ ==> EXTERN
#

#
#Eingehende Packete zum Web-Server

$IPTABLES -A FORWARD -i $EXT -o $DMZ -d $WEBSERVER -p TCP --dport http -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# $IPTABLES -A FORWARD -i $EXT -o $DMZ -d $WEBSERVER -p TCP --dport https -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#
#Rueckkanal: eingehende Pakete zu einer bestehenden ausgegehenden Verbindung

$IPTABLES -A FORWARD -i $EXT -o $DMZ -d $DMZ_NET -m state --state ESTABLISHED,RELATED -j ACCEPT

#
#Rueckkanal: ausgehende Pakete zu einer eingehenden Verbindung (Serverdienste)

$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -m state --state ESTABLISHED,RELATED -j ACCEPT

#
#generell ungueltige Pakete verwerfen

$IPTABLES -A FORWARD -m state --state INVALID -j my_drop

#
#ICMP

$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -p ICMP --icmp-type echo-request -j ACCEPT

#
#DNS

$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -d $NS -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport $p_high --dport domain -j ACCEPT
$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -d $NS -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport domain -j ACCEPT

#
#HTTP und HTTP via SSL

$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport http -j ACCEPT
$IPTABLES -A FORWARD -i $DMZ -o $EXT -s $DMZ_NET -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport https -j ACCEPT

#
#WEB-Server
#

#http

$IPTABLES -t nat -A PREROUTING -i $EXT -p TCP --dport http -j DNAT --to-destination $WEBSERVER
$IPTABLES -t nat -A POSTROUTING -o $EXT -s $WEBSERVER -p TCP --sport http -j SNAT --to-source $ext_ip



#https:

# $IPTABLES -t nat -A PREROUTING -i $EXT -p TCP --dport https -j DNAT --to-destination $WEBSERVER
# $IPTABLES -t nat -A POSTROUTING -o $EXT -s $WEBSERVER -p TCP --sport https -j SNAT --to-source $ext_ip

#ident: reject

$IPTABLES -A FORWARD -i $EXT -p TCP --dport auth --syn -j REJECT

#
#Rest sperren und loggen

$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j my_drop

#Ende

echo -n
rc_status -v
;;
close)
echo -n "Closing Firewall"


#
#Default Policy und flush

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

#
#Lokale Regeln
#

#
#Lokale Prozesse

$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#Forward
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -o $EXT -j SNAT --to-source $ext_ip

#ident: reject

$IPTABLES -A FORWARD -i $EXT -p TCP --dport auth --syn -j REJECT

#
#Rest sperren und loggen

$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j my_drop

#Ende

echo -n
rc_status -v
;;
status)
iptables -L
;;
*)
echo "Usage: /etc/init.d/myfw.sh {start|close|status}"
exit 1
;;
esac

rc_exit
exit 0
-----------------------------------------------------------------------------------
Interne Firewall:
-----------------------------------------------------------------------------------
#! /bin/sh
#firewall.sh ---
#Externe Firewall
#Marcus Reinartz
#

modprobe ip_tables
modprobe ip_conntrack

#Konstantendefinition

p_high="1024:65535"
p_ssh="1000:1023"

DMZ="eth0"
INT="eth1"

ext_ip="192.168.1.2"
NS=" 217.237.150.225"
WEBSERVER="192.168.1.25"
INT_NET="192.168.5.0/255.255.255.0"
DMZ_NET="192.168.1.0/255.255.255.0"

IPTABLES="iptables"

echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo "1" > /proc/sys/net/ipv4/conf/$DMZ/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$DMZ/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$DMZ/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/$DMZ/log_martians

echo "1" > /proc/sys/net/ipv4/conf/$INT/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$INT/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$INT/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/$INT/log_martians



. /etc/rc.status
rc_reset

case "$1" in
start)
echo -n "Starting Firewall..."

#
#Default Policy und flush

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

#
#Lokale Regeln
#

#
#Lokale Prozesse

$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#
#Fuer ssh

$IPTABLES -A INPUT -i $INT -s $INT_NET -p TCP --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -d $INT_NET -p TCP --sport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#
#Drop und LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP"
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP"
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP"
$IPTABLES -A my_drop -j DROP


#
#Source-NAT

$IPTABLES -t nat -A POSTROUTING -o $DMZ -j SNAT --to-source $ext_ip
echo "1" > /proc/sys/net/ipv4/ip_forward

#
#Filterregeln fuer lokale Dienste
#

#
#Rueckkanal: eingehende Pakete zu einer bestehenden Verbindung

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW,INVALID -j my_drop

#
#ICMP

$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT

#
#Forwarding Intern ==> DMZ
#

#
#Rueckkanal: eingehende Pakete zu einer bestehenden ausgegehenden Verbindung

$IPTABLES -A FORWARD -i $DMZ -o $INT -d $INT_NET -m state --state ESTABLISHED,RELATED -j ACCEPT

#
#Rueckkanal: ausgehende Pakete zu einer eingehenden Verbindung (Serverdienste)

$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -m state --state ESTABLISHED,RELATED -j ACCEPT

#
#generell ungueltige Pakete verwerfen

$IPTABLES -A FORWARD -m state --state INVALID -j my_drop

#
#ICMP

$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -p ICMP --icmp-type echo-request -j ACCEPT

#
#DNS

$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -d $NS -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport $p_high --dport domain -j ACCEPT
$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -d $NS -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport domain -j ACCEPT

#
#HTTP und HTTP via SSL

$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport http -j ACCEPT
$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $p_high --dport https -j ACCEPT

#SSH
$IPTABLES -A FORWARD -i $INT -o $DMZ -s $INT_NET -d $DMZ_NET -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 22 -j ACCEPT

#ident: reject

$IPTABLES -A FORWARD -i $DMZ -p TCP --dport auth --syn -j REJECT

#
#Rest sperren und loggen

$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j my_drop

#Ende

echo -n
rc_status -v
;;
close)
echo -n "Closing Firewall"


#
#Default Policy und flush

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

#
#Lokale Regeln
#

#
#Lokale Prozesse

$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#Forward
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -o $DMZ -j SNAT --to-source $ext_ip

#ident: reject

$IPTABLES -A FORWARD -i $DMZ -p TCP --dport auth --syn -j REJECT

#
#Rest sperren und loggen

$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j my_drop

#Ende

echo -n
rc_status -v
;;
status)
iptables -L
;;
*)
echo "Usage: /etc/init.d/myfw.sh {start|close|status}"
exit 1
;;
esac

rc_exit
exit 0
------------------------------------------------------------------------------------
Fertig :D
 
OP
P

Pretender81

Newbie
zum fisi :D
hab ein paar hacker (keine script-kiddies) letzte nacht mal ihr glück versuchen lassen...
dicht *freu*
 
Oben