O problema é que o gateway padrão é alterado pelo OpenVPN e que interrompe qualquer conexão que esteja chegando na interface não-VPN. O Linux enviará respostas aos pacotes que chegaram na interface real da interface VPN! Você precisa configurar rotas apropriadas antes de iniciar o OpenVPN.
O que segue funciona para mim. Ele usa iptables e ip (iproute2). Abaixo, é assumido que a interface de gateway padrão antes de o OpenVPN ser iniciado é "eth0". A idéia é garantir que, quando uma conexão com a eth0 seja feita, mesmo que a eth0 não seja mais a interface de gateway padrão, os pacotes de resposta para a conexão voltarão à eth0 novamente.
Você pode usar o mesmo número para a marca de conexão, marca de firewall e tabela de roteamento. Eu usei números distintos para tornar as diferenças entre eles mais aparentes.
# set "connection" mark of connection from eth0 when first packet of connection arrives
sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234
# set "firewall" mark for response packets in connection with our connection mark
sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321
# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 table 3412
# route packets with our firewall mark using our routing table
sudo ip rule add fwmark 4321 table 3412
===
ATUALIZAÇÃO:
O acima funciona bem para mim no Debian Jessie. Mas em um sistema Wheezy mais antigo acabei de descobrir que preciso adicionar "via" à entrada da tabela de roteamento:
# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 via 12.345.67.89 table 3412
Existe "12.345.67.89" que deve ser o gateway não-VPN original.