VPN - usando SSH

Este artigo ensina como fazer o SSH trabalhar como uma VPN.

[ Hits: 77.361 ]

Por: Perfil removido em 27/01/2012


Introdução e configuração do servidor



O SSH normalmente é usado com a principal finalidade que é o acesso remoto, porém, com esta poderosa ferramenta, há mais coisas que podem ser feitas, uma delas é criar túneis encriptados temporários e uma VPN real.

Neste artigo irei abordar como configurar seu servidor SSH para rodar como um servidor VPN para conexão ponto a ponto. Não se trata de um configuração trabalhosa.

O túnel que será criado irá utilizar a interface TUN/TAP, nos exemplos utilizaremos a TAP para estabelecer a conexão entre cliente e servidor

Chega de papo e vamos à prática!!!!

O primeiro passo é editar o arquivo "/etc/ssh/sshd_config" no servidor (você pode usar o próprio SSH para acessar e depois editar o arquivo), adicionando a linha abaixo no arquivo:

PermitTunnel yes


É necessário também que a linha "PermitRootLogin = yes" esteja presente, já que, por segurança, apenas o 'root' pode criar a VPN.

Se você não quer permitir logins como 'root' devido à questão da segurança, uma opção é combiná-la com a linha "PermitRootLogin = forced- commands-only", como em:

PermitRootLogin = yes
PermitRootLogin = forced-commands-only


Ela torna o acesso como 'root' um pouco mais restritivo, pois permite apenas o uso do 'root' para a execução de comandos (como o que usaremos para criar o túnel) e não para login direto. Depois de feitas as alterações, reinicie o servidor SSH para que as alterações entrem em vigor.

Reinicie o servidor com o comando:

# /etc/init.d/ssh restart

Após configurar o servidor e reiniciar o mesmo, seu servidor estará rodando o SSH e pronto para estabelecer a conexão VPN pelo protocolo de criptografia do SSH.

Caso apareça algum erro, pode ser que a versão do SSH que você utiliza seja mais antiga, pois o SSH só tem este recurso a partir da versão 4.3.

Neste caso, recomendo que instalar a versão mais nova pelo gerenciador de pacotes ou, baixando e instalando manualmente, para então poder proceder com a configuração e conexão da VPN.

Os erros que podem aparecer, caso seu SSH esteja com uma versão anterior à '4.3', são:
/etc/ssh/sshd_config: line 27: Bad configuration option: PermitTunnel
/etc/ssh/sshd_config: terminating, 1 bad configuration options

    Próxima página

Páginas do artigo
   1. Introdução e configuração do servidor
   2. Estabelecendo a conexão - Túnel ponto a ponto
   3. Definindo rotas
Outros artigos deste autor

Usando o FreeBSD como desktop

Formatando fontes no openoffice

ROX-Files: Ícones para gerenciadores de janelas que não suportam ícones

Instalação do Nessus 3.0

Aventuras do Mint Linux 10 em um computador antigo

Leitura recomendada

Ripando DVDs com Ubuntu Dapper Drake (AcidRip + MEncoder + Xvid)

Agendando tarefas com o crontab

Conky: Manual traduzido pt-BR

Gerando arquivos PDF em modo texto

Instalação do Wonderland Server

  
Comentários
[1] Comentário enviado por hwarang em 27/01/2012 - 13:48h

Muito legal a dica!!!
Valews!!!

[2] Comentário enviado por removido em 27/01/2012 - 14:21h

Boa dica !

[3] Comentário enviado por dimasdaros em 27/01/2012 - 18:01h

Excelente dica.
Vou testar assim que chegar em casa.

Muito obrigado =)

----
Edit

Ocorreu tudo certo, muito massa
Cada dia aprendo uma coisa nova à respeito do SSH, redirecionamento de porta, abrir arquivo com X localmente, VPN.

E viva o espirito livre :P

[4] Comentário enviado por cesarufmt em 30/01/2012 - 10:09h

Já vou testar hoje.
Chegou em ótima hora!
Valeu demais! o//

[5] Comentário enviado por ricardoolonca em 01/02/2012 - 08:58h

Simples e eficiente. Parabéns pelo artigo.

[6] Comentário enviado por arthurmatiello em 02/02/2012 - 22:46h

OTIMO ARTIGO, ADICIONADO AOS FAVORITOS

[7] Comentário enviado por removido em 07/02/2012 - 19:01h

Obrigado pelos comentários..

Espero que ajude a muitos que necessitam criar uma vpn sem a necessidade configurações mais complexas.

Abraço...

[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.

Abraço!

[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.

Show d bola!

[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

abraços.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts