O Netfilter (iptables) fará o que você precisa. Há muitos tutoriais sobre isso.
alguns comandos para executar:
#the default rule will be to drop everything that leaves your computer
iptables -P OUTPUT DROP
iptables -t filter -A OUTPUT -o lo -j ACCEPT
iptables -t filter -A OUTPUT -o tun0(your vpn interface) -j ACCEPT
iptables -t filter -A OUTPUT -o eth0(your real interface) -p udp(or tcp) --dport 9999(the port, the vpn server listens to) -j ACCEPT
Se você colocá-lo em um script, que você lança toda vez que você precisar dele, ele vai largar tudo o que deixaria o seu computador, exceção feita para o seu vpn.
Preste atenção que muitos serviços serão unjoinable depois (como dns, dhcp, ...).