OpenVPN & VMWare - Routing problem???

VirtualBox, VMWare, KVM, XEN, OpenVZ, Virtuozzo, etc.
fgro
Posts: 6
Joined: 2007-09-18 23:25

OpenVPN & VMWare - Routing problem???

Post by fgro » 2007-09-18 23:59

Hallo liebe rootForum Gemeinde,

ich selber habe mich etwas schwer getan mich hier zu registrieren, aber ich denke einen Versuch ist es Wert eine Lösung für mein Problem hier zu finden :-) Aus dem Grund, lange Rede - kurzer Sinn ....

Ich habe folgende Vorstellung:

Mittels Debian Etch ein VMWare Server mit Gastsystem ans laufen zu bringen und via VPN an dem Server anmelden und das VPN Netz und deren Gastsystem nutzen. Klingt alles schön, wenn es auch klappen würde.

Folgendes habe ich bisher gemacht:

Code: Select all

---- Debian-Etch als RootServer (Plesk, brauch ich eig. nicht...)
     |
     --- VMware Server 1.0.3 installiert [ok]
     ========================================
     |
     |  VMware hat mir auch gleich 2 schnittstellen erstellt, wobei ich
     |  eine später gern verwenden möchte:
     |
     --> vmnet8 (NAT) [diese möchte ich verwenden]
     |  |
     |  ---> 172.16.96.1/255.255.255.0
     |
     --> vmnet1 [keine betrachtung]
   


Dann habe ich mir unter mühevoller Anleitungen, die es ja "fast" wie Sand am Meer im internet gibt, den OpenVPN installiert und konfiguriert.

Anbei die Konfig weiter unten.

Damit habe ich nun ein weiteres interface erhalten, welches ich auch verwenden werde. tap0

So nun fasse ich zusammen, was ich alles habe:

Code: Select all

-----   eth1: 87.11x.xxx.xxx [offizielle IP des Servers]
-----   tap0: 173.16.96.1    [vpn interface zu den clients]
----- vmnet8: 172.16.96.1    [VMware NAT Interface]


Nun möchte ich ein Tunnel aufbauen, was mir auch soweit gelingt und möchte in das Netzwerksegment 172.16.96.0/24. Da kommt mein Client ins Spiel, der ja auch eine IP erhält.

Code: Select all

-- Client NB: 173.16.96.10   [Client Notebook]


eine statische Route habe ich auf dem Client Notebook hinterlegt, damit dieser weiss, wo er hin muss, wenn ich das Segment 172.16.96.0/24 anpinge.

Code: Select all

----> route add 172.16.96.0 mask 255.255.255.0 173.16.96.1 metric 1 -p


auf dem Unix Server habe ich noch forwarding auf "1" gesetzt. Meine Routing Tabelle sieht so aus:

Code: Select all

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.225.0    *               255.255.255.0   U     0      0        0 vmnet1
87.xxx.xxx.0    *               255.255.255.0   U     0      0        0 eth1
172.16.96.0     *               255.255.255.0   U     0      0        0 vmnet8
173.16.96.0     *               255.255.255.0   U     0      0        0 tap0
default         h-87.1xx.1xx.x. 0.0.0.0         UG    0      0        0 eth1


Nun mein eigentliches Problem:

Ein Ping vom Client, zu dem laufenden Gastsystem im Segement 172.xxx.xxx.0/24 funktioniert nicht. Mein Gast System (windows) hat die IP Adresse 172.16.96.128 bekommen. Von diesem System kann ich die folgenden Pings absetzen:

Code: Select all

---> ping 172.16.96.1  [success]
---> ping 173.16.96.1  [success]
---> ping 173.16.96.10 [failure]


Nun weiss ich leider nicht mehr weiter, wie ich es hinbiege, dass ich von meinem Client (Notebook) das Gastsystem erreichen kann.

Ich freue mich auf jede Hilfestellung und bedanke mich bei jenen schoneinmal im voraus.


mfg,
fgro


Attachements:

Config OpenVPN
==============================

Code: Select all

# Port Standartport 1194
port 1194

# TCP oder UDP?
proto udp
mode server
tls-server
dev tap

#Unsere Server IP
ifconfig 173.16.96.1 255.255.255.0
ifconfig-pool 173.16.96.10 173.16.96.20

#Wo liegen unsere Zertifikate
ca /etc/ssl/private/vpn-ca.pem
cert /etc/ssl/certs/servercert.pem
key /etc/ssl/private/serverkey.pem

#Diffie-Hellmann Parameter
dh /etc/ssl/certs/dh1024.pem

#Die Selbe IP in der nästen Sitzung vergeben
#ifconfig-pool-persist ipp.txt

#IPs in den IP Tables eintragen, DNS neu vergeben und üen Server das Routing machen, dass man z.B. üen Tunnel auf ein
# lokales Intranet zuzugreifen
push "route 172.16.96.0 255.225.225.0"
#push "dhcp-option DNS 173.16.96.1"
#push "redirect-gateway tap0"
#push "route-gateway 173.16.96.1"
#push "route 0.0.0.0 0.0.0.0"

push "redirect-gateway"

#Authentifizierungsmethode
auth SHA1

#Verschlüngs Algorithmus
cipher aes-256-cbc

#Benutze Komprimierung
comp-lzo

#Setzt die Rechte
user nobody
group nogroup

#Wird wegen user nobody/group nobody benöt.
persist-key
persist-tun

keepalive 10 120

log-append  /var/log/openvpn.log

#Logging 0, (Zum testen:5)
verb 5

knebb
Posts: 92
Joined: 2006-05-30 11:16
Location: M-V

Re: OpenVPN & VMWare - Routing problem???

Post by knebb » 2007-09-24 21:34

fgro wrote:Hallo liebe rootForum Gemeinde,
--> vmnet8 (NAT) [diese möchte ich verwenden]
Ein Ping vom Client, zu dem laufenden Gastsystem im Segement 172.xxx.xxx.0/24 funktioniert nicht.

Natuerlich funktioniert das nicht. Du willst NAT verwenden. D.h. dass die IPs aus diesem Bereich (172...) nach aussen hin nicht sichtbar sind, weill der VMware Server diese "NATtet", also maskiert. Suche mal nach NAT und IP-masquerading, da dueftest Du (z.B. http://de.wikipedia.org/wiki/Network_Address_Translation fuendig werden.
So wie Du das vorhast, kann das nix werden.
Was Du machen koenntest, ist eine weitere Schnitstelle auf der existierenden eth1 einzurichten (z.B. eth1:1) und dieser die 172... IP Adresse zu verpassen und das Interface dann einem gebridgten VMware Netzwerk zuzuordnen. Dann routed Deine Debian Kiste das auch.

fgro
Posts: 6
Joined: 2007-09-18 23:25

Re: OpenVPN & VMWare - Routing problem???

Post by fgro » 2007-09-24 22:01

hab es hingebogen, allerding habe ich das VPN Netz als 10.0.0.0/8 festgelegt und mache auch ein PREROUTING -t nat und so klappt das dann auch. :-)

Super Sache openVPN :-)

fgro
Posts: 6
Joined: 2007-09-18 23:25

iptables update / NAT Problem

Post by fgro » 2007-09-26 00:27

Hallo,

auch wenn das Thema schon zichmal angesprochen wurde, habe ich noch ein Problem dieszebüglich iptables

da ich meine konstelation RootServer mit 3 VMWare Gastsystemen und openVPN ans laufen gebracht habe, möchte ich nun über iptables den jeweiligen gastsystem den DNS(53) und http (80) frei geben. nur diese ports dürfen nach ausen über nat weitergeleitet werden.

Hat jemand eine Idee, wie ich also das netz 172.16.96.0/24 (Vmnet8(NAT)) ins internet (eth1) zulasse? (nur port 53 und 80).

meine iptables-save sieht im moment so aus:

Code: Select all

# Generated by iptables-save v1.3.6 on Mon Sep 24 22:17:12 2007
*nat
:PREROUTING ACCEPT [72270:8171319]
:POSTROUTING ACCEPT [265:22577]
:OUTPUT ACCEPT [438:36863]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 87.11x.xxx.xxx:1194
-A POSTROUTING -o vmnet8 -j MASQUERADE
COMMIT
# Completed on Mon Sep 24 22:17:12 2007
# Generated by iptables-save v1.3.6 on Mon Sep 24 22:17:12 2007
*mangle
:PREROUTING ACCEPT [129297:48976009]
:INPUT ACCEPT [59708:41206678]
:FORWARD ACCEPT [12:638]
:OUTPUT ACCEPT [48130:30033312]
:POSTROUTING ACCEPT [48179:30044199]
COMMIT
# Completed on Mon Sep 24 22:17:12 2007
# Generated by iptables-save v1.3.6 on Mon Sep 24 22:17:12 2007
*filter
:INPUT DROP [1213:193821]
:FORWARD DROP [6:285]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset
-A INPUT -m state --state INVALID -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8880 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 106 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j DROP
-A INPUT -p tcp -m tcp --dport 9008 -j DROP
-A INPUT -p tcp -m tcp --dport 9080 -j DROP
-A INPUT -s 10.0.0.0/255.0.0.0 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 172.16.96.0/255.255.255.0 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 172.16.96.0/255.255.255.0 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -s 172.16.96.0/255.255.255.0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -s 172.16.96.0/255.255.255.0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -p udp -m udp --dport 137 -j DROP
-A INPUT -p udp -m udp --dport 138 -j DROP
-A INPUT -p tcp -m tcp --dport 139 -j DROP
-A INPUT -p tcp -m tcp --dport 445 -j DROP
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8/0 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 8333 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 902 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 901 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 20000 -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 10000 -j ACCEPT
-A FORWARD -s 10.0.0.0/255.0.0.0 -d 172.16.96.0/255.255.255.0 -p tcp -m tcp -j ACCEPT
-A FORWARD -s 10.0.0.0/255.0.0.0 -d 172.16.96.0/255.255.255.0 -p udp -m udp -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -s 10.0.0.0/255.0.0.0 -d 10.0.0.0/255.0.0.0 -p tcp -m tcp --sport 902 --dport 902 -j ACCEPT
-A FORWARD -s 10.0.0.0/255.0.0.0 -d 10.0.0.0/255.0.0.0 -p tcp -m tcp --sport 901 --dport 901  -j ACCEPT
-A FORWARD -s 10.0.0.0/255.0.0.0 -d 10.0.0.0/255.0.0.0 -p tcp -m tcp --sport 8222 --dport 8222 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with tcp-reset
-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 10.0.0.0/255.255.255.0 -p udp -j ACCEPT
-A OUTPUT -d 10.0.0.0/255.255.255.0 -p tcp -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Mon Sep 24 22:17:12 2007
# Generated by iptables-save v1.3.6 on Mon Sep 24 22:17:19 2007
*nat
:PREROUTING ACCEPT [72398:8185901]
:POSTROUTING ACCEPT [265:22577]
:OUTPUT ACCEPT [438:36863]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 87.1xx.xxx.xxx:1194
-A POSTROUTING -o vmnet8 -j MASQUERADE
COMMIT
# Completed on Mon Sep 24 22:17:19 2007

fgro
Posts: 6
Joined: 2007-09-18 23:25

--- closed

Post by fgro » 2007-09-27 11:43

Hallo,

habe das Problem gelöst. ein Forward auf vmnet8 hat die Angelegenheit für mich erledigt. Nun geht es wie gewünscht.

fgro