Você pode usar o servidor PPTPd (se o protocolo GRE não for filtrado pela sua rede). O PPTD irá criar uma nova interface ppp para cada cliente em seu servidor.
Por exemplo, você especifica
localip 192.168.101.1-100
remoteip 192.168.101.101-200
Assim, toda interface ppp * obterá um novo IP da sub-rede 192.168.101. Finalmente, você poderia NAT todo o tráfego desta sub-rede para você IP real (não se esqueça sobre net.ipv4.ip_forward = 1)
# here could be full MASQUERADE or SNAT
iptables -t nat -I POSTROUTING -o real_interface0 -j MASQUERADE
# forward for all ppp + MSS tune, conntrack recommended
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtu