Por que não consigo logar em um servidor linux com erro de rede?

2

Olá pessoal, estou tendo um problema com a conexão a um servidor Linux corporativo Red Hat através do ssh, o seguinte erro aparece: "Erro de rede: a conexão expirou"

O servidor está localizado em uma VLAN que deve estar acessível para mim, eu posso fazer o ping mas não consigo me conectar a ele através do putty ou WinSCP, ele escuta na porta padrão 22, eu tenho um IP dinâmico e toda vez que eu tem que se conectar ao servidor um colega que tem logs de IP estáticos para ele e adiciona meu ip para o arquivo hosts.allow, funcionou bem no começo, mas ultimamente parou de funcionar. Eu tenho certeza que não é o problema de hosts.allow porque quando meu ip não era permitido eu tinha uma mensagem de erro diferente, algo como: "A conexão do servidor fechou inesperadamente" e estava tentando reconectar em 5 segundos. Agora o erro é diferente e acho que tem que fazer alguma coisa com firewalls da rede, só não entendi porque eu poderia logar antes com um IP diferente e agora não posso. É possível que o firewall bloqueie determinados endereços IP e permita outros?

    
por user62154 02.11.2010 / 10:51

1 resposta

4

"A conexão expirou" soa como um problema de firewall. Tente dividir a conexão nas etapas individuais realizadas no nível da rede:

  • ping -n $ HOSTNAME
  • telnet $ IP_ADDRESS 22

O ping testará a resolução do nome em um IP e você poderá executar o ping desse host. Se você puder fazer o ping, você sabe que tem conectividade de rede. Embora não seja capaz de fazer ping, isso não significa que você não tem conectividade com ele, já que os pings podem ser filtrados.

Use o endereço IP do ping no telnet e telnet para a porta SSH. Se isso leva muitos segundos e relata "Conexão esgotada", parece que há um firewall no caminho.

Como você disse, se tcpwrappers fosse o problema, provavelmente seria o resultado da "conexão fechada inesperadamente". Se, por algum motivo, o SSH não estiver em execução, você receberá um erro de "conexão recusada".

Se você tiver acesso root no servidor, verifique o firewall do host com iptables-save | less (ou similar, se não for Linux). Se não estiver lá, você provavelmente precisará ter quem quer que execute os firewalls de verificação de rede que possam existir lá.

Se iptables-save não retornar nada, may significa que você não está executando como root. No entanto, isso também pode significar que não há regras. Se, no entanto, ele retornar 20 ou mais linhas de saída, provavelmente existe um firewall.

Você pode adicionar uma regra temporária de permissão de firewall, para poder testar se o firewall é um problema, executando:

iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT

Isso provavelmente permitiria uma conexão ssh a menos que haja algum problema mais profundo com o firewall, como uma regra ruim de NAT, que é mais difícil de diagnosticar. Você poderia tentar desativar o firewall com um comando como (Fedora / CentOS / RHEL) "serviço sudo iptables stop" (Debian / Ubuntu) "sudo ufw disable" (embora no Debian / Ubuntu você possa estar executando algo diferente de ufw, não existe "padrão" que eu conheço).

Dito isso, uma coisa que você pode querer considerar é configurar uma VPN. Dessa forma, não importa qual seja o seu IP remoto, você usaria certificados ou chaves para autenticar a conexão VPN e, em seguida, obter um endereço IP estático na VPN que poderia ser permitido no firewall e nos wrappers TCP.

    
por 14.11.2010 / 23:30