Я пытаюсь выяснить, где порт блокируется брандмауэром; либо по пути к хосту, либо самим хостом.
Если я запускаю nmap, я вижу, что порт фильтруется. Однако это может означать хост 192.168.1.74 или любой межсетевой экран между ними. Есть ли способ узнать где именно?
joel@bohr ~ $ nmap -A 192.168.1.74 --traceroute
Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-18 20:27 GMT
Warning: Traceroute does not support idle or connect scan, disabling...
Nmap scan report for android-63731d6ebec9e01.lan (192.168.1.74)
Host is up (0.040s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
2222/tcp filtered unknown
Брандмауэр может блокировать пакеты двумя способами: отбрасывать и отклонять. В случае отклонения IP-стек брандмауэра отправляет адрес назначения пакета ICMP, недоступный с кодом 9, 10 или 13:
http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml#icmp-parameters-codes-3
Это означает, что общение запрещено.
Но некоторые люди думают, что сообщать злоумышленнику о том, что разрешено, а что нет, является проблемой безопасности. Эти парни не отвергают, а сбрасывают пакеты.
В этом случае у вас нет возможности напрямую обнаружить брандмауэр. Вы можете только косвенно обнаружить брандмауэр. Если вы не получаете никакого ответа, вероятно, существует брандмауэр, потому что маршрутизатор отправит вам пакет о недоступности ICMP, если система не существует. Это предположение, которое Nmap делает в вашем случае.