Estaremos implantando um novo aplicativo em um servidor e o aplicativo estará escutando na porta 8443. Pedimos à equipe de rede para abrir o firewall da porta 8443 nesse servidor antes de implantar o aplicativo. Não há nenhum aplicativo atualmente escutando nessa porta específica do servidor.
Existe alguma maneira de garantir que o firewall esteja aberto para a porta 8443
SO: Linux/Windows
Responder1
Se você quiser ver se pode formar uma conexão TCP a partir de uma máquina remota, instale o OpenCSW nessa máquina e na máquina de destino e instale o netcat em ambas. Esta é a sintaxe para usar o netcat para testar conexões TCP:
nc -vz targetServer portNum
Por exemplo, para verificar o SSH em "homeServer1":
nc -vz homeserver1 22
Isso permite testar a conectividade em nível TCP do sistema remoto. O Netcat também pode ser configurado para escutar em uma porta em vez de atuar como cliente. Para fazer com que ele escute no TCP/8443:
No servidor que hospedará a aplicação:nc -l homeserver1 8443
Em uma máquina fora do firewall:nc -vz homeserver.fqdn 8443
Este é um exemplo de execução bem-sucedida:
[jadavis6@ditirlns01 ~]$ nc -vz ditirlns01.ncat.edu 8443
Connection to ditirlns01.ncat.edu 8443 port [tcp/pcsync-https] succeeded!
Uma execução com falha:
[jadavis6@ditirlns01 ~]$ nc -vz ditirlns01.ncat.edu 8443
nc: connect to ditirlns01.ncat.edu port 8443 (tcp) failed: Connection refused
Responder2
Firewallsdeveresponda com umMensagem ICMPquando eles bloqueiam uma solicitação. No entanto, este não é necessariamente o caso (você estará interessado emeste belo artigo).
Você pode testar externamente para ver se uma porta está acessível através de um firewall e, em caso afirmativo, se alguma coisa está escutando nela. Aqui estão três cenários diferentes envolvendo uma solicitação tcp que você pode observar com o wireshark
, ou algum outro sniffer de pacotes, e o que você verá:
1) Firewall rejeita solicitação
Você recebe uma mensagem ICMP de volta e a ferramenta que faz a solicitação deve informar imediatamente algo nesse sentido ("inacessível, proibido pelo administrador", etc.). Por "ferramenta" quero dizer o cliente que você está usando para enviar a solicitação (eu usei telnet
). Os detalhes da mensagem 1 dependem de como o firewall está configurado, mas “porta inacessível” é provavelmente a mais comum.
"Nenhuma rota para o host" pode indicar isso, mas também pode indicar problemas de roteamento mais sutis.
2) Firewall descarta pacote
Não há resposta, então a ferramenta espera até que o tempo acabe ou você fique entediado.
3) O firewall permite pacotes (ou não há firewall), mas nada está escutando na porta.
Você recebe uma mensagem TCP RST/ACK de volta. Presumo que o protocolo TCP exija isso. Em outras palavras, se nada estiver escutando na porta, o próprio sistema operacional envia esta resposta. Pode ser difícil distinguir isso do nº 1 apenas com base no que a ferramenta relata, porquepoderiadiga a mesma coisa em ambos os casos (no entanto, provavelmente distingue isso como "conexão recusada" vs. nº 1, "rede inacessível"). Observados em um sniffer de pacotes na máquina cliente, os cenários nº 1 (mensagem de rejeição ICMP) e nº 3 (mensagem TCP RST/ACK) são claramente distintos.
A única outra opção aqui é que o pacote seja permitido pelo firewall e algo esteja escutando, para que você obtenha uma conexão bem-sucedida.
Em outras palavras: presumindo que sua rede em geral funcione corretamente, se você obtiver o número 1 ou o número 2, significa que um firewall está impedindo ativamente o acesso à porta. O número 3 acontecerá se o seu servidor não estiver funcionando, mas a porta estiver acessível e, claro, (o implícito) o número 4 for uma conexão bem-sucedida.
- Por exemplo, "porta inacessível", "host proibido", várias outras combinações dehost/porta/admineinacessível/proibido; procure-os na mensagem, pois são uma indicação explícita de um firewall IP em ação.
Responder3
Você pode usar o comando netstat
para ver se uma porta está aberta e escutando.
Exemplo
$ netstat -anp | less
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:41716 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 3034/dropbox
tcp 0 0 0.0.0.0:17501 0.0.0.0:* LISTEN 3033/dropbox
tcp 0 0 127.0.0.1:2143 0.0.0.0:* LISTEN 3191/ssh
tcp 0 0 127.0.0.1:2025 0.0.0.0:* LISTEN 3191/ssh
A saída mostra processos(coluna mais à direita)que estão escutando nas portas TCP. Os números das portas são os números que seguem os dois pontos após os endereços IP (0.0.0.0:111 seria a porta 111, por exemplo).
Os endereços IP mostramLocaleEndereços Estrangeiros.Localseria o seu sistema enquantoEstrangeiroseria qualquer endereço conectado à sua porta TCP ou conectado a uma de suas portas TCP.
Então, no caso da porta 22, esse é o daemon ssh rodando no meu sistema, éAUDIÇÃOpara conexões. Quando alguém tenta se conectar ao ssh
daemon, ele bifurca uma cópia de si mesmo e envia essa conexão para outra porta, mantendo a porta TCP 22 aberta para conexões adicionais à medida que elas chegam.
Responder4
Recentemente recebi o mesmo pedido e cheguei ao tópico. Consegui verificar portas abertas no FW com o comando nc, assim enquanto consulto sua saída:
nc -v -w 1 -z -s *srcIP destIP port* 2>&1 | grep timed > /dev/null && echo closed || echo open
Basicamente, se eu atingir o tempo limite, significa que a porta não está aberta no FW.