routingfrage

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

routingfrage

Beitrag von lisan » 04.12.2006 15:17:35

Hi,

ich habe einen vmware wirt mit folgenden routings:

Code: Alles auswählen

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.18.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet2
172.16.125.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
10.x.y.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.x.y.1      0.0.0.0         UG    0      0        0 eth0
Es gibt zwei subnetze, in denen sich die gaeste tuemmeln.

Code: Alles auswählen

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01
          inet addr:172.16.125.1  Bcast:172.16.125.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

vmnet2    Link encap:Ethernet  HWaddr 00:50:56:C0:00:02
          inet addr:192.168.18.1  Bcast:192.168.18.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
An vmnet1 und 2 lauschen DHCPs und verteilen adressen.

eth0 ist der physikalische NIC.

Folgendes Problem:
ich baue ein Testnetz auf, das u.a. aus den obigen subnetzen besteht.
Beide Subnetze muessen pakete in das jeweils andere subnetz senden koennen aber NICHT in das Hausnetz also keinesfalls ueber eth0.

Ansatz 1:
Der Wirt fungiert als Router und ebtables oder iptables verhindern einen zugriff ins hausnetz. Da ich befuerchte, da ich vmware nicht traue, dass die adressen der subnetze sich aendern moechte ich lieber auf ethernetlayer filtern.
Ich haette gerne eine Regel:

ebtables -A OUTPUT -i vmnet+ -o ! vmnet+ -j DROP

Das funktioniert so nicht.

Ansatz 2:
Eine Bridge die vmnet1 und 2 verbindet. Der Haken dabei ist, dass nun beide dhcps die an vmnet1 und 2 jeweils haengen bei requests antworten.
Wie kann man das verhindern ?

Ich muss verhindern, dass ueberhaupt pakete aus vmnet1 und 2, die nicht fuer vmnet1 oder 2 bestimmt sind den wirt nicht verlassen!

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 04.12.2006 18:41:40

Code: Alles auswählen

$IPTABLES -t filter -P FORWARD DROP

$IPTABLES -A FORWARD -i vmnet1 -o vmnet2 -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -i vmnet2 -o vmnet1 -m state --state  NEW -j ACCEPT

$IPTABLES -A FORWARD -m state --state  ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
wenn eth0 noch in die anderen netze soll folgendermassen :

Code: Alles auswählen

$IPTABLES -t filter -P FORWARD DROP

$IPTABLES -A FORWARD -i vmnet1 -o vmnet2 -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -i vmnet2 -o vmnet1 -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o vmnet1 -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o vmnet2 -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -m state --state  ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
diese regelset bezieht sich gerade nur auf die FORWARD Kette ( wie mann auch sieht )

wenn du aber bisher keine anderen regeln aufgestellt hast müsste das sogar so reichen.


gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 05.12.2006 08:13:47

Danke, ich gehs mal durch.
Ich wollte heute eigendlich ip route versuchen, waer wohl der saubere ansatz?

Geht auch das ?

Code: Alles auswählen

$IPTABLES -t filter -P FORWARD DROP

$IPTABLES -A FORWARD -i vmnet+ -o vmnet+ -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o vmnet+ -m state --state  NEW -j ACCEPT
$IPTABLES -A FORWARD -m state --state  ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward 
Welchen Einfluss hat der state in der jeweiligen regeln - aus der manpage werde ich nicht recht schlau.

--state NEW in Regel 1 und 2 heisst: neue 'noch unbekannte' Verbindungen werden geblockt ?
--state ESTABLISHED,RELATED bestehende Verbindungen werden nicht unterbrochen ?

Welchen Effekt hat das praktisch ?

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 05.12.2006 09:50:25

Ich wollte heute eigendlich ip route versuchen, waer wohl der saubere ansatz?
wenn das alles auf einer maschine läuft kommst du um ipforwarding nicht herrum.
Geht auch das ?
Code:
$IPTABLES -t filter -P FORWARD DROP

$IPTABLES -A FORWARD -i vmnet+ -o vmnet+ -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o vmnet+ -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
müsste gehen.
Welchen Einfluss hat der state in der jeweiligen regeln - aus der manpage werde ich nicht recht schlau.

--state NEW in Regel 1 und 2 heisst: neue 'noch unbekannte' Verbindungen werden geblockt ?
--state ESTABLISHED,RELATED bestehende Verbindungen werden nicht unterbrochen ?
siehe
http://www.debianforum.de/forum/viewtop ... ht=chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 05.12.2006 12:27:12

