I had the same issue. After searching I found a solution, I don't remember who posted these or I'd give them props. You'll need something like this in your Squid advanced options:
acl vpn_clients src 192.168.1.0/24
tcp_outgoing_address xxx.xxx.xxx.xxx vpn_clients
You'll also need a way to update the outgoing address if it's not static. I have a cron job to run this:
#!/bin/sh
# Variables
VPN_IFACE=ovpnc1
SQUID_CONFIG_FILE=/usr/local/etc/squid/squid.conf
# Get current IP address of VPN interface
VPN_IFACE_IP=$(ifconfig $VPN_IFACE | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+')
# Check if VPN interface is up and exit if it isn't
if [ -z "$VPN_IFACE_IP" ]
then
exit 0;
fi
# Check current IP for VPN interface in squid.conf file
VPN_CONFIG_IP=$(grep -m 1 "tcp_outgoing_address" $SQUID_CONFIG_FILE | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+')
# Check if the config file matches the current VPN interface IP, and if so exit script
if [ "$VPN_IFACE_IP" == "$VPN_CONFIG_IP" ]
then
exit 0;
fi
# Replace the previous IP address in the squid.conf file with the current VPN interface address
sed -ie 's/'"$VPN_CONFIG_IP"'/'"$VPN_IFACE_IP"'/' $SQUID_CONFIG_FILE
# Force reload of the new squid.conf file
/usr/local/sbin/squid -k reconfigure