If you included the complete zone section above then there is no nat/ip masquerade enabled. You either have to enable that or add route and iroute statements for the lan subnet in the openvpn server config I think.
That's right, mikma. There was no IP masquerading enabled.
I got it working by doing this:
First download openvpn
opkg install openvpn-openssl
Put your config in /etc/openvpn/ and change the /etc/config/openvpn file:
vim /etc/config/openvpn
/etc/init.d/openvpn enable
/etc/init.d/openvpn start
Create a net interface for the tun0 device
uci set network.vpn0=interface
uci set network.vpn0.ifname=tun0
uci set network.vpn0.proto=none
uci commit network
Create a firewall zone for vpn
uci set firewall.vpn=zone
uci set firewall.vpn.name=vpn
uci set firewall.vpn.network=vpn0
uci set firewall.vpn.input=ACCEPT
uci set firewall.vpn.forward=REJECT
uci set firewall.vpn.output=ACCEPT
uci set firewall.vpn.masq=1
uci commit firewall
Create a firewall forwarding from vpn to lan and lan to vpn
uci set firewall.vpn_forwarding_lan_in=forwarding
uci set firewall.vpn_forwarding_lan_in.src=vpn
uci set firewall.vpn_forwarding_lan_in.dest=lan
uci set firewall.vpn_forwarding_lan_out=forwarding
uci set firewall.vpn_forwarding_lan_out.src=lan
uci set firewall.vpn_forwarding_lan_out.dest=vpn
uci commit firewall