Meu servidor deve estar conectado a uma VPN comocliente. Quando executo o script OpenVPN (do HMA), a conexão da minha máquina local com o servidor via SSH é perdida - a conexão não é mais possível e tenho que encerrar manualmente o processo VPN. Além disso, um serviço TOR oculto (página .onion) não está disponível nesse período.
É possível de alguma forma que a página TOR esteja disponível e eu possa me conectar via SSH enquanto o servidor estiver conectado à VPN?
Responder1
O problema é que o gateway padrão é alterado pelo OpenVPN e isso interrompe qualquer conexão que entre na interface não VPN. O Linux enviará respostas aos pacotes que chegaram na interface real pela interface VPN! Você precisa configurar rotas apropriadas antes de iniciar o OpenVPN.
O que se segue funciona para mim. Ele usa iptables e ip (iproute2). Abaixo, presume-se que a interface de gateway padrão antes do OpenVPN ser iniciado é "eth0". A idéia é garantir que quando uma conexão com a eth0 for feita, mesmo que a eth0 não seja mais a interface de gateway padrão, os pacotes de resposta para a conexão retornem à eth0 novamente.
Você pode usar o mesmo número para a marca de conexão, marca de firewall e tabela de roteamento. 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
===
ATUALIZAR:
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
"12.345.67.89" deve ser o gateway não VPN original.
Responder2
Eu tenho um problema similar. Meu desktop Ubuntu está em uma VPN e minha conexão SSH normal não funciona fora da rede doméstica.
Algo que 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 presumo que você precisaria saber o novo endereço IP atribuído pelo host VPN para saber a qual endereço se conectar.
Estou apenas dando suposições fundamentadas, sem solução conhecida; então, por favor, não abuse de mim se não funcionar. :)
Após uma investigação mais aprofundada, descobri que você precisa encaminhar as portas por meio de sua VPN (eu acho) porque a VPN está redirecionando a porta 80 e seus túneis SSH geralmente usam a porta 22. Acho que você precisa encaminhar a porta 22 por meio de sua VPN para que quando você se conecta ao seu VPN na porta 80, ele o redireciona para a porta encaminhada exigida pelo seu túnel SSH, ou seja. Massa.
Ainda não tenho 100% de certeza de que é assim que se faz. Se alguém puder confirmar isso, seria ótimo.