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

IPTABLEs - Problem

Hey

Ich bräuchte mal einen Denkanstoss

Linux 9.0 mit zwei Netzwerkkarten
eth0 --> internes Netz 192.168....
eth1 --> zum DSL Modem
ppp0 --> DSL Einwahl

folgende Iptables sind vorh.


Code:
iptables -P INPUT DROP 
iptables -P FORWARD DROP 
iptables -P OUTPUT DROP 

echo 1 > /proc/sys/net/ipv4/ip_forward 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE 
iptables -A FORWARD -o ppp0 -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 

iptables -A FORWARD -i eth1 -j ACCEPT 
iptables -A FORWARD -i ppp0 -j ACCEPT

Ich will über den Router nur Weiterleiten. Es funktioniert nur wenn ich Input und Output als ACCEPT setze. Wiso ? Sie Forwardregel greift doch eigendlich bevor die Inputregel zu Anwendung kommt.

Wo ist mein Denkfehler ?

By Huflatisch
 

lorenz

Newbie
laut deiner beschreibung ist eth0 das interne netz!
eth1 spielt keine rolle da dort das dsl-modem hängt-> ppp0
das postrouting gehört ganz nach unten
also (ist schon klar das dies keine firewall sondern eher ein scherz ist?!):

--schnip>
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i ppp0 -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
--schnap<
 
OP
H

Huflatisch

Hacker
Hey

Danke für deine Antwort

also (ist schon klar das dies keine firewall sondern eher ein scherz ist?!):

Mir schon klar - ich will das erst mal von der Grundlage her verstehen :wink:

eth1 spielt keine rolle da dort das dsl-modem hängt-> ppp0

Dann könnte ich wohl auch

iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

schreiben, wenn eth1 und ppp0 dieselbe "Schnittstelle" ist

... aber es geht trotzdem nicht.
Da fällt mir ein das der Router gleichzeitig der DNS Server fürs interne Netz ist (bind9). Ist es demzufolge notwendig das diese Anfragen noch erlaubt werden müssen ( Standart Rule ist ja drop).
... alos in Prinzip das IN und OUTPUT auf der Internen und der externen eth über Port 53 ???

By Huflatisch
 

lorenz

Newbie
ok... grundlagenforschung ist was anderes :wink:
ppp0 benutzt das eth1 device => das ausgehende device ist ppp0 (eth1 geht nicht!)

bei der verwendung des routers als dns muss port 53 input und output erlaubt sein (da dein dns seine informationen ja irgendwoher beziehen muss). aus dem forward kannst du dann die 53 (in deinem noch zu erstellenden regelsatz :wink: ) rausschmeissen.

du kannst die verbindung aber trotzdem testen, in dem du einen ping auf eine externe ip-adr. absetzt z.b. 195.135.20.3 (www.suse.de)

aber:
der router selbst geht bei ausgeschalteter firewall online?
vielleicht solltest du erstmal den router (ohne dns) an`s laufen bringen und dich dann um den bind kümmern?
 

Martin Breidenbach

Ultimate Guru
Da wäre erstmal zu klären was die iptables Regeln denn nun genau filtern sollen.

Wenn man Pakete rausläßt sollte man die Antwortpakete auch reinlassen ;)

Das kann man z.B. mit einer Regel machen die ESTABLISHED und RELATED Verbindungen durchläßt.
 
OP
H

Huflatisch

Hacker
Hey

Danke für die Hilfe,
Mein Hauptproblem war das ich über die eth1 gestolpert bin und die immer wieder mit verregeln wollte. Und dann , wie immer das übliche --> Schreibfehler, wo sich iptables nicht aufgeregt hat.

Ich habe es jetzt mal so gemacht

IF_EXT="eth1"
IF_INT="eth0"
IF_PPP="ppp0"
LOCAL_NET="192.168.9.0/24"
PORTS_HIGH="1024:65535" #nutzt DNS, http um Verbindungen aufzubauen
IPTABLES="/usr/sbin/iptables"

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

#Löschen aller Regeln
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X

#bestehende Verbindungen beibehalten, sonst hat sich mein ssh verabschiedet :)
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Lokale Prozesse auf dem Rechner akzeptieren
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#Verbindungen vom und zum Router ins lokale Netz erlauben (incl. DNS, SSH ,also alle Ports)
$IPTABLES -A INPUT -i $IF_INT -s $LOCAL_NET -j ACCEPT
$IPTABLES -A OUTPUT -o $IF_INT -d $LOCAL_NET -j ACCEPT

#DNS Forwarden, rauszu incl. neuer Verbindungen, reinzu nur Verbindungen erlauben welche vom Router aufgebaut wurden
$IPTABLES -A FORWARD -i $IF_INT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport $PORTS_HIGH --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -i $IF_PPP -m state --state ESTABLISHED,RELATED -p UDP --sport 53 --dport $PORTS_HIGH -j ACCEPT

#http Verbindungen erlauben, analog DNS
$IPTABLES -A FORWARD -i $IF_INT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $PORTS_HIGH --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -i $IF_PPP -m state --state ESTABLISHED,RELATED -p TCP --sport 80 --dport $PORTS_HIGH -j ACCEPT

#IP-Forwarding und DNAT einschalten, MTU
$IPTABLES -t nat -A POSTROUTING -o $IF_PPP -s $LOCAL_NET -j MASQUERADE
$IPTABLES -A FORWARD -o IF_PPP -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

- vom router zu extern geht nichts
- von extern zum Router geht auch nix
- vom internen Netz zum Router geht alles
- vom Router zum internen Netz geht alles
- vom internen Netz zu extern geht nur DNS und http (kein pop, kein ssh, kein ping etc,)

seh ich das so richtig ???

By Huflatisch

der router selbst geht bei ausgeschalteter firewall online?
Das firewallscript kann doch schon beim booten mit geladen werden, oder im ip-up (so wie ich mit dyn dns gemacht habe)
 
Oben