Tempo limite de conexão SSH após alguns segundos quando minha segunda interface está ativa [fechada]

1

Então eu estou tão perdido sobre o que fazer para depurar agora. Passei algumas semanas nessa questão sem entender o que está acontecendo.

Estou tentando fazer com que o servidor ssh trabalhe apenas com conexões da sub-rede admin, mas isso não deve interromper o tráfego roteado de qualquer sub-rede para a sub-rede admin.

Então aqui está a configuração. Eu tenho uma VM no debian 9. Esta VM tem duas interfaces, eth0 na sub-rede do usuário e eth1 na sub-rede admin. Ambas as sub-redes possuem um servidor DHCP / DNS que é o pfsense. Hostnames são adicionados automaticamente ao DNS.

Meu arquivo de configuração sshd é o padrão ativado, com o login raiz desativado e ListenAddress definido como eth1 IP.

Até agora, esse é o comportamento que vi:

As duas interfaces estão ativas, ListenAddress ativado:

  • ssh da rede do usuário por meio do roteador pfsense: conexão estabelecido, pode atuar por um curto período de tempo, então o terminal congela e expira. Em wireshark eu tenho algumas retransmissões TCP neste momento
  • ssh diretamente da rede de administração: tudo funciona
  • ssh de um computador com a rede: tudo funciona
  • ssh de uma terceira rede (com regra para proibir o acesso à rede do usuário): tudo funciona

Ambas as interfaces estão ativas, ListenAddress desativado:

  • Tudo funciona, mas é claro que o ssh está disponível por meio do usuário interface de rede

Interface eth0 desativada, ListenAddress ativado:

  • Tudo funciona

Não há nenhum firewall no servidor de propósito. Eu uso o endereço IP para ssh e não o nome do host, mas ambos têm o mesmo resultado, não importa se as duas interfaces têm o mesmo ou um hostname diferente.

Eu realmente não sei de onde o problema está vindo. Para mim, não pode ser o pfsense porque agora simplesmente permite que todo o tráfego de rede da rede do usuário vá para a rede administrativa. Mas talvez eu esteja errado. E nenhum erro nos logs do sshd também.

    
por Vlycop Doo 13.08.2017 / 19:41

1 resposta

3

Seu problema é que os pacotes TCP enviados pelo seu servidor usam outro caminho além dos pacotes TCP que você envia a ele, e seu pfsense então acha que a conexão não está estabelecida e a remove de sua tabela de conexões estabelecidas, rejeitando qualquer entrada. pacotes.

Os pacotes TCP que vão da sua máquina na rede do usuário para o seu servidor são enviados para o roteador pfsense, que os encaminha para o seu servidor ssh. Como o seu servidor ssh possui uma interface na sua rede de usuários, os pacotes de retorno são enviados diretamente para sua máquina através de sua interface na rede do usuário. Conseqüentemente, o pfsense só vê os pacotes indo de sua máquina para o servidor e, como os primeiros quadros TCP SYN não foram reconhecidos, ele decide que a conexão está morta após algum tempo e descarta os pacotes subsequentes.

Uma solução rápida no pfsense seria SNAT os pacotes ssh indo da rede do usuário para a rede administrativa. Assim, o servidor ssh usaria o pfsense para seu caminho de retorno. O servidor ssh então seria incapaz de saber o endereço de origem real, é claro.

Uma abordagem melhor é usar o roteamento baseado na origem. Veja esta questão por exemplo.

    
por 13.08.2017 / 21:01