iptables routing

A

aticio

Hallo an alle! (bin neu hier)

Hab einen debian Rechner der als router fungiert (192.168.0.1)= Standardgateway.
Nun muss ich alle Anfragen welche intern auf eine best. IP Adresse kommen auf einen anderen VPN Router (cisco, intern 192.168.0.3)
umrouten.
Hab in mein Firewallscript vom debian Router folgendes eingetragen:

$IPTABLES -A FORWARD -i $INTIF -o $INTIF -d 10.1.0.0/255.255.255.0 -p tcp -j ACCEPT

$INTIF ist als 192.168.0.1 definiert.
Unter -d ist die Destinations IP Adresse eingetragen

Frage: wo und wie trage ich nun ein, dass er diese Pakete auf die IP Adresse 192.168.0.3 weiterleitet?

Danke für jegliche Hilfe!
 
Ich hätte auch mal eine generelle Frage. Ich hab aber nicht viel Ahnung von iptables.

Wenn ich iptables so einstelle, das es Anfragen die von außen kommen abweist und ich dann eine regel mache, das er zB Port 10 durchläßt funktioniert das dann? oder ist eine regel dann "dominant"?
 
moin

@aticio

kann es sein, das dir iptables bei dieser regel ne fehlermeldung um die ohren haut?

$IPTABLES -A FORWARD -i $INTIF -o $INTIF -d 10.1.0.0/255.255.255.0 -p tcp -j ACCEPT

-i oder -o erwartet ein interface(eth0...) und keine ip. zu deinem prob, hoffe ich habe dich richtig verstanden.

iptables -t nat -A PREROUTING -i eth0 -d 10.1.0.0/255.255.255.0 -p tcp -j DNAT --to-destination 192.168.0.3

das ist die *routing-regel*, jetzt brauchste noch ne *filter-regel*

iptables -A FORWARD -i eth0 -d 10.1.0.0/255.255.255.0 -p tcp -j ACCEPT

wobei ich mir jetzt nicht ganz sicher bin, das die pakete auch wieder über das innere interface rausgeschickt werden, denn wenn ich dich richtig verstanden habe, steht der cisco router ja auch im lan. hatte mit so einem fall noch nicht zu tun. deshalb habe ich das externe interface erstmal weggelassen. achso, weil wir grade bei sind, eth0 musste eventuell noch tauschen, je nachdem was deine interne karte ist.

@saiki

Wenn ich iptables so einstelle, das es Anfragen die von außen kommen abweist und ich dann eine regel mache, das er zB Port 10 durchläßt funktioniert das dann? oder ist eine regel dann "dominant"?

wenn du mittels default chain dropst/rejekt'est und dann ne regel aufstellst, das port 10 durchgelassen werden soll, dann dürfen die pakete auch passieren. grund => die default chain *regelt* die pakete für die keine regel zutrifft und steht am ende des script's. allgemein ist es so, das das script von oben nach unten abgearbeitet wird, die richtige position der regeln ist also schon wichtig

iptables -A input --dport 10 ..... -j DROP
iptables -A input --dport 10 .... -j ACCEPT

das paket dürfte nicht passieren.


Gruß HL
 
Wie müsste dann eine Regel aussehen, in der erstmal alle ports von außen abgewießen werden?

Extern: ippp0
Intern: eth0

Und in welcher reinfolge muss ich das eingeben? ist die aktuellste eingabe auch automatisch die oberste?
 
hi saiki

das ist nicht mit einer regel getan ;)

# ausgehende Pakete erlauben
#-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

$iptables -A OUTPUT -o $ext -m state --state NEW,ESTABLISHED, RELATED -j ACCEPT
$iptables -A FORWARD -i $int -o $ext -m state --state NEW,ESTABLISHED, RELATED -j ACCEPT

#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Rückkanal: eingehende Paket zu einer bestehenden Verbindung
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

$iptables -A INPUT -i $ext -m state --state ESTABLISHED, RELATED -j ACCEPT
$iptables -A INPUT -i $ext -m state --state NEW, INVALID -j DROP

$iptables -A FORWARD -i $ext -o $int -m state --state ESTABLISHED, RELATED -j ACCEPT
$iptables -A FORWARD -i $ext -o $int -m state --state NEW, INVALID -j DROP

# Ausputzer: Rest sperren, loggen
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

$iptables -A INPUT -j DROP
$iptables -A FORWARD -j DROP
$iptables -A OUTPUT -j DROP


wobei ein generelles dropen nicht die feine englische art ist und vermieden werden sollte. besser wäre es, das target von der default chain in eine userdefinierte chain *zeigen* zu lassen und in der wird dann entschieden ob gedropt + gelogt oder rejectet + gelogt wird.


Und in welcher reinfolge muss ich das eingeben? ist die aktuellste eingabe auch automatisch die oberste?

gute frage, kann ich dir so gar nicht beantworten ;). ich schreibe meine regeln grundsätzlich in ein script.


Gruß HL
 
hehejo schrieb:
In wie fern "relativ gut?"

Ich habe angegeben, das er Zugriffe aus dem LAN auf den Router ohne beschränkungen zulassen soll.
Ich startete das script, danach ging kein ssh mehr auf den Router vom Lan aus. Problem:
Er hatte das falsche Interface angegeben: statt eth0, stand in der betreffenden Zeile ippp0, das genaue Gegenteil!

War aber leicht zu finden :)
 
moin saiki

saiki schrieb:
Ich habe angegeben, das er Zugriffe aus dem LAN auf den Router ohne beschränkungen zulassen soll.
Ich startete das script, danach ging kein ssh mehr auf den Router vom Lan aus. Problem:
Er hatte das falsche Interface angegeben: statt eth0, stand in der betreffenden Zeile ippp0, das genaue Gegenteil!

War aber leicht zu finden :)

wenn es definitiv keine *fehlbedienung* deinerseits war, wäre es nett wenn du harry ne email zukommen lässt, damit er das fixen kann. wenn einem das auf nem rechner passiert, auf den man nicht so ohne weiteres physischen zugriff hat, ist so ein bug extrem ärgerlich ;).

die für mich einzige *schwachstelle* an den scripten von harry ist, das von innen nach aussen erstmal alles erlaubt ist. das gefällt nem paranoiker wie mir nicht wirklich :devil:. hab mich auch schon mal mit harry drüber unterhalten, aber er meinte, das es zu aufwendig wäre, sowas zu implementieren.



Gruß HL
 

Ähnliche Themen

Port Forwarding mit iptables

Debian Routing Problem

Routing mehrere Netzwerkkarten

Debian 7.6 kein lokales Netz

OpenVPN traffic redirect

Zurück
Oben