Use o ssh com uma interface de rede específica

30

Estou usando openconnect para se conectar à vpn. Depois de inserir minhas credenciais, recebo isso:

POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection

A execução de ifconfig mostra que tenho uma nova interface de rede tun0 com um determinado endereço IP.

Pergunta: Como faço para que ssh use apenas a interface de rede tun0 para que eu possa acessar os computadores nessa rede privada?

Editar:

Minha configuração de rede ( route -n ) parece ser esta:

172.16.194.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.25.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 eth0
    
por axel22 04.07.2011 / 20:21

3 respostas

37

Não é o cliente ssh que decide através de qual interface TCP pacotes devem ir, é o kernel. Em suma, o SSH pede ao kernel para abrir uma conexão com um determinado endereço IP e o kernel decide qual interface deve ser usada consultando as tabelas de roteamento.

(O seguinte assume que você está no GNU / Linux; o conceito geral é o mesmo para todos os Unices, mas as especificidades dos comandos a serem executados e a forma como a saída é formatada pode variar.)

Você pode exibir as tabelas de roteamento do kernel com os comandos rota -n e / ou ip route show .

O OpenConnect deveria ter adicionado uma linha para a interface tun0 ; conexões para qualquer endereço correspondente a essa linha será encaminhado através essa interface. Por exemplo, executando route -n no meu laptop eu recebo a seguinte saída:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.30.0.1       0.0.0.0         UG    0      0        0 eth0
10.30.0.0       0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

Isso significa que conexões para hosts no 192.168.122.0/24 (isto é, endereços 192.168.122.0 a 192.168.122.255 de acordo com CIDR notação ) será encaminhado através da interface virbr0 ; aqueles para 169.254.0.0/16 e 10.30.0.0/24 irá passar por eth0 e qualquer outra coisa (a 0.0.0.0 line) será encaminhado através da eth0 para o host do gateway 10.30.0.1.

    
por 04.07.2011 / 20:33
3

Se você estiver usando o Network Manager para gerenciar suas conexões de internet (como é o gerenciador padrão em muitos sistemas), talvez queira instalar os dois openconnect e network-manager-openconnect .

Quando o plug-in OpenConnect for instalado para o Network Manager, abra o Network Manager e clique no ícone + no canto inferior esquerdo. Você deve receber uma caixa de combinação com a opção VPN e, em seguida, a capacidade de selecionar OpenConnect Compatible VPN .

Usando o Network Manager para fazer interface com o OpenConnect, suas rotas aparecerão automaticamente e ajudarão você a se conectar à VPN. Isso é especialmente útil para acessar servidores por VPN, por exemplo, como o FireHost faz as coisas.

    
por 11.02.2014 / 19:49
2

Eu não sei quando foi apresentado, mas o cliente OpenSSH no RHEL7 tem isso em sua página de manual:

 -b bind_address
         Use bind_address on the local machine as the source address of the connection.  Only useful on systems with more than one address.

Não é tão bom quanto poder escolher a interface, mas fechar.

    
por 26.04.2018 / 17:55

Tags