Figured how todo this.
Start off by running iptables and check for the existing "out" rule for vpn clients. you need to grep for SNAT in the nat table basically;
bash# iptables -t nat -L -n -v | grep SNAT
69 4140 SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:123.123.123.123
bash#
Ok, so from here you need to change the --to definition for this rule to correspond with the ip that you want to be using for client(s) net* traffic.
There are many ways of doing this, but for simplicity and possibility to roll-back rather quick, i prefer the iptables-save, apply, restore commands.
So start off by dumping your ruleset with iptables-save, then swap ip the old ip with the ip you choose and apply the new saved ruleset, like this;
bash# iptables-save iptables-rules.old
bash# cat ./iptables-rules.old |grep -e "--to-source" | sed s/123.123.123.123/321.321.321.321/' > ./iptables-rules.new
bash# iptables-apply ./iptables-rules.new
After quickly verifying connection to the server you should confirm, or commit this change by pressing Y in your terminal to save the changes made.
In this example i opted to use the 321.321.321.321 IP for outgoing tunneled client traffic on my openvpn access server. You can check if this worked instantly by being connected/or connect to the VPN and then openup
http://www.whatismyip.com, but usually checking the nat table if the rule got changed/updated is sufficient.
bash# iptables -t nat -L -n -v |grep SNAT
382 22920 SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:321.321.321.321
bash#
Ok. that was it, this setting isnt done via openvpn, so you might have to re-apply this on reboots so adding it in after openvpn has started might be a good idea.