Alias eth0:1 - Wie geht das iptable Syntax konform?
-
- Posts: 330
- Joined: 2006-09-22 13:37
Alias eth0:1 - Wie geht das iptable Syntax konform?
Ich möchte eth0:1 per iptables als interface ansprechen. iptables mecker aber weil das ":" nicht syntaxkonform ist. Wie kann ich das eth0:1 trotzdem mit iptables trotzdem anspechen? eth0:1 soll eine IP erhalten für die iptables Regeln gelten sollen. Wie kann ich es in iptables von eth0 unterscheiden? Gibt es evt. die Möglichkeit, noch weitere Aliase für eth0:1 zu vergeben die der Syntax von iptables entsprechen?
-
- Posts: 330
- Joined: 2006-09-22 13:37
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
Selbstverständliche muss dass auch gesagt werden, dass mit dem Blödsinn. Aber am Blödsinn zweifle ich auch nicht. Ich habe nicht davon gesprochen, einen Rootserver mit einer Firewall sicher machen zu wollen. Ich verstehe iptables als ein Paketfilter. Was mit den gefilterten Paken gemacht wird ist zweitrangig. Mich interessiet ob es eine Möglichkeit gibt, den Alias eth0:1 mit iptables anzusprechen.matzewe01 wrote: Wenn man dir sagen würde, das es Blödsinn ist au einem rootserver eine firewall einzurichten bzw. ein Paketfilter,
Zum Verständnis:
Diese Problem müsste sich in jeder virtuellen Umgebung stellen in der auf einem Rechner mehrere virtuelle Maschinen laufen. Und genau damit beschäftige ich mich gerade.
Auch wenn wir beide gerne philosophieren, so geht es mir sicher nie darum etwas besser zu wissen, sondern besser zu verstehen. Evt. auch Dich ... :-Dmatzewe01 wrote: dann wüsstest du es ohnehin wieder besser. also lasse ich es.
Surfst Du?
-
- Posts: 330
- Joined: 2006-09-22 13:37
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
Mit diesen iptables Regeln gibt es Zugriff aus dem Internet auf beide Rechner, welche auf LAN1 und LAN2 liegen.
IP1 geht zu eht0
IP2" geht zu eth0:1
br1.0 und br2.0 sind virtuelle Schnittstellen auf die von intern auch Zugriff besteht.
Das Problem ist, dass ich von LAN2, welcher über eth0:1 ins Internet soll, keine Verbindung ins Internet bekomme. Von LAN1 geht alles.
Ich versteh nicht warum. Es sollte doch gehen, weil es von LAN1 auch geht.
IP1 geht zu eht0
IP2" geht zu eth0:1
br1.0 und br2.0 sind virtuelle Schnittstellen auf die von intern auch Zugriff besteht.
Das Problem ist, dass ich von LAN2, welcher über eth0:1 ins Internet soll, keine Verbindung ins Internet bekomme. Von LAN1 geht alles.
Ich versteh nicht warum. Es sollte doch gehen, weil es von LAN1 auch geht.
Code: Select all
# Prerouting
iptables -t nat -A PREROUTING -d $IP1 -p tcp --dport 80 -j DNAT --to-destination $LAN1
iptables -t nat -A PREROUTING -d $IP2 -p tcp --dport 80 -j DNAT --to-destination $LAN2
# Forwarding
iptables -A FORWARD -d ! $IP1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d ! $IP2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Intern
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# LAN-Zugriff
iptables -A INPUT -m state --state NEW -i br1.0 -j ACCEPT
iptables -A INPUT -m state --state NEW -i br2.0 -j ACCEPT
# Masquerading
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-
- Posts: 330
- Joined: 2006-09-22 13:37
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
matzewe01 wrote:...
Um es zu konkretisieren wäre wohl die Angabe der Konfiguration eine Nennenswerte Sache.
Das ganze in einem Netz habe ich schon hinter mir. Allerdings mit dem selben Effekt. Auch LAN2 hatte kein Zugriff auf Internet, kann aber vo dort erreicht werden.
Zur Konfiguration:
IP1 und IP2 haben den selben Gateway (Default von IP1) und sind extern.
br1.0
vif = [ 'mac=00:16:3e:00:02:11, ip=10.0.1.1, vifname=br1.0' ]
br2.0
vif = [ 'mac=00:16:3e:00:02:11, ip=10.0.1.2, vifname=br2.0' ]
IP1 geht zu eht0 # Zugriff int/ext
IP2" geht zu eth0:1 # Zugriff nur /ext
Das ist auch eine Variante und LAN1 wie gesagt ohne Internatzugan aber mit ZUgrif auf port 80.
Code: Select all
iptables -t nat -A PREROUTING -d $IP1 -p tcp --dport 80 -j DNAT --to-destination $LAN1
iptables -t nat -A PREROUTING -d $IP2 -p tcp --dport 80 -j DNAT --to-destination $LAN2
iptables -A FORWARD -i ! eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp -d $LAN1 --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp -d $LAN2 --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i vif1.0 -j ACCEPT
iptables -A INPUT -m state --state NEW -i vif2.0 -j ACCEPT
# Masquerading
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Code: Select all
eth0 Link encap:Ethernet HWaddr 0A:31:48:32:AE:E0
inet addr:x.xx.x151.111 Bcast:81.169.151.111 Mask:255.255.255.255
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34844 errors:0 dropped:0 overruns:0 frame:0
TX packets:18248 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5920931 (5.6 MiB) TX bytes:2946125 (2.8 MiB)
eth0:1 Link encap:Ethernet HWaddr 00:30:48:42:AE:E0
inet addr:xx.xx.98.125 Bcast:xx.xx.98.255 Mask:255.255.255.255
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4176 errors:0 dropped:0 overruns:0 frame:0
TX packets:4176 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:169464 (165.4 KiB) TX bytes:169464 (165.4 KiB)
vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet addr:10.0.1.128 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4353 errors:0 dropped:0 overruns:0 frame:0
TX packets:4247 errors:0 dropped:5 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:578735 (565.1 KiB) TX bytes:573471 (560.0 KiB)
vif2.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet addr:10.0.1.129 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:190 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:5 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:19479 (19.0 KiB) TX bytes:5978 (5.8 KiB)
-
- Posts: 695
- Joined: 2005-09-16 00:06
- Location: Berlin-Reinickendorf
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
Hallo,
anhand deiner Ausgaben glaube ich Xen wiederzuerkennen :)
Also, ich hab auch mit NAT geroutet, es laufen auf jedem Xen Server insgesamt alle möglichen 8 VE Instanzen und alle sind entsprechend geroutet.
Auch wenn du 1+ Netzwerkkarten drin hast, alles ist problemlos möglich.
Hier (noch) einmal ein funktionierendes Routing als Beispiel, es beschreibt eine Instanz mit Port 80 sowie SMTP/S und SSH:
Das legst du in der dom0 unter /network/if-up.d/ ab, anschließend verpasst du dem Skript das Recht 755. Erzähle mir nicht, dass das nicht funktioniert bei dir!
Außerdem möchte ich dir dringlichst raten, dir die Links von Mathias anzusehen. Es gibt viele Wege wie man ein passendes Routing erstellen kann, die oben beschriebene ist eine der einfachsten wie man es umsetzen kann.
anhand deiner Ausgaben glaube ich Xen wiederzuerkennen :)
Also, ich hab auch mit NAT geroutet, es laufen auf jedem Xen Server insgesamt alle möglichen 8 VE Instanzen und alle sind entsprechend geroutet.
Auch wenn du 1+ Netzwerkkarten drin hast, alles ist problemlos möglich.
Hier (noch) einmal ein funktionierendes Routing als Beispiel, es beschreibt eine Instanz mit Port 80 sowie SMTP/S und SSH:
Code: Select all
#!/bin/sh
IPTABLES="/sbin/iptables"
#loesche alle Regeln
$IPTABLES -t nat --flush
# Routing fuer XenU's
# 10.0.0.1
$IPTABLES -t nat -A POSTROUTING -s 10.0.0.1 -o eth0 -j SNAT --to $EXTIP
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 80 -i eth0 -j DNAT --to-destination 10.0.0.1:80
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 22 -i eth0 -j DNAT --to-destination 10.0.0.1:22
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 443 -i eth0 -j DNAT --to-destination 10.0.0.1:443
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 995 -i eth0 -j DNAT --to-destination 10.0.0.1:995
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 587 -i eth0 -j DNAT --to-destination 10.0.0.1:587
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 465 -i eth0 -j DNAT --to-destination 10.0.0.1:465
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 143 -i eth0 -j DNAT --to-destination 10.0.0.1:143
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 110 -i eth0 -j DNAT --to-destination 10.0.0.1:110
$IPTABLES -t nat -A PREROUTING -p tcp -d $EXTIP --dport 25 -i eth0 -j DNAT --to-destination 10.0.0.1:25
Außerdem möchte ich dir dringlichst raten, dir die Links von Mathias anzusehen. Es gibt viele Wege wie man ein passendes Routing erstellen kann, die oben beschriebene ist eine der einfachsten wie man es umsetzen kann.
-
- Posts: 330
- Joined: 2006-09-22 13:37
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
Es geht doch für LAN1 welches im selben Netz liegt. Da stimmt das routing doch aus dem 10.0.1.x Netz.matzewe01 wrote: Dann stimmt das routing zurück nicht.
[quote="matzewe01"
Dass 1. das Gateway für den vhost im gleichen Netz liegen sollte ist dir klar oder?
[/quote]Ja, ist es.
Jamatzewe01 wrote: 2. Dass das Routing über nur eine Netzwerkkarte / Interface äusseerst problematisch ist, ist dir auch klar.
Ja, wobei 10.0.1.128 ja nur die Gateways sind. Die IPs dazu sindmatzewe01 wrote: Wie soll eigentlich geroutet werden. Bitte mit vollständigen IPS.
eth0:0 192.168.151.111 nach 10.0.1.128
eth0:1 152.138.98.123 nach 10.0.1.129 ?
LAN1=10.0.1.1
LAN2=10.0.1.2
Mit "natting" meinst Du S-NAT und D-NAT nehme ich an. Ich nutze es im PREROUTING und zu den Maschinen aus dem Internet geht es ja auch.matzewe01 wrote: Dann solltest du dich mit natting beschäftigen. aber belass nach möglichkeit ein Netzwerk an eth0 und keine 2.
Wie das ohne ein zweites Netz an eth0 gehen soll weiß ich nicht. Da liegen nun mal 2 IPs und die Daten zu IP1 und IP2 sind oder sollen nun mal nicht gleich sein.
-
- Posts: 330
- Joined: 2006-09-22 13:37
Re: Alias eth0:1 - Wie geht das iptable Syntax konform?
Hol mich der Teufel! Es geht - fragt sich nur wie lange :?
Warum? Gute Frage.
Immer wieder ifconfig auf dom0 den domUs, Mac Adressen geändert, Netze geändert, verschiedene iptables Regeln ausprobiert immer wieder wundere ich mich das plötzlch der eine Rechner nicht mehr erreichbar war, dann der andere nicht mehr (und das trotz Portknocking :-D ) und dann ...
ifconfig auf dom0 zeigt andere IPs als ifconfig auf den domUs. Da waren wohl zeitweise die Rechner nur noch über "lo" erreichbar. Kein wunder, dachte ich aber warum? Netzwerkkarte zu heiß? :lol:
Da war dann auch noch das heimliche Problem, welches ich währen der "Übungen" bemerkte, dass die viruellen Maschinen immer wieder mit "configured with old IP" und erst nach einem reboot mit "configured with new IP" booteten. Ifconfig zeigte zwar was konfiguriert war an aber das Ergebnis schien ein anderes zu sein.
Diese anfangs (gestern) ständigen Veränderungen, die sich im Grund so verhielten als ob noch eine zweite Person gleichzeitig mit an der selben Konfiguration schrauben würde, OHNE dass ich es merkte führten zu einem verzweifelten Kampf. Ich sehe noch mal nach ob die Karte wieder zu heiß ist ... :lol: - Ist noch nicht zu heiß. Wird wohl nach dem booten wieder so weit sein. -
Spass beiseite. Ich meine ich habe die Tücken jetzt durchschaut. Mal sehen.
Jedenfalls ging es bis jetzt mit folgender etws gewöhnungsbedürftigen Regel raus und entschieden habe ich mich jetzt für ein Netz.
Warum? Gute Frage.
Immer wieder ifconfig auf dom0 den domUs, Mac Adressen geändert, Netze geändert, verschiedene iptables Regeln ausprobiert immer wieder wundere ich mich das plötzlch der eine Rechner nicht mehr erreichbar war, dann der andere nicht mehr (und das trotz Portknocking :-D ) und dann ...
ifconfig auf dom0 zeigt andere IPs als ifconfig auf den domUs. Da waren wohl zeitweise die Rechner nur noch über "lo" erreichbar. Kein wunder, dachte ich aber warum? Netzwerkkarte zu heiß? :lol:
Da war dann auch noch das heimliche Problem, welches ich währen der "Übungen" bemerkte, dass die viruellen Maschinen immer wieder mit "configured with old IP" und erst nach einem reboot mit "configured with new IP" booteten. Ifconfig zeigte zwar was konfiguriert war an aber das Ergebnis schien ein anderes zu sein.
Diese anfangs (gestern) ständigen Veränderungen, die sich im Grund so verhielten als ob noch eine zweite Person gleichzeitig mit an der selben Konfiguration schrauben würde, OHNE dass ich es merkte führten zu einem verzweifelten Kampf. Ich sehe noch mal nach ob die Karte wieder zu heiß ist ... :lol: - Ist noch nicht zu heiß. Wird wohl nach dem booten wieder so weit sein. -
Spass beiseite. Ich meine ich habe die Tücken jetzt durchschaut. Mal sehen.
Jedenfalls ging es bis jetzt mit folgender etws gewöhnungsbedürftigen Regel raus und entschieden habe ich mich jetzt für ein Netz.
Code: Select all
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -d ! 10.0.1.0/24 -j SNAT --to-source $IP2