Parece que você não deveria estar usando nem SNAT nem MASQUERADE. Qualquer uma das opções resultará em NAT duplo, impedindo que ambas as extremidades conheçam o IP real da outra extremidade. O NAT sempre quebrará esse conhecimento em pelo menos uma direção.
Se o servidor na outra extremidade de tun0
usar seu roteador para sua rota padrão, ele deverá retornar o tráfego de volta ao seu roteador, onde o DNAT pode ser desfeito para o tráfego de retorno.
Uma opção alternativa, pelo menos para HTTP, é executar um proxy no seu servidor. O proxy deve adicionar ou ampliar o cabeçalho X-Forwarded-For. Isso conterá um ou mais endereços identificando o endereço para o qual o tráfego foi encaminhado. Você pode confiar no endereço IP que você adiciona. Outros endereços podem ser falsificados.