Existe uma maneira de especificar qual NIC usar ao usar o ssh? CentOS

0

Estou executando o CentOS 6.6 VM em uma caixa virtual com as seguintes configurações de adaptador de rede.

  1. Adaptador em ponte para hospedagem de servidor da Web que pode ser acessado pela máquina host

  2. NAT com encaminhamento de porta para ssh da máquina host para a VM guest

A partir desta VM, eu quero ssh em uma máquina remota em uma VPN, a máquina host está conectada a. O diagrama a seguir descreve a configuração.

MyCentosVM =======SSH======= TargetMachine
MyCentosVM == Host == VPN == TargetMachine

Se eu desabilitar o adaptador em ponte, posso acessar o Target no problem porque o NAT permite que a VM seja transparente e seja "parte" da VPN. Contudo, se eu ativar o adaptador em ponte, agora o sshd do Target rejeita a conexão, mesmo antes do processo de autenticação.

Então, minha pergunta é, é possível especificar a VM para usar a interface NAT para ssh no Target?

    
por dorachan2010 04.10.2016 / 19:41

2 respostas

0

Diretamente, não, não existe. Você pode, no entanto, especificar o uso de uma máquina proxy ou de um encapsulamento usando o arquivo de configuração do SSH, geralmente localizado em ~/.ssh/config . Como alternativa, você desejará configurar a tabela de roteamento no convidado para percorrer a VPN quando o tráfego for destinado à máquina de destino. O SSH simplesmente usará o caminho de rede para o qual ele é direcionado pela máquina da qual você é o SSHing.

    
por 04.10.2016 / 19:47
0

Como eu fiquei sem comprimidos vermelhos, o seguinte não fornece uma solução para forçar uma interface específica para o tráfego SSH para um host específico. Isso também parece um problema XY , porque você não está tentando forçar uma interface, você está tentando fazer com que sua VM local interaja com um host que fica em uma rede remota. Eu ainda acho que posso te ajudar um pouco.

TL; DR: Adicione uma rota para sua VM do CentOS que deve usar o roteador acessível por meio da interface NAT ao interagir com o Target. ip route add <Target>/32 via <router_ip_address>

No geral, sua configuração parece estar quebrada. Se realmente é a máquina alvo que rejeita suas conexões SSH, ela está definitivamente quebrada.

  • A VPN destina-se apenas a permitir que seu host na rede
  • ou destina-se a ligar as suas redes.

No primeiro caso, seu tráfego SSH nunca deve atingir a máquina de destino. Como consequência, não pode rejeitá-lo.

No segundo caso, a VPN / instalação falha em sua tarefa de conectar suas duas redes adequadamente.

A partir do que você descreve, concluo que a VPN serve apenas para conectar seu host a alguma rede. Se for esse o caso, todo o problema é um problema de roteamento e a única maneira viável de sua VM interagir com as máquinas na VPN (além do host) é através do NAT do seu host. Portanto você sempre tem que escolher a interface NAT, não apenas para SSH.

Se você não ativar o adaptador em ponte, sua VM usará uma rota por meio da interface NAT para interagir com o Target. (Use ip route show para exibir as rotas configuradas.) Assim que você ativar o adaptador em ponte, ele usará uma rota por meio do adaptador em ponte. Isso também é indicativo de que sua configuração está quebrada. Por exemplo, pode haver sobreposição de sub-redes IP e / ou várias rotas padrão em sua VM.

Seu problema atual parece ser que, assim que você ativar o adaptador em ponte, sua VM do CentOS aprenderá uma rota padrão que prefere ao usar a interface NAT.

Para resolver seu problema, você precisa adicionar uma rota à sua VM do CentOS, que instrui o sistema a usar o roteador acessível por meio da interface NAT ao interagir com o Target ou até mesmo para todos os hosts da rede VPN. Se não houver mais nada errado com sua configuração, esta rota sempre terá precedência sobre a rota padrão.

No final, é um single:

ip route add \
<network_id_of_vpn_network>/<prefix_length_of_vpn_network> \
via <your_hosts_ip_on_the_NAT_network>'
    
por 04.10.2016 / 20:40