Кажется, никто раньше не задавал этот вопрос (большинство рассматривают межсетевые экраны на уровне хоста).
Любой, кто знаком с инструментами сканирования портов (например, nmap), знает все о сканировании SYN, сканировании FIN и т. п. для определения открытых портов на хост-машине. Однако вопрос в том, как определить открытые порты на самом брандмауэре (независимо от того, открыты или закрыты эти порты на хосте, к которому вы пытаетесь подключиться за брандмауэром). Это предполагает, что брандмауэр блокирует ваше IP-соединение.
Пример: Мы все общаемся с serverfault.com через порт 80 (веб-трафик). Сканирование на хосте покажет, что порт 80 открыт. Если serverfault.com находится за брандмауэром и все еще пропускает этот трафик, то мы можем предположить, что брандмауэр также открыл порт 80. Теперь предположим, что брандмауэр блокирует вас (например, ваш IP-адрес находится в списке запрещенных или отсутствует в списке разрешенных). Вы знаете, что порт 80 должен быть открыт (он работает для соответствующих IP-адресов), но когда вы (запрещенный IP) пытаетесь выполнить сканирование, все попытки сканирования портов на брандмауэре сбрасывают пакет (включая порт 80, который, как мы знаем, открыт). Итак, как мы можем выполнить прямое сканирование брандмауэра, чтобы выявить открытые/закрытые порты на самом брандмауэре, продолжая использовать запрещенный IP?
решение1
Вы этого не делаете. С точки зрения фильтрации пакетов нет разницы между тем, что показывает вам хост, и тем, что показывает вам брандмауэр. Если вы просканируете IP-адрес самого брандмауэра (предполагая, что у него вообще есть IP-адрес), маловероятно, что он будет использовать те же правила, что и для трафика, привязанного к хосту за ним.
Однако в некоторых конфигурациях вам может случайно быть показано, что разрешено брандмауэром.
Возьмем пример хоста, который отвечает на трафик на портах, которые он не прослушивает, отклонением ( RST
пакетом, что является нормальным поведением TCP), и брандмауэр, который молча отбрасывает трафик. Допустим, хост прослушивает только 80, но брандмауэр пропускает 80 и 25. Брандмауэр пропускает трафик порта 25, который хост отклоняет, порт 80, к которому хост подключается, и блокирует все остальные.
nmap покажет, что на этом хосте открыт порт 80, закрыт порт 25, а все остальные порты отфильтрованы. nmap создан для того, чтобы показывать наличие такого рода различий, чтобы помочь вам определить поведение рассматриваемого хоста.
решение2
Если вы используете веб-службу для сканирования портов или запускаете сканирование портов для своего внешнего IP-адреса из внешнего местоположения, вы увидите, какие порты открыты на брандмауэре.
Это первый веб-сервис, который я нашел с помощью поиска в Google; возможно, есть и другие:http://www.hackerwatch.org/probe/
решение3
Если у вас есть брандмауэр и вы хотите провести функциональные тесты против него, вы можете настроить сниффер на порту коммутатора, подключенном к его интерфейсу DMZ, до начала сканирования. Таким образом, вы сможете поймать любое появление прошедших пакетов, даже если целевой хост окажется недоступен или не ответит на определенном порту. Это даст вам больше видимости, чем может предоставить инструмент, выполняющий сканирование.