SSH para o servidor que está conectado à VPN

1

Meu servidor deve estar conectado a uma VPN como cliente . Quando eu executo o script OpenVPN (do HMA), a conexão da minha máquina local para o servidor através do SSH se perde - a conexão não é mais possível e eu tenho que matar manualmente o processo da VPN. Além disso, um serviço TOR oculto (página .onion) está indisponível nesse período.

É possível de alguma forma que a página TOR esteja disponível e eu possa me conectar através de SSH enquanto o servidor está conectado à VPN?

    
por enigma969 08.07.2015 / 20:05

2 respostas

2

Eu tenho um problema semelhante. Meu desktop Ubuntu está em uma VPN e minha conexão SSH normal não funciona fora da rede doméstica.

Algo que eu acabei de pensar, no entanto. Você ainda tem as portas encaminhadas para esse computador?

A VPN atribui um novo endereço IP do site VPN para que o roteador não consiga mais encontrar esse endereço IP para se conectar.

Eu diria que você precisaria conhecer o novo endereço IP atribuído pelo host da VPN para saber para qual endereço se conectar.

Eu só estou dando palpites educados, correção não conhecida; então por favor não me abuse se não funcionar. :)

Em investigações posteriores, descobri que você precisa encaminhar as portas através de sua VPN (eu acho) porque a VPN está redirecionando a porta 80 e seus túneis SSH geralmente usam a porta 22. Eu acho que você precisa encaminhar a porta 22 através de sua VPN de modo que quando você se conecta à sua vpn na porta 80, ele redireciona você para a porta encaminhada exigida pelo seu túnel SSH, ou seja. POTTY.

Ainda não tenho 100% de certeza de como fazer isso. Se alguém puder confirmar isso, seria ótimo.

    
por Ben Heininger 11.02.2016 / 01:01
1

O problema é que o gateway padrão é alterado pelo OpenVPN e que interrompe qualquer conexão que esteja chegando na interface não-VPN. O Linux enviará respostas aos pacotes que chegaram na interface real da interface VPN! Você precisa configurar rotas apropriadas antes de iniciar o OpenVPN.

O que segue funciona para mim. Ele usa iptables e ip (iproute2). Abaixo, é assumido que a interface de gateway padrão antes de o OpenVPN ser iniciado é "eth0". A idéia é garantir que, quando uma conexão com a eth0 seja feita, mesmo que a eth0 não seja mais a interface de gateway padrão, os pacotes de resposta para a conexão voltarão à eth0 novamente.

Você pode usar o mesmo número para a marca de conexão, marca de firewall e tabela de roteamento. Eu usei números distintos para tornar as diferenças entre eles mais aparentes.

# set "connection" mark of connection from eth0 when first packet of connection arrives
sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

# set "firewall" mark for response packets in connection with our connection mark
sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 table 3412

# route packets with our firewall mark using our routing table
sudo ip rule add fwmark 4321 table 3412

===

ATUALIZAÇÃO:

O acima funciona bem para mim no Debian Jessie. Mas em um sistema Wheezy mais antigo acabei de descobrir que preciso adicionar "via" à entrada da tabela de roteamento:

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 via 12.345.67.89 table 3412

Existe "12.345.67.89" que deve ser o gateway não-VPN original.

    
por John Doe 05.08.2016 / 05:32