-state NEW in Regel 1 und 2 heisst: neue 'noch unbekannte' Verbindungen werden geblockt ?
Nicht wirklich. Schließlich steht am Ende der Regeln die Sprunganweisung ACCEPT. D.h. alle Pakete die eine neue Verbindung aufbauen wollen, werden akzeptiert und passieren den Paketfilter - alle nachfolgenden Pakete werden durch die ESTABLISHED, RELATED-Regel gematcht und passieren ebenfalls den Paketfilter. So wie die Regeln im Moment aufgelistet sind, macht das in Etwa das Gleiche, wie:

Code: Alles auswählen

iptables -A FORWARD -i vmnet0 -o vmnet1 -j ACCEPT
iptables -A FORWARD -i vmnet1 -o vmnet0 -j ACCEPT
Funktionieren tut der Regelsatz freilich, allerdings macht "-m state --state NEW" nur "so richtig" Sinn, wenn ich auch einen Port angebe, auf dem die neue Verbindung aufgebaut werden soll. Also z.B.:

Code: Alles auswählen

iptables -A FORWARD -p TCP --dport 80 -m state --state NEW -j ACCEPT
In Etwa das gleiche insofern, dass chroiss' Regelsatz evtl. den Vorteil hat, daß irgendwie manipulierte und gefälschte Datenpakete eben nicht geforwardet werden, sondern nur "reguläre" Pakete. Da kenne ich mich dann aber nicht mehr wirklich aus, es könnte aber ja sein, daß jemand Pakete im Netzwerk verschickt, die zwar behaupten, eines der Folgepakete einer bestehenden Verbindung zu sein, es aber nicht wirklich sind. "Mein" Zweizeiler würde solche Pakete trotzder einfach weiterschicken, inwieweit das Connection-Tracking im Linux-Kernel sowas unterbinden kann, geht über mein Verständnis. Aber evtl. wird eben genau das durch "-m state --state NEW"-Zeilen erreicht.

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 05.12.2006 12:49:48

Verstanden, danke.

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 05.12.2006 12:53:34

Auf jeden Fall DynaBlaster's Variante nehmen; ich weiss nicht warum ich da mit states gearbeitet habe.
im Prinzip ne schöne sache , aber so werden nur TCP Pakete behandelt . Alle UDP Pakte werden gedropt, da sie verbindungslos sind , und so keinen state new aufweisen können. Folglich werden die nach meinen Regeln durch die Default Policy abgewiesen( wenn ich da nochmal drüber nachdenke ! ) ;-)

ergo : z.b. keine namensauflösung möglich...
stand da wohl n bischen neben mir.

gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 05.12.2006 13:49:35

Ok,

ich muss nun noch sichergehen, dass aus den gaesten (vmnet1 und 2) garnichts rauskommt, d.h. eine OSI-Schicht runter bitte.
Einige der Gaeste koennen IPX-brabbelnde Netware sein.

Ich wuerde dann euro regeln nehmen und iptables durch ebtables ersetzen.

Dann funktionierts aber nicht seh ich grade - wieso das denn ?
linux:~ # /etc/init.d/ebtables.vmware status
# Generated by ebtables-save v1.0 on Tue Dec 5 14:04:39 CET 2006
*filter
:INPUT ACCEPT
:FORWARD DROP
:OUTPUT ACCEPT
-A FORWARD -i vmnet1 -o vmnet2 -j ACCEPT
-A FORWARD -i vmnet2 -o vmnet1 -j ACCEPT
-A FORWARD -i eth0 -o vmnet1 -j ACCEPT
-A FORWARD -i eth0 -o vmnet2 -j ACCEPT
Die ip rules sind entfernt. Ohje, ich glaub das habe ich wohl etwas durcheinander gebacht. Routing auf ethernetebene - gibts das uebehaupt ?

Gibts Protokolle, die ohne routing auskommen, d.h. kann ich sicherstellen, dass kein paket der gaeste den physikalischen rechner verlaesst ohne ebtables zu verwenden ?

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 06.12.2006 17:32:07

Ich wuerde dann euro regeln nehmen und iptables durch ebtables ersetzen

wie wärs hiermit ?
bin mir nicht 100%ig sicher , aber eigentlich müssten alle sachen ausser IPV4 geblockt werden.

Code: Alles auswählen

ebtables -A FORWARD -i vmnet+ -p IPV4 -j ACCEPT
ebtables -A FORWARD -i vmnet+ -j DROP
Routing auf ethernetebene - gibts das uebehaupt ?
ohne IP(rotokoll) , nicht dass ich wüsste ....

gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 22.12.2006 12:56:12

danke, das geht.

Antworten