quinta-feira, 8 de março de 2012

SSH no Fedora 16: No route to host. WTF!!!

Hoje demorei para conseguir copiar um arquivo do meu Desktop para o Notebook, no Fedora 16.
Primeiro passo foi criar um dispositivo de rede virtual para ambas as máquinas.
Eu uso uma conexao compartilhada por um vizinho, através de uma rede sem fio, e o IP é fornecido pelo roteador dele. Ou seja, se eu fosse fazer uma troca de dados utilizando o escopo da rede fornecida por essa conexão seria muito lento.

Para criar o dispositivo virtual e colocar os dois computadores na mesma rede foi simples.
No PC
ifconfig eth0:1 10.0.0.2 up
No Notebook
ifconfig p4p1:1 10.0.0.1 up
* sendo eth0 o nome do dispositivo de rede no meu PC e p4p1 o nome do dispositivo de rede no meu notebook.

Depois disso, fui executar a conexão. BOMBA!!
Apareceu a mensagem No route to host.

Verifiquei o status do serviço sshd e estava tudo ok.
service sshd status
Reiniciei o serviço por precaução
service sshd restart
Acrescentei o IP do PC no arquivo /etc/hosts.allow no Notebook. Fiz o mesmo processo no PC.

Não funcionava. Depois descobri que não há necessidade (nesse caso) de mexer nesses arquivos.

Procurei no google e segui algumas instruções.

Verifiquei o serviço pelo netstat -an | grep :22

tcp    0   0   0.0.0.0:22   0.0.0.0:*   LISTEN
tcp    0   0   :::22             :::*   LISTEN


E analisei o IPTABLES.

iptables -L -n
Encontrado o problema:

Simplesmente não havia nenhuma regra definida para o ssh. Porta 22 bloqueada.

Chain INPUT (policy ACCEPT)
target     prot opt source       destination        
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0     state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0    0.0.0.0/0          
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0          
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source       destination        
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source       destination

Solução:

Adicionar uma regra para a porta 22 editando o arquivo /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp -dport 22 -j ACCEPT



Antes do

-A INPUT -j REJECT --reject-with icmp-host-prohibited
Salve o arquivo e reinicie o serviço com o comando
service iptables restart
Ou reinicie o PC, se precisar.



Fonte: http://nixcraft.com/linux-hardware/6366-no-route-host.html

Dica postada pelo usuário Andrew Burdyug
Share: