A resposta depende, em parte, de você configurar seus clientes.
Em outras palavras, você pretende que o proxy SOCKS seja explícito ou transparente?
Se você puder configurar seus aplicativos clientes para usar um proxy explícito, ele deverá ser bastante simples (embora você queira que seu SOCKS ouça na interface VPN - ou crie uma regra DNAT).
-A INPUT -s 192.168.1.0/24 -d 192.168.1.1 -m tcp -p tcp --dport 1080 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j DROP
-A FORWARD -s 192.168.1.0/24 -j DROP
Se você quisesse ter um proxy transparente, acho que pode valer a pena considerar a introdução do haproxy.
Este haproxy A postagem do blog fornece uma visão geral de como configurar a vinculação transparente, o que parece funcionar em seu caso de uso.
Nesse caso, você pode achar mais fácil ter SSH no modo de túnel do que SOCKS (ou adicionar outra conexão VPN entre Pi e gateway).
A regra específica que está causando o seu 'problema' agora é, eu acho, esta:
-A FORWARD -i ppp+ -o eth+ -j ACCEPT
Em geral, parece que você pode querer reescrever suas regras de firewall para obter o que deseja.