Como detectar se uma rede está bloqueando as portas de saída?

1

Como posso confirmar se minha rede está bloqueando as portas de saída?

Estou tendo problemas ao acessar serviços em servidores que estão sendo executados em portas diferentes das portas 80 e 443. Por exemplo, não posso usar ssh em nenhum dos meus servidores em que o ssh está executando nas portas 22, 2222, 32415 etc.

Além disso, outros programas que eu preciso para trabalhar estão falhando, como o openvpn.

Idealmente, gostaria de determinar uma lista das portas que a rede está bloqueando .

Estou em um ponto de acesso público em uma biblioteca.

    
por maltfield 03.07.2018 / 02:17

2 respostas

3

Para testar se uma determinada porta de saída está bloqueada em sua rede por alguma middlebox mal-intencionada, você pode tentar fazer telnet em um servidor que tenha um serviço em execução nessa porta.

Neste exemplo, usamos portquiz.net - que é um serviço público projetado para essa finalidade. Ele usa a tabela iptables 'nat e tem todas as portas tcp abertas .

# first we verify that we _can_ connect over port 443, which >99% of
# networks won't block; it works
user@personal:~$ time echo 'exit' | telnet portquiz.net 443
Trying 178.33.250.62...
Connected to portquiz.net.
Escape character is '^]'.
Connection closed by foreign host.

real    0m0.069s
user    0m0.002s
sys 0m0.043s
user@personal:~$ 

# next we try to connect over a port that's suspected of being blocked; it fails
user@personal:~$ time echo 'exit' | telnet portquiz.net 22
Trying 178.33.250.62...
telnet: Unable to connect to remote host: Connection timed out

real    2m10.635s
user    0m0.004s
sys 0m0.035s
user@personal:~$ 

Observe que o primeiro comando saiu imediatamente com a mensagem Connected to portquiz.net , que indica que a porta de saída 443 está não sendo bloqueada pela rede.

O segundo comando, no entanto, diz Unable to connect to remote host: Connection timed out . Isso mostra que - a menos que haja um problema no portquiz.net - a porta de saída 22 provavelmente está sendo bloqueada em sua rede.

Você pode levar isso um passo adiante usando o nmap para obter uma lista de todas as portas não bloqueadas pela rede . Por exemplo:

user@personal:~$ time nmap -p- portquiz.net | grep -i open
21/tcp   open   ftp
53/tcp   open   domain
80/tcp   open   http
143/tcp  open   imap
443/tcp  open   https
465/tcp  open   smtps
587/tcp  open   submission
993/tcp  open   imaps
1935/tcp open   rtmp
4070/tcp open   unknown

real    3m48.324s
user    0m18.885s
sys 0m29.077s
user@personal:~$ 

No comando acima, podemos ver que todas as portas de saída estão bloqueadas, exceto 21, 53, 80, 143, 443, 465, 587, 993, 1935 e 4070. Em uma rede normal / sem censura, essa lista seria muito, muito mais tempo (provavelmente mostrando todas as 65535 portas )

    
por 03.07.2018 / 02:36
1

Esta pergunta é um pouco vaga e, portanto, difícil de responder - e, ironicamente, eu bati com a cabeça contra esta manhã. É impossível fazer isso totalmente sem a ajuda do seu ISP.

A primeira coisa a fazer é verificar se o seu roteador está permitindo tudo isso - esse é o estado padrão para um roteador SOHO típico. Dependendo do seu roteador, você poderá rodar o tcpdump nele olhando para a interface externa (por exemplo, se estiver rodando o dd-wrt) e ver se os pacotes estão saindo da sua rede. Se você não pode fazer isso, suas opções são muito limitadas aqui - um ISP ligado pode ser capaz de dizer se eles estão vendo os pacotes entrando em sua rede - mas eu não esperaria isso para o seu medíocre conexão de usuário doméstico. Alternativamente, se você puder desconectar tudo que estiver estranho na sua rede, você poderá obter uma sugestão se o tráfego estiver deixando-o com base na contagem de pacotes da Interface PPP ou observando as luzes piscando no modem / roteador ao tentar fazer conexões .

Em seguida, se conseguir entrar em um servidor / servidor virtual que você sabe que não está com problemas de conectividade e que tem seu próprio endereço IP "real" ou está respondendo no servidor, você pode fazer login nessa caixa remota e use o tcpdump na interface para verificar se está recebendo pacotes de sua máquina. Se não, então os pacotes estão sendo descartados - se eles estão sendo recebidos, então pode ser um firewall ou problema no caminho de retorno.

Se você tiver acesso a um servidor remoto (não-protegido), você pode fazer um tcpdump nele usando nmap ou netcat para gerar tráfego para esse servidor e ver o que o tcpdump vê.

    
por 03.07.2018 / 02:39