1

Как я могу подтвердить, что моя сеть блокирует исходящие порты?

У меня проблемы с доступом к сервисам на серверах, работающих на портах, отличных от портов 80 и 443. Например, я не могу подключиться по ssh ни к одному из моих серверов, где ssh работает на портах 22, 2222, 32415 и т.д.

Более того, другие программы, которые мне нужны для работы, не работают, такие как openvpn.

В идеале я хотел бы определить список портов, которые сеть не блокирует.

Я нахожусь в публичной точке доступа в библиотеке.

2 ответа2

3

Чтобы проверить, не блокируется ли какой-либо исходящий порт в вашей сети каким-либо вредоносным промежуточным портом, вы можете попробовать подключиться к серверу, на котором запущена служба.

В этом примере мы используем portquiz.net - публичный сервис, разработанный для этой цели. Он использует таблицу iptables nat и все порты TCP открыты.

# 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:~$ 

Обратите внимание, что первая команда немедленно вышла с сообщением Connected to portquiz.net , которое указывает, что исходящий порт 443 не заблокирован сетью.

Однако вторая команда говорит, что Unable to connect to remote host: Connection timed out . Это показывает, что - если нет проблем с portquiz.net - исходящий порт 22, вероятно, заблокирован в вашей сети.

Вы можете сделать этот шаг дальше, используя nmap, чтобы получить список всех портов, которые не заблокированы сетью. Например:

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:~$ 

В приведенной выше команде мы видим, что все исходящие порты заблокированы, кроме 21, 53, 80, 143, 443, 465, 587, 993, 1935 и 4070. В обычной / не прошедшей цензуру сети этот список будет намного, намного длиннее (вероятно, отображает все 65535 портов)

1

Этот вопрос немного расплывчатый, и на него сложно ответить - и по иронии судьбы я ударился этим утром. Это невозможно сделать полностью без помощи вашего интернет-провайдера.

Первое, что нужно сделать, это проверить, что ваш маршрутизатор пропускает все это - это состояние по умолчанию для типичного маршрутизатора SOHO. В зависимости от вашего роутера, вы можете запустить tcpdump на нем, глядя на внешний интерфейс (например, если на нем запущен dd-wrt) и посмотреть, покидают ли пакеты вашу сеть. Если вы не можете сделать это, ваши возможности здесь очень ограничены - включенный интернет-провайдер может сообщить вам, видят ли они пакеты, поступающие в их сеть, - но я не ожидаю этого для вашей заурядной программы. подключение домашнего пользователя. В качестве альтернативы, если вы можете отключить все постороннее от вашей сети, вы МОЖЕТЕ получить подсказку о том, что трафик покидает его, основываясь на количестве пакетов интерфейса PPP или глядя на мигающие индикаторы на модеме / маршрутизаторе при попытке установить соединение ,

Затем, если вы можете получить доступ к серверу / виртуальному серверу, который, как вы знаете, не имеет проблем с подключением и который имеет свой собственный "реальный" IP-адрес или отвечает на сервере, вы можете войти в этот удаленный ящик и использовать tcpdump на интерфейсе, чтобы проверить, получает ли он пакеты с вашей машины. Если нет, то пакеты отбрасываются - если они принимаются, то это может быть брандмауэр или проблема на обратном пути.

Если у вас есть доступ к удаленному (не подключенному к сети) серверу, вы можете создать на нем tcpdump, используя nmap или netcat для генерации трафика на этот сервер и просмотра того, что видит tcpdump.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .