O acesso SSH remoto não funciona quando o cliente OpenVPN está ativado no DD-WRT

2

Eu tenho um roteador DD-WRT que gostaria de acessar remotamente via SSH. O DD-WRT está por trás de um roteador ADSL que possui o encaminhamento de porta para a porta 22 ativada, o acesso DD-WRT SSH e o serviço estão configurados para a porta 22 também. O acesso remoto funciona bem. No entanto, o DD-WRT deve estar permanentemente conectado a um servidor VPN (usando o cliente OpenVPN integrado).

A conexão OpenVPN funciona bem, mas o acesso SSH remoto só funciona quando o cliente VPN está desativado.

Estou lendo que isso pode estar relacionado a todo o tráfego que está sendo roteado de saída por meio do gateway da VPN, incluindo o tráfego proveniente da WAN. É correto que eu precise definir uma configuração personalizada do iptables para solicitações recebidas pela WAN para serem respondidas via WAN também? Se sim, como eu faria isso? Se não, o que mais eu poderia fazer?

Estou tendo um problema semelhante com a GUI da web na porta 8080 e um servidor VPN PPTP na porta 1723, portanto, acredito que o problema não esteja relacionado ao SSH como tal.

Aqui estão os detalhes da minha configuração:

Dispositivos:

  • Roteador ADSL TP-Link W8151N
  • Roteador TP-Link WR1043ND com DD-WRT 25544

Endereços IP:

  • Roteador ADSL externo: 115.x.x.x
  • Roteador ADSL interno: 192.168.1.1
  • IP WAN DD-WRT: 192.168.1.100 (do roteador ADSL)
  • IP DD-WRT: 192.168.10.1
  • DD-WRT IP externo (VPN): 119.x.x.x
  • Apelido DDNS apontando para a conexão do roteador ADSL: 115.x.x.x

Configuração:

  • Roteador ADSL com encaminhamento de porta ativado para portas 22/8080, DDNS para 192.168.1.100
  • DD-WRT configurado para permitir gerenciamento de GUI remoto no 8080, também de IPs remotos e acesso SSH aos 22, SSH ativado nos serviços, também em 22.
  • DD-WRT conectado ao OpenVPN usando o recurso de cliente integrado na guia "Serviços"

Editar 05 de março: o que tentei enquanto isso:

Adicionando o seguinte ao campo Policy Based Routing nas configurações do cliente OpenVPN (idéia: o tráfego proveniente do ip da WAN deve ser roteado de volta para a interface WAN, vlan2 ou ppp0):

ip rule add from 192.168.1.1 table 200
ip route add default via 192.168.1.1 dev vlan2 table 200
ip route flush cache

Resultado: quando a conexão VPN é estabelecida, não consigo mais acessar a GUI e a Web. Meu roteador está configurado para reiniciar depois de três minutos sem conseguir acessar o DNS do Google, então depois de três minutos eu tenho acesso à GUI e à web novamente, mas apenas até que a conexão VPN esteja de volta.

Estou completamente no caminho errado com essa abordagem?

    
por nhee 01.03.2015 / 07:13

2 respostas

0

No DD-WRT, vá para Serviços - > VPN - > Cliente OpenVPN - > Encaminhamento baseado em política , adicione uma linha para cada cliente cujo tráfego deseja encaminhar através do túnel da VPN, por exemplo

    192.168.10.20/32
    192.168.10.21/32
    ...

Como resultado, o cliente OpenVPN não encaminha mais todo o tráfego pelo túnel e, portanto, também abre a WAN novamente. Agora eu tenho o cliente VPN em execução enquanto ainda é capaz de SSH / PPTP / GUI para o roteador através do IP da WAN ou um alias DDNS.

(Há provavelmente uma maneira mais inteligente do que adicionar uma linha para cada cliente, mas todas as máscaras de rede diferentes que tentei resultaram no roteador não estar mais acessível, então acabei adicionando uma linha para todos os IPs no meu intervalo DHCP.)

    
por 01.04.2015 / 17:07
2

Eu não estava feliz com o roteamento baseado em políticas, por isso, depois de um final de semana inteiro de pesquisa, cheguei a isso.

Os pacotes chegam ao roteador se você tentar o SSH contra o IP da WAN, no entanto, porque todo o tráfego de saída é desviado através da VPN (interface tun0 ), o SSH não será bem-sucedido.

O que está faltando é uma regra OUTPUT em iptables para rotear o tráfego na porta 22 através da interface vlan2 (essa é a interface conectada diretamente à Internet)

# Create table 202 via the Gateway Ip on the Interface VLAN2
ip route add default via $(nvram get wan_gateway) dev vlan2 table 202

# Apply the rule on table 202 to packages marked with 22
ip rule add fwmark 22 table 202

# Tag with 22 every output package on port 22 not coming from any  machine in the local network
iptables -t mangle -I OUTPUT -p tcp --sport 22 -d ! 192.168.1.0/24 -j  MARK --set-mark 22

Observe que o último comando ignora os pacotes da rede local no meu caso 192.168.1.0/24, porque, ao ser SSHing de um host local, os pacotes devem ser roteados por br0 e não vlan2 .

Primeiro, emita estes comandos na linha de comando do seu roteador para garantir que eles trabalhem com você, se de alguma forma eles quebrarem o roteamento, um reinício irá apagá-los. Depois de ter certeza de que eles funcionam, você pode adicioná-los ao script de firewall do seu roteador

Observe que o meu IP e porta de configuração é diferente porque não estou usando os valores padrão.

    
por 19.12.2016 / 21:07