Статья также доступна на украинском (перейти к просмотру).

Содержание:
- Исходные положения
- Подготовка устройства для аудита
- Формирование запросов на целевой сервер
- Анализ результатов сканирования
- Сбор данных о других ресурсах целевой машины
Защита внутренней сети от внешних атак обычно обеспечивается правильно настроенным брандмауэром или файрволом, выполняющим функции своеобразного фильтра между внутренней и внешней сетями. Продуманная политика безопасности, выраженная в правилах файрвола, залог надежности системы защиты локальной инфраструктуры компании. Для формирования "идеальной" политики безопасности необходимо проведение периодических тестирований установленных правил в рабочих условиях. Это позволит выявить возможные уязвимости и скорректировать окончательную конфигурацию файрвола. Для проведения тестирований необходимо применение специальных программных средств (ПО), к которым относятся Nmap да Tcpdump. Рассмотрим работу с ними на настоящем примере.
Исходные положения
Принцип тестирования конфигурации файрвола заключается в формировании запросов к серверу, на котором он развернут, и анализу ответов. Только таким путем можно понять, как действительно брандмауэр реагирует на тот или иной запрос и выявить «дыры» в системе защиты.
Для выполнения задания нам понадобятся два типа ПО – сканер и анализатор пакетов. В качестве сканера будет использована известная утилита Nmap. Для захвата и анализа пакетов будет применена программа Tcpdump.
Все «атаки» должны производиться с «внешнего» по отношению к серверу устройства, на котором развернуто указанное ПО для работы с трафиком (устройство для аудита).
В нашем случае важна демонстрация порядка и методов проведения тестирований и потому будет использован Облачный сервер под управлением ОС Debian 12, который одновременно выполняет функции целевого сервера с брандмауэром и внешнего устройства для проведения аудита. Это значительно ускорит получение результатов сканирования.
Разобьем процесс на несколько этапов:
-
Подготовка устройства к аудиту;
-
Формирование запросов к целевому серверу;
-
Анализ результатов сканирования.
Подготовка устройства для аудита
Подготовим сервер, из которого будут производиться «атаки». Для установки специальных ПО будем использовать общедоступный репозиторий, и поэтому мы будем вынуждены обновить локальные списки пакетов. Введем в терминале:
$ sudo apt update

Списки успешно обновлены.
Установим сканер:
$ sudo apt install nmap

Результат: nmap is already the newest version (7.93+dfsg1-1) Итак, сканер уже развернут в нашей системе. Его версия – 7.93.
Установим анализатор трафика:
$ sudo apt install tcpdump

Результат: Setting up tcpdump (4.99.3-1). Анализатор успешно установлен.
Создадим в домашнем каталоге текущего пользователя директорию с именем all_res для хранения результатов сканирования целевого сервера Для этого введем в терминале:
$ mkdir ~/all_res

Директория создана.
Как известно, в большинстве случаев IP-адреса, из которых производится сканирование портов, автоматически блокируются и поэтому лучшим выходом из ситуации может быть использование SYN або half-open сканирование, не предусматривающее установку завершенного TCP-соединение между машинами, а значит и его регистрацию.
Создадим директорию с именем syn_res для сохранения файлов с результатами SYN-сканирование:
$ mkdir ~/all_res/syn_res
![]()
Запустим программу Tcpdump возможность захвата трафика между устройством аудита и целевым сервером. При этом результаты работы будут сохранены в автоматически созданном файле с именем packets.
Введем следующую команду:
$ sudo tcpdump host 178.20.159.96 -w ~/all_res/syn_res/packets &
Здесь 178.20.159.96–IP-адрес целевого сервера, указываемый сразу по параметру хозяин; параметр -В указывает на необходимость сохранения данных в двоичном формате, что обеспечивает высокую скорость записи и возможность просмотра информации для многих ПО.

Результат: listening on ens18 ... . Это означает, что программа находится в режиме прослушивания канала, отслеживая при этом любые передаваемые между машинами пакеты.
Формирование запросов на целевой сервер
Сформируем с помощью Nmap запрос к серверу для определения всех его открытых TCP-портов. В реальной среде этот процесс обычно длительный, поскольку по умолчанию сканируются все 65 535 портов машины. Регулировать его продолжительность можно с помощью параметра -Т указанной утилиты.
Откроем новый терминал и введем следующую команду:
$ sudo nmap -sS -Pn -p- -T4 -vv --reason -oN ~/all_res/syn_res/nmap.results 178.20.159.96
Установленные в команде параметры имеют следующие значения:
-SS – включает «упрощенный» режим SYN-сканирование;
-Pn – игнорирует этап обнаружения хоста, что позволяет ускорить процесс и избежать его прекращения в случае отсутствия ответа на пинг;
-p- – включает режим проверки всех доступных портов;
-T4 – устанавливает временной шаблон сканирования, 0 – наиболее подробное сканирование и потому очень медленное, 5 – наиболее поверхностное и поэтому ускоренное;
-vv –увеличивает детализацию результатов выполнения команды;
--reason – устанавливает уведомления о причинах текущего состояния портов;
-oN – разрешение записи в файл результатов сканирования.
Ниже приведены результаты выполнения команды:

