Mudanças entre as edições de "Como usar túneis ssh para administrar uma rede à distância usando OpenWrt ou LibreMesh"

De Wiki Coolab
Ir para navegação Ir para pesquisar
Linha 4: Linha 4:
 
Para acessar essas redes de fora existem algumas soluções como direcionar o tráfego da rede através de [http://www.brunovianna.net/documenta/?p=93 vpn] ou até serviços freemium como o [http://ngrok ngrok].  
 
Para acessar essas redes de fora existem algumas soluções como direcionar o tráfego da rede através de [http://www.brunovianna.net/documenta/?p=93 vpn] ou até serviços freemium como o [http://ngrok ngrok].  
  
A solução que vamos tratar aqui usa um pacote do [http://openwrt.org OpenWrt] chamada sshtunnel. Para usá-la, você precisa de acesso root a um servidor na Internet e saber um pouco de como usar chaves ssh com par de chaves. Além disso, você precisa de um roteador com 8Mb para instalar os pacotes necessários.
+
A solução que vamos tratar aqui usa um pacote do [http://openwrt.org OpenWrt] chamada sshtunnel, que instala os túneis como um serviço permanente. Para usá-la, você precisa de acesso root a um servidor na Internet e saber um pouco de como usar chaves ssh com par de chaves. Além disso, você precisa de um roteador com 8Mb para instalar os pacotes necessários.
  
 
==Engenharia de túneis==
 
==Engenharia de túneis==
Linha 49: Linha 49:
 
<pre>
 
<pre>
 
sudo systemctl restart sshd  
 
sudo systemctl restart sshd  
 +
</pre>
 +
 +
Agora voltamos ao terminal do roteador e editammos o arquivo de configuração do sshtunnel:
 +
 +
<pre>
 +
vi /etc/config/sshtunnel
 +
</pre>
 +
 +
 +
Use os dados do seu servidor no arquivo:
 +
 +
<pre>
 +
#esse é o servidor exposto na internet
 +
# o nome de referencia essa é uma referencia interna do sshtunnel
 +
config server nome_de_referencia
 +
        option user                    usuario_no_servidor
 +
        option hostname                endereço_do_servidor
 +
        option port                    22
 +
        option retrydelay              5
 +
        #arquivo de identidade no roteador
 +
        option IdentityFile            /root/.ssh/id_rsa
 +
 +
#essa é a porta que vai ficar aberta no servidor
 +
config tunnelR ssh
 +
        #mesmo nome usado acima
 +
        option server          nome_de_referencia
 +
        option remoteaddress    *
 +
        option remoteport      9000 #essa é a porta usada para acessar o túnel. cada túnel tem que usar uma porta diferente
 +
        option localaddress    127.0.0.1
 +
        option localport        22
 
</pre>
 
</pre>

Edição das 18h26min de 10 de maio de 2017

Muitas vezes criamos redes que estão expostas à Internet através de ip dinâmicos, ou mesmo com roteadores que não podem ser configurados. Assim é muito difícil entrar em um roteador dentro dessa rede se você não tem acesso físico ao aparelho.

Para acessar essas redes de fora existem algumas soluções como direcionar o tráfego da rede através de vpn ou até serviços freemium como o ngrok.

A solução que vamos tratar aqui usa um pacote do OpenWrt chamada sshtunnel, que instala os túneis como um serviço permanente. Para usá-la, você precisa de acesso root a um servidor na Internet e saber um pouco de como usar chaves ssh com par de chaves. Além disso, você precisa de um roteador com 8Mb para instalar os pacotes necessários.

Engenharia de túneis

Em primeiro lugar, entre no seu roteador pela interface www. Crie uma senha de root, caso ainda não tenha sido criada. Instale os pacotes sshtunnel e openssh-keygen pelo menu system->software (atualize a lista de software antes de instalar). Você também pode instalá-los pela linha de comando:

opkg update
opkg install sshtunnel
opkg install openssh-keygen

Entre como root por ssh no seu roteador e dê o comando :

ssh-keygen -t rsa -f /root/.ssh/id_rsa

Ele vai gerar, dentro do diretório /root/.ssh dois arquivo: a chave privada id_rsa (que tem que ficar bem guardada) e a chave pública id_rsa.pub.

A chave pública tem que ser copiada para o seu servidor na internet, usando o comando

scp /root/.ssh/id_rsa.pub usuario@servidor.com:/home/usuario/

Agora faça login no servidor por ssh e adicione o arquivo da chave pública ao arquivos de chaves autorizadas a acessar o servidor por ssh:

cat id_rsa.pub >> /home/usuario/.ssh/authorized_keys

Faça logout e tente fazer login no servidor por ssh. Ele deve entrar diretamente, sem pedir a senha.

Ainda no servidor, edite o arquivo de configuração do daemon ssh

sudo pico /etc/ssh/sshd_config

Acrescente a linha GatewayPorts yes, salve o arquivo e reinicie o daemon com os comandos:

sudo systemctl restart sshd 

Agora voltamos ao terminal do roteador e editammos o arquivo de configuração do sshtunnel:

vi /etc/config/sshtunnel

Use os dados do seu servidor no arquivo:

#esse é o servidor exposto na internet
# o nome de referencia essa é uma referencia interna do sshtunnel
config server nome_de_referencia 
        option user                     usuario_no_servidor
        option hostname                 endereço_do_servidor
        option port                     22
        option retrydelay               5
        #arquivo de identidade no roteador
        option IdentityFile             /root/.ssh/id_rsa

#essa é a porta que vai ficar aberta no servidor
config tunnelR ssh
        #mesmo nome usado acima
        option server           nome_de_referencia 
        option remoteaddress    *
        option remoteport       9000 #essa é a porta usada para acessar o túnel. cada túnel tem que usar uma porta diferente
        option localaddress     127.0.0.1
        option localport        22