У меня есть хост за маршрутизатором (Thomson TWG870) с двумя правилами пересылки:

1. external: 0.0.0.0:22, internal: 192.168.0.10:22
2. external: 0.0.0.0:26, internal: 192.168.0.10:26

Есть ssh serer, работающий на 192.168.0.10 на порту 22. Нет приложения, работающего на порту 26. И вот мой вопрос. Когда я запускаю онлайн сканер портов (например, http://www.ipfingerprints.com/portscan.php ) и проверяю порты 22 и 26, он возвращает, что порт 22 open (как и ожидалось), но порт 26 указан как filtered . Разве это не должно быть указано как просто closed так как порт открыт, но приложение не запущено? Как это можно настроить, чтобы ответить closed?

PS Когда я проверяю порт 27 (например), который не пересылается на маршрутизаторе, я также получаю filtered состояние.

2 ответа2

1

Это зависит от того, что сайт использует для сканирования вашего внешнего адреса.

Если это сканирование SYN, например, из nmap он определен как "открытый" порт TCP, если пакет SYN, отправленный nmap, получает пакет ACK от целевой системы.

Обычно при сканировании, когда вы видите фильтрованный, это потому, что порт открыт, но открыт только для указанного IP-адреса или диапазона сети. Вы обычно не видите это с правилами "any или 0.0.0.0".

Вы не должны видеть порт открытым, если нет целевого порта переадресации. (Это предполагает, что маршрутизатор не предоставляется вашим провайдером с портами, открытыми / отфильтрованными для их использования.) Известно, что Verizon делает это с маршрутизаторами Actiontec, чтобы передавать обновления прошивки и руководства VOD по своей сети.

Попробуйте сканировать вашу сеть с помощью Nmap. Или попробуйте использовать другие сайты, такие как canyouseeme.org. и посмотрите, соответствуют ли сканы тому, что вы видите.

0

Разве это не должно быть указано как просто закрытый, так как порт открыт, но приложение не запущено?

Технически да, но это зависит от вашей ОС - некоторые (например, Windows или FreeBSD) по умолчанию используют некий "скрытый режим", в котором порты без прослушивателей не вызывают никакого ответа.

("Закрыто" - это TCP RST или ICMP "Порт недоступен", в то время как "отфильтровано" - вообще не ответ.)

Для Windows смотрите следующие статьи:

Как указано в них, вы должны иметь возможность отключить стелс-режим, используя:

reg add HKLM\Software\Policies\Microsoft\WindowsFirewall\PrivateProfile /v DisableStealthMode /t REG_DWORD /d 1
reg add HKLM\Software\Policies\Microsoft\WindowsFirewall\PublicProfile /v DisableStealthMode /t REG_DWORD /d 1

Для FreeBSD (например, pfSense) эквивалентными параметрами sysctl являются net.inet.tcp.blackhole=0 и net.inet.udp.blackhole=0 .

PS Когда я проверяю порт 27 (например), который не пересылается на маршрутизаторе, я также получаю фильтрованное состояние.

В вашем маршрутизаторе пакеты к не переадресованным портам рассматриваются как входные данные (то есть полученные самим маршрутизатором). Опять же, межсетевой экран маршрутизатора очень часто будет иметь последнее правило, которое отбрасывает неизвестные пакеты, а не отклоняет их.

В зависимости от типа маршрутизатора это можно настроить, добавив пользовательское правило брандмауэра, которое отклоняет неизвестные пакеты.

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