Выход команды:
Starting Nmap 7.93 ( https://nmap.org ) at 2025-05-13 18:34 EEST Initiating Parallel DNS resolution of 1 host. at 18:34 Completed Parallel DNS resolution of 1 host. at 18:34, 0.07s elapsed Initiating SYN Stealth Scan at 18:34 Scanning cf1280475.freehost.com.ua (178.20.159.96) [65535 ports] Discovered open port 22/tcp on 178.20.159.96 Discovered open port 8443/tcp on 178.20.159.96 Completed SYN Stealth Scan at 18:34, 1.65s elapsed (65535 total ports) Nmap scan report for cf1280475.freehost.com.ua (178.20.159.96) Host is up, received user-set (0.000012s latency). Scanned at 2025-05-13 18:34:23 EEST for 2s Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 64 8443/tcp open https-alt syn-ack ttl 64 Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 1.83 seconds Raw packets sent: 65535 (2.884MB) | Rcvd: 131072 (5.505MB)
Анализ результатов сканирования
Результаты работы утилиты Nmap обычно фиксируются в автоматически созданном файле с именем nmap.results, который находится в созданном нами каталоге~/all_res/syn_res/. Просмотрим их с помощью утилиты less, но перед тем остановим работу программы Tcpdump, нажав клавиши Ctrl+С в первом терминале.
Введем в первом терминале следующую команду:
$ less ~/all_res/syn_res/nmap.results

Результат:
Nmap scan report for cf1280475.freehost.com.ua (178.20.159.96) Host is up, received user0set (0.000012s latency) . Scanned at 2025-05-13 18:34:23 EEST for 2s Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 64 8443/tcp open https-alt syn-ack ttl 64
Здесь мы видим отчет о утилите по результатам выполненного сканирования. Как видим, только порты по номерам 22 и 8443 открыты. Первый из них разрешает трафик по SSH-протокола, второй по HTTP. Все остальные 65533 закрыты.
Весь отправленный и полученный трафик между хостами содержится в файле пакеты, за который «отвечает» утилита Tcpdump. Его можно просматривать через различные фильтры и делать соответствующие выводы.
Чтобы просмотреть весь трафик средством просмотра less, следует запустить утилиту Tcpdump со следующими параметрами:
$ sudo tcpdump -nn -r ~/all_res/syn_res/packets | less
Для просмотра только трафика, отправленного на сервер, следует набрать в терминале:
$ sudo tcpdump -nn -r ~/all_res/syn_res/packets 'dst 178.20.159.96' | less
Для просмотра ответов серверу подойдет следующая команда:
$ sudo tcpdump -nn -r ~/all_res/syn_res/packets 'src 178.20.159.96' | less
Здесь по сравнению с предыдущей командой был заменен параметр dst на src.
SYN-формате и поэтому трафик можно отфильтровать по указанному критерию с помощью следующей команды:
$ sudo tcpdump -nn -r ~/all_res/syn_res/packets 'src 178.20.159.96 and tcp[tcpflags] & tcp-syn != 0' | less
Благодаря этому мы сможем просматривать только корректные ответы формата SYN для каждого из открытых портов, что значительно упростит анализ.
Сбор данных о других ресурсах целевой машины
Кроме сканирования открытых портов сервера, мы можем также выполнить сканирование и других ресурсов, в частности, UDP-порты, которые имеют свои особенности. Но, в целом порядок и методы сканирования остаются те же, что и в случае TCP-портов:
-
Создание каталога для сохранения результатов сканирования;
-
Запуск утилиты Tcpdump для захвата трафика;
-
Инициализация процесса сканирования ресурсаутилитой Nmap с соответствующими параметрами;
-
Анализ результатов.
Для нашего сервера результаты сканирования УДП-порты, полученные из файла nmap.результаты будут следующими:
# Nmap 7.93 scan initiated Tue May 13 19:55:43 2025 as: nmap -sU -Pn -p- -T4 -vv --reason -oN /root/all_res/udp_res/nmap.results 178.20.159.96 Nmap scan report for cf1280475.freehost.com.ua (178.20.159.96) Host is up, received user-set (0.000014s latency). Scanned at 2025-05-13 19:55:43 EEST for 2s All 65535 scanned ports on cf1280475.freehost.com.ua (178.20.159.96) are in ignored states. Not shown: 65535 closed udp ports (port-unreach) Read data files from: /usr/bin/../share/nmap # Nmap done at Tue May 13 19:55:45 2025 -- 1 IP address (1 host up) scanned in 2.11 seconds
Анализ данных в этом случае будет сложнее из-за отсутствия флажков подключения, заставляющего выполнять сопоставление ICMP-ответов из UDP-запросам.
Также можно определить версии служб и ОС целевого сервера. В отличие от других ресурсов, здесь достаточно будет воспользоваться возможностями только утилиты. Нмап,предварительно создав директорию для сохранения результатов сканирования. Да, для определения версий служб следует добавить в команду запуска утилиты параметр –сВ, а для версии ОС – параметр -THE. Выполнение всех остальных этапов остается без изменений.
Так, для выполнения сканирования для определения версии ОС для нашего сервера может быть использована команда запуска утилиты со следующими параметрами:
$ sudo nmap –O –Pn –vv --reason -oN ~/all_res/ver_res/os_version.nmap 178.20.159.96
Здесь see_res– созданная нами директория для сохранения результатов сканирования; os_version.nmap – автоматически создан файл с результатами сканирования.
Ниже представлен выход указанной команды:
Starting Nmap 7.93 ( https://nmap.org ) at 2025-05-13 20:38 EEST Initiating Parallel DNS resolution of 1 host. at 20:38 Completed Parallel DNS resolution of 1 host. at 20:38, 0.09s elapsed Initiating SYN Stealth Scan at 20:38 Scanning cf1280475.freehost.com.ua (178.20.159.96) [1000 ports] Discovered open port 22/tcp on 178.20.159.96 Discovered open port 8443/tcp on 178.20.159.96 Completed SYN Stealth Scan at 20:38, 0.04s elapsed (1000 total ports) Initiating OS detection (try #1) against cf1280475.freehost.com.ua (178.20.159.96) Nmap scan report for cf1280475.freehost.com.ua (178.20.159.96) Host is up, received user-set (0.000087s latency). Scanned at 2025-05-13 20:38:40 EEST for 1s Not shown: 998 closed tcp ports (reset) PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 64 8443/tcp open https-alt syn-ack ttl 64 Device type: general purpose Running: Linux 2.6.X OS CPE: cpe:/o:linux:linux_kernel:2.6.32 OS details: Linux 2.6.32 TCP/IP fingerprint: OS:SCAN(V=7.93%E=4%D=5/13%OT=22%CT=1%CU=44158%PV=N%DS=0%DC=L%G=Y%TM=682383A OS:1%P=x86_64-pc-linux-gnu)SEQ(SP=101%GCD=1%ISR=10D%TI=Z%CI=Z%II=I%TS=A)OPS OS:(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFF OS:D7ST11NW7%O6=MFFD7ST11)WIN(W1=FFCB%W2=FFCB%W3=FFCB%W4=FFCB%W5=FFCB%W6=FF OS:CB)ECN(R=Y%DF=Y%T=40%W=FFD7%O=MFFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A OS:=S+%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% OS:Q=)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= OS:A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R= OS:Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N% OS:T=40%CD=S) Uptime guess: 43.530 days (since Mon Mar 31 07:55:18 2025) Network Distance: 0 hops TCP Sequence Prediction: Difficulty=257 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/bin/../share/nmap OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.75 seconds Raw packets sent: 1022 (45.778KB) | Rcvd: 2044 (87.068KB)
Можно убедиться, что указанным способом были определены версии ядра и тип ОС целевой машины.
Надежный файервол – важная составляющая защиты. Выбирая VPS или физический сервер от дата-центра FREEhost.UA, вы получаете полный контроль над системой, возможность гибкой настройки безопасности и стабильную инфраструктуру для вашего проекта.
Подписывайтесь на наш телеграмм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов
Смотрите наш канал Youtube на https://www.youtube.com/freehostua.
Мы в чем ошиблись, или что-то пропустили?
Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.
|
Дата: 19.05.2025 Автор: Александр Ровник
|
|

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:
comments powered by Disqus