Obs.: É necessário digitar usando o usuário 'root', pois só ele tem poder administrativo para gerar o dispositivo virtual no servidor e no cliente. A
autenticação realizada vai seguir a configurada no servidor, pode ser através da senha do 'root' ou através das chaves de autenticação ( o que é
mais seguro).
Caso digite o comando sem o usuário 'root' ter permissão de se logar via SSH (configuração feita no "/etc/ssh/sshd_config" na primeira página),
provavelmente um erro como o mostrado abaixo será retornado:
Tunel device open failed
Could not request tunnel forwarding
Caso apareça este outro erro descrito abaixo, significa que, ou o SSH do servidor não está usando uma versão mais antiga ou a opção
'PermitTunnel' está desabilitada:
-f:- Esta opção faz com que o comando seja executado em background e não fique ocupando seu terminal durante a execução.
-w 0:0:- É usada para criar o túnel, neste caso criando a interface 'tap0' no cliente e a interface 'tap0' no servidor.
-o Tunnel=ethernet:- Indica que deve ser criada uma interface virtual TAP. O default do SSH (quando a opção é omitida) é criar uma interface
TUN. A grande diferença entre as duas é que a interface TAP pode ser usada para criar um 'bridge', o que permite efetivamente unir as duas
redes.
root@192.168.222.33:- O '192.168.222.33' representa o endereço IP do servidor, e deve ser substituído pelo endereço IP do seu servidor
SSH. O "root" refere-se ao usuário que irá logar no servidor.
ifconfig tap0 10.5.5.1 netmask 255.255.255.0:- Configura o endereço IP e a máscara que será usada pela interface 'tap0' que será criada no
servidor. Você pode usar o endereço e máscara que quiser, mas ela deve ser diferente da faixa de IPs usada na rede local.
Após executar o comando no cliente e não ter gerado algum erro como comentado no inicio da página, logue no servidor como 'root' e execute o
comando:
[8] Comentário enviado por ragen em 23/02/2012 - 23:01h
Olá Edson,
Lendo o artigo pensei: ótimo, é uma mão na roda não precisar mais fazer chaves pro OpenVPN... Mas ai me ocorreu que e SE hipoteticamente alguém ganhar acesso à um servidor seu ele pode pular em efeito cascata para os demais tendo se houver autenticação por troca de chaves.
O pior já seria dado a shell de root para qualquer atacante que por exemplo bootasse sua máquina em modo single. Já parou para pensar nisso?
Mas não deixo de parabenizá-lo pelo excelente artigo e didática.
[9] Comentário enviado por removido em 24/02/2012 - 13:48h
Amigo ragen Obrigado pelo comentário e sua observação foi bem feita,
Mas...
Primeiro para acessar servidores usando autenticação com chaves de segurança é aconselhavel usar chaves com senha, para que se tenha mais segurança.
Segundo para acessar um servidor fisicamente, só pode alguém com permissão e não é qualquer um que pode, além de poder usar autenticação para manipular a edição das opções de boot e linha de comando do grub;
Mas caso alguém consiga acesso via ssh usando o usuário root, tem como limitar o usuário root localmente no servidor ssh, fiz uma observação na primeira página explicando que no arquivo de configuração do servidor ssh tem uma opção para "limitar" os recursos que o usuário root pode usar, fazendo com que o mesmo não consiga fazer login, Mas para fazer isso é necessário mais configurações no servidor para permitir os comandos remotamente.
[10] Comentário enviado por renato_pacheco em 28/02/2012 - 17:24h
Engraçado... não sabia q dava pra criar um túnel apenas com o SSH, mas os procedimentos (e até alguns parâmetros) são bem parecidos com os procedimentos do OpenVPN.
[11] Comentário enviado por tonnytg em 07/01/2013 - 10:03h
Parabéns, ficou muito bem explicado.
Costumo usar o SSH para fazer tuneis redirecionando portas com: ssh -L 5901:localhost:5901 root@destino
Assim consigo abrir a porta 5901 do destino na minha própria máquina localhost:5901.
[12] Comentário enviado por kadu137 em 05/06/2013 - 22:39h
Ótima dica, é bom lembrar que se o IP do VPNServer(SSH) estiver no mesmo range da sua rede remota (um caso hipotético seria: rede com IP's reais de uma grande instituição), no momento que vc adicionar a rota para a rede, a conexão com 10.5.5.1 vai cair, porque ela já estava estabelecida através da sua máquina client WAN.
Aconteceu comigo e a solução em vez de criar a rota para a rede tora "- net" fiz um loop e criei por host "-host" e coloquei um if se chegar no ipsshserver.
Resumindo:
#LOOP Para adicionar Rota atraves da VPN
for ip in `seq 1 254`;do
if [ $ip -ne "SUFIXO IP SSHSERVER (ex.:190)" ];then
route add -host $PREFIXO.$ip/32 gw 10.5.5.1 dev tap0;
fi;
done