Como rotear minha Internet através de um túnel SSH?

24

Antigo Q Como eu configuro um servidor OpenVPN sem privilégios de root?

Existe uma maneira de configurar um servidor OpenVPN sem privilégios de root? Por exemplo, com arquivos de configuração no meu diretório pessoal? Se sim, como faço para configurá-lo?

Estou tentando fazer o SSH em um sistema e configurar um servidor OpenVPN por lá para uso pessoal.

EDITAR

Como é evidente que o OpenVPN precisa de privilégios de root, estou mudando a questão de rotear minha Internet usando SSH, que posso configurar facilmente.

Oxwivi
fonte
Por "espaço de usuário", você quer dizer em uma pasta pessoal sem permissões de root? Normalmente, "espaço de usuário" é usado como o oposto de "espaço do kernel".
Lekensteyn 25/05
@Lekensteyn, sim, sem permissão de root, eu não sabia que o espaço do usuário se referia a outra coisa. Sinta-se à vontade para editar minha pergunta em algo apropriado. Eu estava pensando nessa resposta também, mas não sei como configurar as coisas sem privilégios de root.
Oxwivi 25/05

Respostas:

32

O sshuttle é um servidor proxy transparente que encaminha através de uma conexão SSH e configura um proxy executando scripts Python no servidor remoto. sshuttlepode ser executado nas seguintes condições:

  • máquina cliente ou roteador é baseado em Linux, FreeBSD ou Mac OS
  • privilégios administrativos no cliente
  • acesso à rede remota via SSH
  • sem privilégios de administrador na rede remota
  • disponibilidade do Python no servidor remoto

Instale o sshuttleinsira a descrição da imagem aqui no Software Center ou no Terminal:

sudo apt-get install sshuttle

O comando básico para executar o sshuttle com roteamento de todo o tráfego é:

sshuttle -r username@sshserver:port 0/0

Após a execução do comando, um sudoprompt de senha aparecerá e, posteriormente, a senha da conta SSH. Nenhum outro detalhe aparecerá, exceto uma mensagem curta e retornará ao shell após falha. Para obter mais mensagens de status, execute sshuttleno modo detalhado com o -vsinalizador.

Neste exemplo, todo o tráfego da Internet, exceto o DNS, é roteado através da VPN. -rflag indica o nome do host remoto e o nome de usuário e a porta opcionais que se seguem no exemplo acima. 0/0é a abreviação de 0.0.0.0/0que representa as sub-redes a serem roteadas pela VPN. O uso de 0/0direciona todo o tráfego, exceto as solicitações de DNS para o servidor remoto. O tunelamento de DNS é possível com o uso de -Hsinalizador.

Por favor, leia a página de manual ( man sshuttle) para obter detalhes das opções e modos sob os quais sshuttlepode ser executado. Para obter informações sobre o conceito e mais exemplos, consulte a página do projeto .

André Paramés
fonte
vale a pena considerar as meias vermelhas ; mesmas características, um pouco de execução diferente
sanmai
17

Você não pode configurar o OpenVPN sem privilégios de root porque certas operações exigem isso.

  • Pré-requisitos: você precisa habilitar o encaminhamento de pacotes no firewall (iptables?)
  • Adicionando dispositivos em operação: um dispositivo virtual especial deve ser adicionado usando ifconfig. Caso contrário, nenhuma comunicação é possível entre o servidor e o cliente

Dependendo das suas necessidades, outras soluções estão disponíveis. Para navegar pelo seu servidor, você pode configurar um servidor SOCKS.

Proxy SOCKS

Configurar um proxy SOCKS não é difícil: ele é embutido no OpenSSH. Para habilitar o servidor SOCKS, execute o próximo comando em um terminal :

ssh user@host -D1234

Substitua 1234 pela sua porta preferida. No seu navegador, você pode inserir localhostcomo host e 1234como porta no servidor SOCKS4 / 5.

Abaixo está um exemplo no navegador Firefox:

  1. Vá para Editar -> Preferências
  2. Abra a seção Avançado
  3. Vá para a guia Rede
  4. Pressione Configurações
  5. Selecione Configuração manual do proxy
  6. Entrar localhostcomo host SOCKS
  7. Digite 1234como porta (a mesma porta especificada no comando SSH)
  8. Pressione OK e Fechar para fechar as caixas de diálogo de preferências.

Exemplo de configuração do FIrefox

Lekensteyn
fonte
1
Quero rotear minha internet pelo sistema em que desejo configurar a VPN.
Oxwivi
Infelizmente, você não pode alterar as regras de roteamento no servidor sem privilégios de root. Uma solução que fornece pelo menos uma solução segura para navegação é usar um proxy SOCKS, conforme descrito na resposta.
Lekensteyn 25/05
1
Consegui fazer com que minha Internet fosse roteada pelo túnel SSH. Devo editar sua resposta para me referir especificamente a isso enquanto editei a pergunta? Ou você vai fazer isso?
Oxwivi
@ Oxwivi: vou reordená-lo e adicionar um exemplo para o Firefox.
Lekensteyn
-1

Se você deseja apenas encapsular o tráfego TCP do sistema, recomendo usar um programa chamado tun2socks. Se você também quiser encapsular o tráfego UDP, precisará instalar o udpgw no seu servidor.

Aqui está um tutorial de como instalar e usar esses programas: http://board.nwrk.biz/viewtopic.php?id=3

giri
fonte
4
Você pode atualizar sua resposta e explicar as etapas mais importantes do seu link aqui? Dessa forma, essa resposta ainda será útil, mesmo se o site for desativado.
Louis Matthijssen