Введение
В ходе этой лабораторной работы вы научитесь использовать ключевые сетевые инструменты Kali Linux для выполнения базовых задач по диагностике и управлению сетью. Это практическое занятие разработано для новичков и поможет вам освоить проверку состояния сети, тестирование соединений, обнаружение устройств в сети и поиск открытых портов. Используя такие инструменты, как ip a, ping, netdiscover и nmap, вы заложите фундамент навыков сетевого анализа в среде LabEx. При открытии терминала вы автоматически подключитесь к оболочке контейнера Kali Linux и сможете сразу приступить к практике.
Проверка сетевых интерфейсов с помощью ip a
На первом этапе вы научитесь инспектировать сетевые интерфейсы вашей системы с помощью команды ip a. Это базовый навык, необходимый для понимания конфигурации вашей сети.
Когда вы открываете терминал в среде LabEx, вы автоматически подключаетесь к оболочке контейнера Kali Linux. Вам не нужно вручную запускать контейнер или входить в систему — среда уже полностью готова к работе.
Для начала необходимо установить пакет iproute2, если он еще не установлен. Введите следующую команду в терминале и нажмите Enter:
apt update && apt install -y iproute2
Теперь введите в терминале следующую команду и нажмите Enter:
ip a
Эта команда выводит список всех сетевых интерфейсов в системе вместе с их подробными характеристиками, такими как IP-адреса и текущий статус.
Пример ожидаемого вывода (фактические данные могут отличаться):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
В выводе вы увидите такие интерфейсы, как lo (петлевой интерфейс для локальных нужд) и eth0 (ваш основной сетевой интерфейс). Найдите строку inet под разделом eth0, чтобы узнать свой IP-адрес, например 172.17.0.2. Статус <UP> указывает на то, что интерфейс активен. Понимание этого вывода помогает подтвердить, что ваша система подключена к сети и готова к выполнению дальнейших задач.
Тестирование сетевой связности с помощью ping
Теперь, когда вы проверили сетевые интерфейсы, следующим шагом будет проверка способности вашей системы взаимодействовать с внешними серверами. Для проверки интернет-соединения мы воспользуемся командой ping.
Установите пакет ping, если он отсутствует в системе.
apt install -y iputils-ping
Введите следующую команду в терминале контейнера Kali Linux и нажмите Enter:
ping -c 4 8.8.8.8
Опция -c 4 ограничивает количество попыток отправки пакетов до четырех, а 8.8.8.8 — это публичный DNS-сервер Google, который является надежной целью для проверки доступности сети.
Пример ожидаемого вывода (фактические данные могут отличаться):
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=9.9 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.800/10.000/10.200/0.141 ms
Этот вывод показывает ответы от сервера 8.8.8.8 с такими деталями, как time (задержка в миллисекундах) и icmp_seq (порядковый номер пакета). Значение 0% packet loss (0% потерь пакетов) означает успешное соединение. Если вы видите 100% packet loss, это сигнализирует о проблемах со связью. Команда ping — это простой, но мощный инструмент для подтверждения того, что ваша система имеет доступ к внешним сетям, что необходимо для большинства сетевых операций.
Установка и использование netdiscover для идентификации сетевых устройств
Подтвердив наличие связи, вы научитесь обнаруживать устройства в вашей локальной сети с помощью инструмента netdiscover. Поскольку этот инструмент может отсутствовать в стандартном образе контейнера Kali Linux, сначала мы его установим.
Начните с обновления списка пакетов и установки netdiscover. Введите следующие команды в терминале, нажимая Enter после каждой:
apt install -y netdiscover
Эти команды обновят информацию о доступном ПО и установят netdiscover без дополнительных запросов на подтверждение. Дождитесь завершения процесса, это займет всего несколько секунд.
Затем нужно определить сетевой интерфейс для сканирования. Вы уже использовали ip a на первом этапе, поэтому посмотрите на предыдущий вывод или запустите команду снова, чтобы подтвердить имя интерфейса (скорее всего, eth0) и диапазон IP-адресов (в средах Docker это обычно 172.17.0.0/16).
Теперь запустите netdiscover для сканирования локальной сети. Введите следующую команду и нажмите Enter:
netdiscover -i eth0 -r 172.17.0.0/16
Флаг -i eth0 указывает интерфейс, а -r 172.17.0.0/16 определяет диапазон IP-адресов для сканирования. Если имя вашего интерфейса отличается, замените eth0 на соответствующее значение.
Пример ожидаемого вывода (фактические данные могут отличаться):
Currently scanning: 172.17.0.0/16 | Screen View: Unique Hosts
2 Captured ARP Req/Rep packets, from 2 hosts. Total size: 120
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
172.17.0.1 02:42:ac:11:00:01 1 60 Unknown vendor
172.17.0.2 02:42:ac:11:00:02 1 60 Unknown vendor
В этом списке отображаются IP-адреса и MAC-адреса устройств в сети. Например, 172.17.0.2 может быть вашей собственной системой, а 172.17.0.1 — сетевым шлюзом. Дайте сканеру поработать несколько секунд, чтобы обнаружить устройства, а затем остановите его, нажав Ctrl+C.
Инструмент netdiscover использует ARP-запросы для обнаружения активных узлов. Это крайне полезно для составления карты устройств, подключенных к тому же сегменту сети, что и ваша система, что является стандартной задачей при диагностике сети.
Установка nmap и выполнение базового сканирования портов
После того как устройства в сети обнаружены, следующим шагом будет сканирование открытых портов на конкретном узле с помощью nmap. Это поможет вам понять, какие службы запущены на целевой системе. Если nmap еще не установлен, выполните его установку.
Введите следующие команды в терминале для обновления списка пакетов и установки nmap, нажимая Enter после каждой:
apt install -y nmap
Дождитесь завершения установки.
Используя данные из вывода netdiscover на предыдущем этапе, выберите IP-адрес устройства в сети, например 172.17.0.1. Мы просканируем этот адрес на наличие открытых портов. Если в вашем случае IP-адрес другой, используйте его.
Введите следующую команду в терминале и нажмите Enter для выполнения базового сканирования:
nmap 172.17.0.1
Пример ожидаемого вывода (фактические данные могут отличаться):
Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:04 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
3000/tcp open ppp
3001/tcp open nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Этот вывод перечисляет открытые порты на целевом IP. Например, 22/tcp open ssh означает, что запущена служба SSH, а порты 3000/tcp и 3001/tcp могут указывать на работу веб-серверов. Инструмент nmap (сокращение от Network Mapper) широко применяется для исследования сетей и аудита безопасности, позволяя выявлять потенциальные точки доступа на устройствах.
Сохранение результатов сканирования nmap в файл
На заключительном этапе вы научитесь сохранять результаты сканирования nmap в файл для последующего анализа. Это логическое продолжение предыдущего шага, где мы выполняли обычное сканирование.
Используя тот же целевой IP-адрес из этапа 4 (например, 172.17.0.1), выполните следующую команду, чтобы запустить сканирование и сохранить результат в файл с именем scan_results.txt:
nmap 172.17.0.1 -oN /root/scan_results.txt
Опция -oN указывает nmap сохранить результаты в обычном текстовом формате по указанному пути /root/scan_results.txt. Если на этапе 4 вы использовали другой IP, замените 172.17.0.1 на него.
Результаты по-прежнему отобразятся в терминале, но теперь они также будут записаны в файл /root/scan_results.txt. Чтобы убедиться, что файл создан и содержит данные, введите следующую команду:
cat /root/scan_results.txt
Пример ожидаемого вывода (фактические данные могут отличаться):
Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:05 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
3000/tcp open ppp
3001/tcp open nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Сохранение результатов сканирования в файл — это важная практическая привычка для документирования находок. Это позволяет просматривать или передавать информацию позже без необходимости повторного запуска сканирования, что особенно полезно при анализе сетей и поиске неисправностей.
Резюме
В этой лабораторной работе вы научились использовать фундаментальные сетевые инструменты Kali Linux для выполнения базовой диагностики. Вы начали с проверки сетевых интерфейсов с помощью ip a, протестировали связность через ping, обнаружили устройства в локальной сети с помощью netdiscover, провели базовое сканирование портов в nmap и сохранили результаты в файл для дальнейшего использования. Эти навыки формируют прочную основу для анализа сетей и устранения неполадок в среде Linux.


