Guten Tag talk,
ich habe gerade damit angefangen, mich mit iptables zu beschäftigen.
Dazu habe ich mir einen Linux Debian genommen mit Kernel 2.4.6 und 2
NIC's eth0 $DEV_LOC und eth1 $DEV_EXT . Da dies nur eine
Testumgebung ist, lasse ich beide Anschlüsse an einen HUB gehen, der
wiederrum ist an einem Switch. Das Internet erreicht er über einen
Linux Router der am Swtitch hängt (als Standartgateway eingetragen
unter eth1).
Meine Frage daher, geht das überhaupt an einem HUB, beide NIC's?
Denn aus einer Linux Zeitschrift, hab ich mir die ersten Regeln
herraus geschrieben und sie getestet. Nur leider funzt das nicht,
nicht einmal ein Ping geht. Ich vermute es hängt mit dem HUB
zusammen.
eth0: 192.168.10.1
eth0: 192.168.100.233 gateway 192.168.100.253
Hier das ich bisher eingetippt habe:
-----------------------------------------------------------------
#!/bin/sh
# Some General Settings
# path to iptabl
IPTABLES=/sbin/iptables
# what are the internel and external device
DEV_LOC=eth0
DEV_EXT=eth1
# Don't allow what isn't allowed
# P = Target
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Kill all Temp-Rules
# F = Flush; t = table; X = delete Chain
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
# allow io interface, we need it for bind etc.
# A = Append to chain; j = Target for rule; i = interface; o = output interface
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# what to do with unknown packets, we drop it and log it :-)
# N = new Chain p = proto
$IPTABLES -N unknown
$IPTABLES -A unknown -p TCP -j LOG --log-prefix "UNKNOWN:TCP"
$IPTABLES -A unknown -p UDP -j LOG --log-prefix "UNKNOWN:UDP"
$IPTABLES -A unknown -p ICMP -j LOG --log-prefix "UNKNOWN:ICMP"
$IPTABLES -A unknown -p TCP -j DROP
# prepare kernel for dynamic ip
# das brauche ich nicht, da wir eine feste ip haben
#echo "1" > /proc/net/ipv4/ip_dynaddr
#echo "1" > /proc/net/ipv4/ip_forward
# enable Masquerade
$IPTABLES -t nat -A POSTROUTING -o $DEV_EXT -j MASQUERADE
# let connections open if it from us
$IPTABLES -A FORWARD -i $DEV_LOC -o $DEV_EXT -m state --state ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_LOC -m state --state ESTABLISHED,RELATED -j
ACCEPT
# all other connections drop to unknown
$IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_LOC -m state --state NEW,INVALID -j unknown
# ok, here some Services
# we want ssh
$IPTABLES -A INPUT -i $DEV_LOC -s 192.168.100.0/255.255.255.0 -p TCP --sport 1000:1023
--dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_LOC -d 192.168.100.0/255.255.255.0 -p TCP --dport
1000:1023 --sport ssh -m state --state ESTABLISHED,RELATED -j ACCEPT
# we want aktive ftp
# what for a port wants the server
$IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport ftp -m state
--state NEW -j ACCEPT
# but some browser wants passive ftp
$IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport 1024:65535 -m state
--state NEW -j ACCEPT
# for ping we need this
$IPTABLES -A FORWARD -o $DEV_EXT -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A FORWARD -o $DEV_LOC -p ICMP --icmp-type echo-request -j ACCEPT
# All other unknown packets to the /dev/null ;)
$IPTABLES -A INPUT -j unknown
$IPTABLES -A OUTPUT -j unknown
$IPTABLES -A FORWARD -j unknown
----------------------------------------------------------------------------------------------------
Also, wenn ich das so durchlese, erscheint es mir logisch, das nix
funzt. Nun, wie testet man dann seine Firewall richtig, ob ping etc
funzt. Ach, wenn ich das Script starte, dann haut es mir sämtliche
Meldungen auf den Screen, egal welche Konsole. Kann man das nicht
umleiten?
--
Mit freundlichen Grüssen
Denny-Schierz mailto:[EMAIL PROTECTED]
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org