I've set up the OpenVPN Client on my Zentyal system and by creating my own config file have been able to successfully connect to the server.
It took me a while to realise that I needed to add my own route to the Kernel IP Routing Table to allow the traffic to flow via the tun0 interface instead of eth0. The route I added only sends a certain IP range through the tunnel. The rest is routed out to the internet normally. The last line being the one I needed to add:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.0 10.10.10.177 255.255.255.0 UG 0 0 0 tun0
10.10.10.177 * 255.255.255.255 UH 0 0 0 tun0
142.129.208.0 * 255.255.240.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
192.168.160.0 * 255.255.255.0 U 0 0 0 tap1
212.58.240.0 * 255.255.240.0 U 0 0 0 tun0
Now, from the Zentyal server itself, this is working perfectly. If I traceroute to the 212.58.240.0 range, I see it going via the 10.10.10.0 hop. If I traceroute any other address, then it goes straight to my ISP.
Now, the only issue is, I can only do this from the Zentyal server itself. If I try routing anything to the 212.58.240.0 range from a machine in the internal LAN, then it just times out connecting. I've tried browsing, traceroute, ping, telnet, etc. and it's always the same. Zentyal server = success. Machine on LAN = fail.
I initially thought it might be the firewall, but if it is nothing shows in the logs. Also, the firewall is port based, not IP, so I don't really see it being that.
Any ideas of why my internal traffic is failing to be routed at all.
Also, I'm a little confused how the routing works anyway in an standard Zentyal system, as there is no "default" entry in the routing table to send the packets to my ISP gateway.
BTW This is a fully up to date 3.0 system.
Cheers.