[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mistério dos servidores x portas



Thiago Arrais wrote:

Pessoal,

Esta dúvida é mais de configuração de rede do que de Debian
propriamente dito. Estou postando aqui por não ter encontrado até
agora local mais apropriado.

Tenho um sistema Debian que roda três servidores, um SSH, um HTTP e um
SubVersioN. O sistema está atrás de um roteador com as devidas portas
redirecionadas. O problema é que nem todos os servidores estão
acessíveis para qualquer máquina na Internet.

Fiz uma experiência com meu SSH e HTTP nas portas 2222 e 8000
respectivamente. Tentei acessá-lo a partir de duas máquinas
diferentes, em locais diferentes. Uma das máquinas (que vou chamar de
A) podia acessar os dois servidores, enqüanto a segunda (que vou
chamar de B) só acessava o servidor HTTP . Eu, como bom leigo
desinformado, pensei que a sub-rede onde estava conectada a segunda
máquina (B) estava bloqueando tráfego para a porta 2222.

Fiz um segundo teste, invertendo as portas dos servidores. Surpresa:
eu continuava conseguindo acessar o servidor HTTP (agora na porta
2222), mas não o SSH na 8000.

Eu já estava me acostumando à idéia de que a máquina B não sabia era
falar SSH com meu sistema específico, quando coloquei o servidor SSH
para escutar sua porta padrão (a 22). Para minha nova surpresa, agora
tanto a máquina A quanto a máquina B têm acesso ao SSH.

A questão é que coloquei também um servidor Subversion (que escuta por
padrão a porta 3690) e a máquina B não consegue acessá-lo diretamente,
enqüanto a máquina A consegue perfeitamente. Claro que, agora com o
serviço SSH rodando normalmente, posso tunelar a porta 3690, mas seria
bem mais higiênico acessar o servidor subversion diretamente.

Não entendo muito de redes, servidores, portas e protocolos, mas fiz
meu dever de casa no google nosso de cada dia. Porém, por não saber
muito bem onde procurar, ainda estou preso.

Alguém tem alguma idéia?

Thiago,

Toda a magia dos problemas do mundo de redes vem do fato de nossos pacotes passarem por redes de outros. Nada se sabe com certeza sobre o que fazem com nossos preciosos pacotes que por lá circulam. Só podemos fazer algumas especulações e mesmo assim ninguem garante que nada possa ser alterado.

Algum roteador 'esperto' do meio do caminho pode estar achando que a porta 8000 (e a 3690) não merecem serem tratadas como meros pacotes normais e os derrubam e/ou modificam. As causas são variadas: má configuração, filtros ligados intencionamente, etc. Além disso, as rotas são dinâmicas e não necessariamente são as mesmas para os pacotes. Acho difícil existir um proxy transparente no meio do caminho, a nao ser que seja na fronteira da sua rede/empresa.

O ideal seria vc colocar um programa no roteador pra registrar todos os pacotes que chegarem um certo conjunto de portas (gravando inclusive as flags tcp/ip SYN, ACK, etc) e tentar mandar a partir da máquina remota pacotes e observar o resultado. Fazer isso com uma certa frequencia e anotar os resultados. Seria interessante também anotar o resultado do traceroute do momento.

Por exemplo, pode ser que o SSH está ligando um bit X no TCP (sei lá URG, PSH, etc) e algum roteador dá drop nele. Se não me engano antigos roteadores CISCO tinham algum problema (com congestionamento, se não estou enganado - já faz tempo que li sobre isso), e davam drop sem dó nem piedade.

Uma outra opção seria escolher uma outra porta e testar.... ou então, se possível trocar o IP da máquina B (levá-la para outro lugar, p.e.)

Esses problemas de rede não são fáceis mesmo... são potencialmente cabeludos.

--
Marcos



Reply to: