OpenVPN und Netzwerk hinter einem Client

thorwin

Well-Known Member
Hi,

ich kämpfe seit 2 Tagen mit meiner OpenVPN-Installation und komme einfach nicht weiter.

Setup
  • OpenVPN-Server (OpenBSD 5.3) auf VServer im Internet (IP: a.b.c.d)
  • OpenVPN-Client (FreeBSD 9/stable) im Heimischen LAN (IP:192.168.42.x)

Aufgabe: Auf dem Client sind Jails (IPs: 10.42.21.0/24) eingerichet, diese sollen vom VPN-Server erreicht werden können

Was geht: Die Verbindung zum Server funktioniert, beide Systeme können sich anpingen, SSH über den Tunnel geht etc.

Was nicht geht: Der Server erreicht die Jails bzw. Adressen 10.42.21.0/24 nicht. Ein tcpdump auf dem Client zeigt, dass ICMP ECHO-Requests von Server nicht auf dem tun0-Interface der Client ankommen, obwohl der Server eine entsprechende Route hat.

Server-Config:
Code:
# --- interface definition
server 10.42.0.0 255.255.255.0
client-config-dir ccd

# --- device type
dev tun0

# --- Security
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/mordor.crt
key /etc/openvpn/keys/mordor.key # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
tls-server

# --- make local subnet(s) reachable
route 10.42.21.0 255.255.255.0

# --- use compression
comp-lzo

# --- make the connection more resilient
keepalive 10 60
#ping-timer-rem
persist-tun
persist-key

# --- generate status log
log-append  /var/log/openvpn.log
status /var/log/openvpn-status.log

verb 5

Die ccd-Datei für den Client:
Code:
ifconfig-push 10.42.0.5 10.42.0.6
iroute 10.42.21.0 255.255.255.0

Client-Config:
Code:
# --- interface definition
client
remote a.b.c.d

# --- device type
dev tun
nobind

persist-key
persist-tun

ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/gondor.crt
key /usr/local/etc/openvpn/keys/gondor.key
dh /usr/local/etc/openvpn/keys/dh2048.pem
tls-client

comp-lzo
verb 5
mute 20

# --- generate status log
log-append  /var/log/openvpn.log
status /var/log/openvpn-status.log

Routing:
Code:
server# # netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            a.b.c.1            UGS        4    22182     -     8 vio0 
10.42.0/24         10.42.0.2          UGS        0        0     -     8 tun0 
10.42.0.2          10.42.0.1          UH         2        0     -     4 tun0 
10.42.21/24        10.42.0.2          UGS        0        2     -     8 tun0 


client# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.42.254     UGS         2     2776    re0
10.42.0.1/32       10.42.0.5          UGS         0        0   tun0
10.42.0.5          link#11            UH          0        0   tun0
10.42.0.6          link#11            UHS         0        0    lo0
10.42.21.1         link#9             UH          0     1850    lo0
10.42.21.2         link#9             UH          0       10    lo0
10.42.21.3         link#9             UH          0        2    lo0
10.42.21.4         link#9             UH          0        0    lo0
10.42.21.5         link#9             UH          0        0    lo0
10.42.21.6         link#9             UH          0        0    lo0
10.42.21.7         link#9             UH          0        0    lo0
10.42.21.8         link#9             UH          0        0    lo0
10.42.21.9         link#9             UH          0        0    lo0

Firewall server:
Code:
# pfctl -s rules
block drop log all
pass all flags S/SA

client:
Code:
# pfctl -s rules
No ALTQ support in kernel
ALTQ related functions disabled
block drop all
pass in on re0 inet proto tcp from 192.168.42.0/24 to any flags S/SA keep state
pass in on re0 inet proto udp from 192.168.42.0/24 to any keep state
pass in on re0 inet proto icmp from 192.168.42.0/24 to any keep state
pass in on re0 inet proto tcp from any to 192.168.42.129 port = ssh flags S/SA keep state
pass in on re0 inet proto udp from any to 192.168.42.129 port = openvpn keep state
pass in on tun0 all flags S/SA keep state
pass out all flags S/SA keep state

Was läuft hier verkehrt? :confused:
 
Was sagt sysctl net.inet.ip.forwarding?

client$ sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 1

server$ sysctl net.inet.ip.forwarding
net.inet.ip.forwarding=1

Hatte ich oben vergessen zu erwähnen.

Update: Der Client läuft mit releng/9.2 (aktuell -RC4), nicht mit stable/9

Update2: Das Problem scheint auf der Server-Seite zu liegen. Ein Testweise herangezogener Linux-VServer als OVPN-Server kann die Jails ohne Probleme erreichen :/
 
Zuletzt bearbeitet:
Zurück
Oben