Como posso verificar se há portas abertas externamente em um determinado servidor?

1

Eu preciso determinar programaticamente se uma determinada porta no servidor em que meu script está sendo executado está aberta do mundo externo. Estou trabalhando sob a suposição de que a única maneira confiável de determinar isso, levando em consideração as portas que escutam e quaisquer firewalls existentes, seria fazer com que um serviço externo tente falar com a porta. / p>

Então, minha pergunta é em duas partes:

  1. Esta suposição inicial está correta? Preciso confiar em um serviço externo para detectar com segurança portas abertas externamente?
  2. Assumindo sim para 1, quais opções estão disponíveis para fornecer uma API gratuita? Eu olhei para canyouseeme.org e ping.eu , mas nenhum deles parece fornecer uma API. Eu poderia publicar nas mesmas páginas que os respectivos sites usam para o seu serviço baseado em HTML e raspar a resposta HTML, mas isso obviamente não é o ideal.
por Dan 29.03.2014 / 20:27

1 resposta

1

Sua primeira suposição é correta para infraestrutura de rede simples (roteadores domésticos e de pequenas empresas, por exemplo), organizações maiores e ISPs implementarão regras de firewall mais complexas que podem excluir IPs automaticamente com base na frequência e tipo de solicitação (DDoS), para citar apenas alguns parâmetros.

Eu não encontrei nenhuma API útil, esses sites vão fazer o truque como um tiro de uma só vez. Outra solução é usar seu telefone / tablet para executar ferramentas.

Você ainda pode executar uma varredura de uma das suas máquinas na rede (ou até mesmo a mesma máquina) em direção ao seu IP público, e isso fornecerá a lista de portas abertas (a menos que você tenha uma regra de firewall para permitir que todas as suas máquinas de rede para se conectar a qualquer porta em seu endereço IP público, mas eu não vejo o ponto disso).

    
por 29.03.2014 / 22:06