На оконечном сервере: обычный openvpn сервер, слушающий LISTEN_PORT (udp по умолчанию)
На промежуточном сервере:
iptables -t nat -A PREROUTING -p UDP -i INET_IFACE -d CURRENT_SERVER_IP --dport LISTEN_PORT -j DNAT --to-destination VPN_SERVER_IP:LISTEN_PORT
iptables -A POSTROUTING -t nat -p UDP -d VPN_SERVER_IP --dport LISTEN_PORT -j SNAT --to-source CURRENT_SERVER_IP
Вместо того что написано заглавными буквами нужно подставить свои значения (айпи адреса, порт, интерфейс).
Подключаемся с клиента на IP промежуточного сервера, при этом vpn соединение будет устанавливаться с конечным сервером, пакеты пойдут через промежуточный. В логах ВПН сервера айпи клиента будет виден как айпи промежуточного сервера (а не наш).
Промежуточных серверов может быть сколько угодно, просто на каждом надо добавить эти два правила, с соответствующими айпи, создав цепочку.