A primeira coisa que vem à mente é VPN sobre SSH. Veja man sshd_config
e procure por PermitTunnel.
Primeiro, certifique-se de que PermitTunnel
(ambos os hosts) esteja ativado e que PermitRootLogin
(no systemB) seja yes
ou without-password
in /etc/ssh/sshd_config
e que sshd
seja recarregado.
Em seguida, faça o login no host 10.200.8.14 usando:
# ssh -NTCf -w 0:0 10.200.8.14
O passo seguinte é configurar as interfaces com uma sub-rede VPN dedicada (192.168.10.0 neste exemplo):
systemA # ip link set tun0 up
systemA # ip addr add 192.168.10.10/32 peer 192.168.10.20 dev tun0
systemB # ip link set tun0 up
systemB # ip addr add 192.168.10.20/32 peer 192.168.10.10 dev tun0
Em seguida, adicione uma rota para a rede por trás do Sistema B:
systemA # ip route add 192.168.20.0/24 via 192.168.10.10
systemA # ping 192.168.20.20
Outra abordagem é usar sshuttle
. Instale sshuttle
da origem ou do gerenciador de pacotes. Então corra:
systemA # /usr/sbin/sshuttle -D --pidfile /tmp/sshuttle.pid --dns -r user@systemB 192.168.20.0/24
Isso solicitará sudo
senha, pois iptables
é usado para rotear o tráfego. Você pode alterar o arquivo /etc/sudoers
usando visudo
para evitar pedir uma senha:
systemA # visudo
# add:
myuser ALL=(ALL) NOPASSWD: /sbin/iptables, /usr/bin/python
Algumas referências interessantes:
https://help.ubuntu.com/community/SSH_VPN
http://sleepyhead.de/howto/?href=vpn
https://github.com/apenwarr/sshuttle