Поиск по сайту:

Как протестировать конфигурацию брандмауэра с помощью Nmap и Tcpdump


Введение

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

В этом руководстве мы рассмотрим некоторые инструменты и методы, которые вы можете использовать для проверки правил брандмауэра. Это некоторые из тех же инструментов, которые могут использовать злоумышленники, поэтому вы сможете увидеть, какую информацию они могут найти, отправив запросы к вашим серверам.

Предпосылки

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

  • Iptables
    • Iptables Essentials: общие правила и команды брандмауэра

    • Как настроить брандмауэр с помощью UFW в Ubuntu 22.04
    • UFW Essentials: общие правила и команды брандмауэра

    • Как настроить брандмауэр с помощью FirewallD в Rocky Linux 9

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

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

    Если у вас есть сервер для тестирования и цели, которые вы хотите оценить, вы можете продолжить работу с этим руководством.

    Вы должны выполнять действия, описанные в этом руководстве, только на инфраструктуре, которой вы управляете, с целью аудита безопасности. Законы, касающиеся сканирования портов, во многих юрисдикциях неопределенны. Известно, что интернет-провайдеры и другие провайдеры блокируют пользователей, у которых обнаружено сканирование портов.

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

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

    Анализаторы пакетов

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

    Для целей этого руководства мы будем использовать инструмент tcpdump. Это хороший вариант, потому что он мощный, гибкий и вездесущий в системах Linux. Вы будете использовать его для захвата необработанных пакетов, когда мы запускаем наши тесты, на случай, если нам понадобится стенограмма для последующего анализа. Некоторые другие популярные опции — это Wireshark (или tshark, его двоюродный брат по командной строке) и tcpflow, которые могут собирать воедино целые диалоги TCP в организованном порядке.

    Сканеры портов

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

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

    Настройка машины аудита

    Прежде чем начать, вы должны убедиться, что у нас установлены необходимые инструменты. Вы можете получить tcpdump и nmap из репозиториев Ubuntu. Запустите apt update, чтобы обновить локальные списки пакетов, а затем установите их с помощью apt install:

    1. sudo apt update
    2. sudo apt install tcpdump nmap

    Затем создайте каталог, в котором вы можете хранить результаты сканирования:

    1. mkdir ~/scan_results

    Чтобы убедиться, что вы получаете чистые результаты, выйдите из любых сеансов, которые вы могли открыть между вашей системой аудита и целевой системой. Сюда входят сеансы SSH, любые соединения HTTP(S), которые вы могли установить в веб-браузере, и т. д.

    Сканируйте свою цель на наличие открытых TCP-портов

    Теперь, когда у нас есть готовый сервер и файлы, вы начнете со сканирования целевого хоста на наличие открытых TCP-портов.

    На самом деле есть несколько сканирований TCP, которые умеет выполнять nmap. Обычно лучше всего начинать с сканирования SYN, также известного как «полуоткрытое сканирование», потому что оно фактически никогда не согласовывает полное TCP-соединение. Это часто используется злоумышленниками, поскольку оно не регистрируется при обнаружении некоторых вторжений. системы, потому что он никогда не завершает полное рукопожатие.

    Настройка захвата пакетов

    Перед сканированием вы настроите tcpdump для захвата трафика, сгенерированного тестом. Это поможет вам более подробно проанализировать отправленные и полученные пакеты позже, если это необходимо. Создайте каталог в ~/scan_results, чтобы вы могли хранить файлы, связанные с вашим SYN-сканированием, вместе:

    1. mkdir ~/scan_results/syn_scan

    Вы можете запустить захват tcpdump и записать результаты в файл в вашем каталоге ~/scan_results/syn_scan с помощью следующей команды:

    1. sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packets

    По умолчанию tcpdump будет запущен на переднем плане. Чтобы запустить сканирование nmap в том же окне, вам необходимо приостановить процесс tcpdump, а затем перезапустить его в фоновом режиме.

    Мы можем приостановить запущенный процесс, нажав CTRL-Z:

    Output
    ^Z [1]+ Stopped sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packets

    Теперь вы можете перезапустить задание в фоновом режиме, набрав bg:

    1. bg

    Вы должны получить аналогичную строку вывода, на этот раз без метки «Остановлено» и с амперсандом в конце, чтобы указать, что процесс будет выполняться в фоновом режиме (т. е. больше не блокировать ваш терминал):

    Output
    [1]+ sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packets &

    Команда теперь работает в фоновом режиме, отслеживая любые пакеты, идущие между вашей аудиторской и целевой машинами. Теперь мы можем запустить сканирование SYN.

    Запустите сканирование SYN

    Когда tcpdump записывает ваш трафик на целевую машину, вы готовы запустить nmap. Вы можете запустить nmap со следующими флагами:

    • -sS: запускает сканирование SYN. Технически это сканирование по умолчанию, которое nmap будет выполнять, если тип сканирования не указан, но мы включим его здесь для ясности.
    • -Pn: указывает nmap пропустить шаг обнаружения хоста, что приведет к досрочному прекращению теста, если хост не отвечает на пинг. Поскольку вы знаете, что цель находится в сети, вы можете пропустить это действие.
    • -p-: по умолчанию сканирование SYN будет проверять только 1000 наиболее часто используемых портов. Это говорит nmap проверить каждый доступный порт.
    • -T4: задает временной профиль для nmap, указывающий ускорить тест с риском получения менее точных результатов. 0 — самый медленный, 5 — самый быстрый. Поскольку вы сканируете каждый порт, вы можете использовать его в качестве базового и повторно проверить все порты позже, которые могли быть указаны неправильно.
    • -vv: повышает уровень детализации вывода.
    • --reason: указывает nmap указать причину, по которой состояние порта было сообщено определенным образом.
    • -oN: результаты записываются в файл, который можно использовать для последующего анализа.

    Примечание. Чтобы проверить IPv6, вам нужно будет добавить флаг -6 в свои команды…

    Вместе команда будет выглядеть примерно так:

    1. sudo nmap -sS -Pn -p- -T4 -vv --reason -oN ~/scan_results/syn_scan/nmap.results target_ip_addr

    Даже если для временного шаблона установлено значение 4, сканирование, скорее всего, займет довольно много времени, поскольку выполняется через 65 535 портов. Результаты начнут распечатываться следующим образом:

    Output
    Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2022-12-19 16:54 EDT Initiating Parallel DNS resolution of 1 host. at 16:54 Completed Parallel DNS resolution of 1 host. at 16:54, 0.12s elapsed Initiating SYN Stealth Scan at 16:54 Scanning 198.51.100.15 [65535 ports] Discovered open port 22/tcp on 198.51.100.15 Discovered open port 80/tcp on 198.51.100.15 SYN Stealth Scan Timing: About 6.16% done; ETC: 17:02 (0:07:52 remaining) SYN Stealth Scan Timing: About 8.60% done; ETC: 17:06 (0:10:48 remaining) . . .

    Остановить захват пакетов tcpdump

    После завершения сканирования вы можете перевести наш процесс tcpdump обратно на передний план и остановить его.

    Выведите его из фона, запустив fg для «переднего плана»:

    1. fg

    Остановите запущенный процесс, нажав Ctrl+C.

    Анализ результатов

    Теперь у вас должно быть два файла в каталоге ~/scan_results/syn_scan. Один называется packets, сгенерированный запуском tcpdump, и один, сгенерированный nmap, называется nmap.results.

    Давайте сначала посмотрим на файл nmap.results:

    1. less ~/scan_results/syn_scan/nmap.results
    # Nmap 6.49BETA4 scan initiated Mon Dec 19 17:05:13 2022 as: nmap -sS -Pn -p- -T4 -vv --reason -oN /home/user/scan_results/syn_scan/nmap.results 198.51.100.15
    Increasing send delay for 198.51.100.15 from 0 to 5 due to 9226 out of 23064 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 5 to 10 due to 14 out of 34 dropped probes since last increase.
    Nmap scan report for 198.51.100.15
    Host is up, received user-set (0.00097s latency).
    Scanned at 2022-12-19 17:05:13 EDT for 2337s
    Not shown: 65533 closed ports
    Reason: 65533 resets
    PORT   STATE SERVICE REASON
    22/tcp open  ssh     syn-ack ttl 63
    80/tcp open  http    syn-ack ttl 63
    
    Read data files from: /usr/local/bin/../share/nmap
    # Nmap done at Mon Dec 19 17:44:10 2022 -- 1 IP address (1 host up) scanned in 2336.85 seconds
    

    Выделенная область выше содержит основные результаты сканирования. Вы можете сделать вывод, что порты 22 и 80 открыты на сканируемом узле, чтобы разрешить трафик SSH и HTTP. Вы также можете заметить, что 65 533 порта были закрыты. Другим возможным результатом может быть \отфильтровано. Отфильтровано означает, что эти порты были идентифицированы как остановленные чем-то на сетевом пути. Это может быть брандмауэр на цели, но это также могут быть правила фильтрации на любом из промежуточных хостов между аудит и целевые машины.

    Чтобы увидеть фактический пакетный трафик, который был отправлен и получен от цели, вы можете прочитать файл packets обратно в tcpdump, например:

    1. sudo tcpdump -nn -r ~/scan_results/syn_scan/packets | less

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

    Например, чтобы просмотреть только трафик, отправленный на цель, вы можете ввести:

    1. sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'dst target_ip_addr' | less

    Аналогичным образом, чтобы просмотреть только ответный трафик, вы можете изменить dst на src:

    1. sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'src target_ip_addr' | less

    Открытые порты TCP будут отвечать на эти запросы пакетом SYN. Мы можем напрямую искать ответы для этого типа с помощью такого фильтра:

    1. sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'src target_ip_addr and tcp[tcpflags] & tcp-syn != 0' | less

    Это покажет вам только успешные ответы SYN и должно совпадать с портами, которые вы видели при запуске nmap:

    Output
    reading from file packets, link-type EN10MB (Ethernet) 17:05:13.557597 IP 198.51.100.15.22 > 198.51.100.2.63872: Flags [S.], seq 2144564104, ack 4206039348, win 29200, options [mss 1460], length 0 17:05:13.558085 IP 198.51.100.15.80 > 198.51.100.2.63872: Flags [S.], seq 3550723926, ack 4206039348, win 29200, options [mss 1460], length 0

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

    Сканируйте свою цель на наличие открытых портов UDP

    Теперь, когда у вас есть хорошее представление о том, как запускать эти тесты, вы можете выполнить аналогичный процесс для сканирования открытых портов UDP.

    Настройка захвата пакетов

    Еще раз создайте каталог для хранения результатов:

    1. mkdir ~/scan_results/udp_scan

    Снова запустите захват tcpdump. На этот раз запишите файл в новый каталог ~/scan_results/udp_scan:

    1. sudo tcpdump host target_ip_addr -w ~/scan_results/udp_scan/packets

    Приостановите процесс и переведите его в фоновый режим, нажав Ctrl+Z, а затем запустив bg:

    1. bg

    Запустите UDP-сканирование

    Теперь вы готовы запустить сканирование UDP. Из-за особенностей протокола UDP это сканирование обычно занимает значительно больше времени, чем сканирование SYN. На самом деле, если вы сканируете каждый порт в системе, это может занять целый день. UDP — это протокол без установления соединения, поэтому отсутствие ответа может означать, что целевой порт заблокирован, что он был принят или что пакет был потерян. Чтобы попытаться различить их, nmap должен повторно передать дополнительные пакеты, чтобы попытаться получить ответ.

    Большинство флагов будут такими же, как вы использовали для сканирования SYN. Фактически, единственный новый флаг:

    • -sU: указывает nmap выполнить сканирование UDP.

    Ускорение UDP-теста

    Если вас беспокоит, сколько времени займет этот тест, вы можете сначала протестировать только подмножество ваших UDP-портов. Вы можете протестировать только 1000 наиболее распространенных портов, опустив флаг -p-. Это может значительно сократить время сканирования. Однако, если вы хотите получить полную картину, вам придется вернуться позже и отсканировать весь диапазон портов.

    Поскольку вы сканируете собственную инфраструктуру, возможно, лучший способ ускорить сканирование UDP — временно отключить ограничение скорости ICMP в целевой системе. Как правило, хосты Linux ограничивают количество ответов ICMP до 1 в секунду (обычно это хорошо, но не для нашего аудита), что означает, что полное сканирование UDP займет более 18 часов. Вы можете проверить этот параметр на целевой машине, набрав:

    1. sudo sysctl net.ipv4.icmp_ratelimit
    Output
    net.ipv4.icmp_ratelimit = 1000

    «1000» — это количество миллисекунд между ответами. Вы можете временно отключить это ограничение скорости в целевой системе, набрав:

    1. sudo sysctl -w net.ipv4.icmp_ratelimit=0

    Очень важно вернуть это значение после теста.

    Запуск теста

    Обязательно запишите результаты в каталог ~/scan_results/udp_scan. Все вместе команда должна выглядеть так:

    1. sudo nmap -sU -Pn -p- -T4 -vv --reason -oN ~/scan_results/udp_scan/nmap.results target_ip_addr

    После завершения сканирования вы должны вернуть ограничение скорости ICMP (если вы его изменили) на целевой машине:

    1. sudo sysctl -w net.ipv4.icmp_ratelimit=1000

    Остановить захват пакетов tcpdump

    Верните процесс tcpdump на передний план на компьютере для аудита, запустив fg:

    1. fg

    Затем остановите захват пакета с помощью Ctrl+C.

    Анализ результатов

    Теперь вы можете взглянуть на сгенерированные файлы.

    Полученный файл nmap.results должен быть похож на последний результат:

    1. less ~/scan_results/udp_scan/nmap.results
    # Nmap 6.49BETA4 scan initiated Mon Dec 19 12:42:42 2022 as: nmap -sU -Pn -p- -T4 -vv --reason -oN /home/user/scan_results/udp_scan/nmap.results 198.51.100.15
    Increasing send delay for 198.51.100.15 from 0 to 50 due to 10445 out of 26111 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 50 to 100 due to 11 out of 23 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 100 to 200 due to 3427 out of 8567 dropped probes since last increase.
    Nmap scan report for 198.51.100.15
    Host is up, received user-set (0.0010s latency).
    Scanned at 2022-12-19 12:42:42 EDT for 9956s
    Not shown: 65532 closed ports
    Reason: 65532 port-unreaches
    PORT    STATE         SERVICE REASON
    22/udp  open|filtered ssh     no-response
    80/udp  open|filtered http    no-response
    443/udp open|filtered https   no-response
    
    Read data files from: /usr/local/bin/../share/nmap
    # Nmap done at Mon Dec 19 15:28:39 2022 -- 1 IP address (1 host up) scanned in 9956.97 seconds
    

    Основное различие между этим результатом и предыдущим результатом SYN, скорее всего, будет заключаться в количестве портов, помеченных как open|filtered. Это означает, что nmap не может определить, означает ли отсутствие ответа, что служба приняла трафик, или он был отброшен каким-либо брандмауэром или механизмом фильтрации на пути доставки.

    Анализ выходных данных tcpdump также значительно усложняется из-за отсутствия флагов подключения и необходимости сопоставления ответов ICMP с запросами UDP.

    Вы можете увидеть, сколько пакетов nmap пришлось отправить на порты, которые были отмечены как open|filtered, попросив просмотреть трафик UDP на один из указанных портов:

    1. sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets 'udp and port 22'
    Output
    reading from file /home/user/scan_results/udp_scan/packets, link-type EN10MB (Ethernet) 14:57:40.801956 IP 198.51.100.2.60181 > 198.51.100.15.22: UDP, length 0 14:57:41.002364 IP 198.51.100.2.60182 > 198.51.100.15.22: UDP, length 0 14:57:41.202702 IP 198.51.100.2.60183 > 198.51.100.15.22: UDP, length 0 14:57:41.403099 IP 198.51.100.2.60184 > 198.51.100.15.22: UDP, length 0 14:57:41.603431 IP 198.51.100.2.60185 > 198.51.100.15.22: UDP, length 0 14:57:41.803885 IP 198.51.100.2.60186 > 198.51.100.15.22: UDP, length 0

    Сравните это с результатами одного из просканированных портов, который был помечен как «закрытый»:

    1. sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets 'udp and port 53'
    Output
    reading from file /home/user/scan_results/udp_scan/packets, link-type EN10MB (Ethernet) 13:37:24.219270 IP 198.51.100.2.60181 > 198.51.100.15.53: 0 stat [0q] (12)

    Вы можете попытаться вручную восстановить процесс, который проходит nmap, сначала составив список всех портов, на которые мы отправляем UDP-пакеты, используя что-то вроде этого:

    1. sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets "udp" | awk '{print $5;}' | awk 'BEGIN { FS = "." } ; { print $5 +0}' | sort -u | tee outgoing

    Затем вы можете увидеть, какие ICMP-пакеты мы получили в ответ, говоря, что порт недоступен:

    1. sudo tcpdump -nn -Q in -r ~/scan_results/udp_scan/packets "icmp" | awk '{print $10,$11}' | grep unreachable | awk '{print $1}' | sort -u | tee response

    Затем вы можете взять эти два ответа и посмотреть, какие пакеты UDP никогда не получали ответа ICMP:

    1. comm -3 outgoing response

    Это должно в основном соответствовать списку портов, который сообщил nmap (он может содержать некоторые ложные срабатывания из-за потерянных обратных пакетов).

    Обнаружение хостов и служб

    Вы можете запустить дополнительные тесты на своей цели, чтобы увидеть, может ли nmap идентифицировать работающую операционную систему или любую из версий службы. Создайте каталог для хранения результатов управления версиями:

    1. mkdir ~/scan_results/versions

    Обнаружение версий служб на сервере

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

    В этом сценарии tcpdump не слишком полезен, поэтому его можно пропустить. Если вы все равно хотите его захватить, следуйте процессу, который вы использовали в прошлый раз.

    Необходимое сканирование nmap запускается флагом -sV. Поскольку вы уже выполнили сканирование SYN и UDP, вы можете указать точные порты, которые вам нужно просмотреть, с помощью флага -p. Здесь вы увидите 22 и 80 (порты, которые были показаны в нашем SYN-сканировании):

    1. sudo nmap -sV -Pn -p 22,80 -vv --reason -oN ~/scan_results/versions/service_versions.nmap target_ip_addr

    Если вы просмотрите полученный файл, вы можете получить информацию о запущенной службе, в зависимости от того, насколько «болтлив» ответ службы:

    1. less ~/scan_results/versions/service_versions.nmap
    # Nmap 6.49BETA4 scan initiated Mon Dec 19 15:46:12 2022 as: nmap -sV -Pn -p 22,80 -vv --reason -oN /home/user/scan_results/versions/service_versions.nmap 198.51.100.15
    Nmap scan report for 198.51.100.15
    Host is up, received user-set (0.0011s latency).
    Scanned at 2022-12-19 15:46:13 EDT for 8s
    PORT   STATE SERVICE REASON         VERSION
    22/tcp open  ssh     syn-ack ttl 63 OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
    80/tcp open  http    syn-ack ttl 63 nginx 1.4.6 (Ubuntu)
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    Read data files from: /usr/local/bin/../share/nmap
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    # Nmap done at Mon Dec 19 15:46:21 2022 -- 1 IP address (1 host up) scanned in 8.81 seconds
    

    Здесь вы можете видеть, что тест смог определить версию сервера SSH и дистрибутив Linux, который его упаковал, а также принятую версию протокола SSH. Он также распознал версию Nginx и снова идентифицировал ее как соответствующую пакету Ubuntu.

    Обнаружение операционной системы хоста

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

    Флаг, необходимый для определения операционной системы, — -O (заглавная буква \O). Полная команда может выглядеть примерно так:

    1. sudo nmap -O -Pn -vv --reason -oN ~/scan_results/versions/os_version.nmap target_ip_addr

    Если вы просмотрите выходной файл, вы можете увидеть что-то вроде этого:

    1. less ~/scan_results/versions/os_version.nmap
    # Nmap 6.49BETA4 scan initiated Mon Dec 19 15:53:54 2022 as: nmap -O -Pn -vv --reason -oN /home/user/scan_results/versions/os_version.nmap 198.51.100.15
    Increasing send delay for 198.51.100.15 from 0 to 5 due to 65 out of 215 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 5 to 10 due to 11 out of 36 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 10 to 20 due to 11 out of 35 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 20 to 40 due to 11 out of 29 dropped probes since last increase.
    Increasing send delay for 198.51.100.15 from 40 to 80 due to 11 out of 31 dropped probes since last increase.
    Nmap scan report for 198.51.100.15
    Host is up, received user-set (0.0012s latency).
    Scanned at 2022-12-19 15:53:54 EDT for 30s
    Not shown: 998 closed ports
    Reason: 998 resets
    PORT   STATE SERVICE REASON
    22/tcp open  ssh     syn-ack ttl 63
    80/tcp open  http    syn-ack ttl 63
    No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
    TCP/IP fingerprint:
    OS:SCAN(V=6.49BETA4%E=4%D=8/27%OT=22%CT=1%CU=40800%PV=N%DS=2%DC=I%G=Y%TM=55
    OS:DF6AF0%P=x86_64-unknown-linux-gnu)SEQ(SP=F5%GCD=1%ISR=106%TI=Z%CI=Z%TS=8
    OS:)OPS(O1=M5B4ST11NW8%O2=M5B4ST11NW8%O3=M5B4NNT11NW8%O4=M5B4ST11NW8%O5=M5B
    OS:4ST11NW8%O6=M5B4ST11)WIN(W1=7120%W2=7120%W3=7120%W4=7120%W5=7120%W6=7120
    OS:)ECN(R=Y%DF=Y%T=40%W=7210%O=M5B4NNSNW8%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+
    OS:%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
    OS:T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A
    OS:=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPC
    OS:K=G%RUCK=G%RUD=G)U1(R=N)IE(R=N)
    
    Uptime guess: 1.057 days (since Mon Dec 12 14:32:23 2022)
    Network Distance: 2 hops
    TCP Sequence Prediction: Difficulty=245 (Good luck!)
    IP ID Sequence Generation: All zeros
    
    Read data files from: /usr/local/bin/../share/nmap
    OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    # Nmap done at Mon Dec 12 15:54:24 2022 -- 1 IP address (1 host up) scanned in 30.94 seconds
    

    Мы видим, что в этом случае nmap не делает никаких предположений для операционной системы на основе увиденной сигнатуры. Если бы он получил больше информации, он, вероятно, показал бы различные проценты, которые показывают, насколько подпись целевой машины соответствует подписям операционной системы в ее базах данных. Вы можете увидеть подпись отпечатка пальца, которую nmap получил от цели, под строкой TCP/IP fingerprint:.

    Идентификация операционной системы может помочь злоумышленнику определить, какие эксплойты могут быть полезны в системе. Настройка брандмауэра для ответа на меньшее количество запросов может снизить точность некоторых из этих методов обнаружения.

    Заключение

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

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