Введение
В этом практическом занятии (лабораторной работе) основное внимание уделено мониторингу сети в Linux с использованием командной утилиты netstat. Мониторинг сети является важной частью работы системных администраторов, позволяющей им понять, какие соединения установлены, какие сервисы запущены и как распределяется трафик на их системах.
В рамках этого практического занятия вы научитесь использовать утилиту netstat для отображения активных сетевых соединений, прослушиваемых сервисов и статистики сетевых интерфейсов. Эти навыки являются фундаментальными для диагностики сетевых проблем, мониторинга производительности системы и обеспечения сетевой безопасности.
По завершении этого практического занятия вы сможете эффективно использовать netstat для получения информации о сетевых активностях в системе Linux, что представляет собой ценный навык для любого системного администратора или ИТ-специалиста.
Понимание сетевых соединений с помощью netstat
Команда netstat представляет собой мощную сетевую утилиту, которая отображает сетевые соединения, таблицы маршрутизации, статистику интерфейсов и многое другое. На этом этапе вы научитесь использовать netstat для просмотра активных сетевых соединений.
Сначала перейдем в директорию проекта, где будем работать:
cd /home/labex/project
Что такое netstat?
Команда netstat (сокращение от network statistics, т.е. сетевые статистики) отображает различную информацию, связанную с сетью, такую как сетевые соединения, таблицы маршрутизации, статистика интерфейсов и т.д. Это ценный инструмент для понимания сетевой активности вашей системы.
Просмотр активных соединений
Запустим команду netstat с определенными параметрами, чтобы отобразить активные TCP-соединения:
netstat -nat > connections.txt
В этой команде:
-nотображает адреса и номера портов в числовой форме, а не преобразует их в имена хостов или имена сервисов-aпоказывает все сокеты (как прослушивающие, так и не прослушивающие)-tотображает только TCP-соединения> connections.txtперенаправляет вывод в файл с именемconnections.txt
Теперь посмотрим на содержимое созданного файла:
cat connections.txt
Вывод должен выглядеть примерно так:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Понимание вывода
Proto: Используемый протокол (в данном случае TCP)Recv-Q: Количество байтов, которые не были скопированы пользовательской программой, подключенной к этому сокетуSend-Q: Количество байтов, которые не были подтверждены удаленным хостомLocal Address: Адрес и номер порта локального конца сокетаForeign Address: Адрес и номер порта удаленного конца сокетаState: Состояние сокета (LISTEN, ESTABLISHED и т.д.)
Состояние LISTEN означает, что сервис запущен и ожидает входящих соединений на определенном порту.
Мониторинг слушающих сервисов
На этом этапе вы научитесь определять, какие сервисы на вашей системе ожидают входящих соединений. Эта информация является важной для аудита безопасности и диагностики сетевых проблем.
Определение прослушивающих сервисов
Используем команду netstat для поиска сервисов, находящихся в состоянии LISTEN:
netstat -natu | grep LISTEN > listening_services.txt
В этой команде:
-nотображает адреса в числовой форме-aпоказывает все сокеты-tвключает TCP-соединения-uвключает UDP-соединения| grep LISTENфильтрует вывод, показывая только строки, содержащие "LISTEN"> listening_services.txtсохраняет вывод в файл
Теперь посмотрим на содержимое файла:
cat listening_services.txt
Вы должны увидеть вывод, похожий на следующий:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Понимание прослушивающих сервисов
Каждая строка в выводе представляет собой сервис, который в данный момент принимает входящие соединения:
- Сервисы, прослушивающие на
0.0.0.0, принимают соединения с любого сетевого интерфейса - Сервисы, прослушивающие на
127.0.0.1, принимают соединения только с локальной машины - Сервисы, прослушивающие на
:::, используют IPv6-адреса и принимают соединения с любого сетевого интерфейса
Номера портов (например, 22 для SSH или 631 для сервиса печати CUPS) позволяют определить, какой именно сервис ожидает входящих соединений. Например:
- Порт 22: Сервис SSH
- Порт 80: Сервис HTTP (веб-сервер)
- Порт 443: Сервис HTTPS
- Порт 631: Сервис печати CUPS
Эта информация помогает понять, какие сервисы доступны на вашей системе, что является ценным для оценки безопасности и диагностики проблем.
Анализ статистики сетевых интерфейсов
На этом этапе вы научитесь просматривать статистику для своих сетевых интерфейсов. Эта статистика предоставляет ценную информацию о производительности и использовании ваших сетевых интерфейсов.
Просмотр статистики интерфейсов
Используем команду netstat для отображения статистики всех сетевых интерфейсов:
netstat -i > interface_stats.txt
В этой команде:
-iотображает таблицу всех сетевых интерфейсов> interface_stats.txtсохраняет вывод в файл
Теперь посмотрим на содержимое файла:
cat interface_stats.txt
Вы должны увидеть вывод, похожий на следующий:
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 123456 0 0 0 98765 0 0 0 BMRU
lo 65536 789 0 0 0 789 0 0 0 LRU
Понимание статистики сетевых интерфейсов
Вывод предоставляет важную статистику для каждого сетевого интерфейса:
Iface: Имя сетевого интерфейсаeth0: Как правило, первый Ethernet-интерфейсlo: Цифровой интерфейс петли обратной связи (loopback interface), используемый для локальных соединений
MTU: Максимальная передаваемая единица (Maximum Transmission Unit) - максимальный размер пакета, который может быть передан- Стандартный Ethernet обычно использует 1500 байт
- Цифровой интерфейс петли обратной связи обычно имеет больший MTU (65536)
RX-OK: Количество пакетов, полученных без ошибокRX-ERR: Количество пакетов, полученных с ошибкамиRX-DRP: Количество полученных пакетов, которые были отброшеныRX-OVR: Количество переполнений при приеме пакетовTX-OK: Количество пакетов, переданных без ошибокTX-ERR: Количество пакетов, переданных с ошибкамиTX-DRP: Количество переданных пакетов, которые были отброшеныTX-OVR: Количество переполнений при передаче пакетовFlg: Флаги, указывающие на статус интерфейсаB: Установлен широковещательный адрес (Broadcast address set)M: Включено мультикастное соединение (Multicast enabled)R: Интерфейс работает (Interface is running)U: Интерфейс активен (Interface is up)
Эта статистика помогает вам отслеживать производительность сети и выявлять возможные проблемы, такие как потеря пакетов или ошибки передачи.
Дополнительные команды для просмотра сетевой статистики
Для более полного представления о сетевой статистике вы также можете использовать:
netstat -s | head -20 > protocol_stats.txt
Эта команда отображает статистику протоколов для TCP, UDP, IP, ICMP и других протоколов. Мы используем head -20, чтобы ограничить вывод первыми 20 строками для удобства чтения.
Посмотрим на этот файл:
cat protocol_stats.txt
Это предоставляет подробную статистику о том, как работает каждый протокол, и помогает выявить возможные сетевые проблемы на уровне протокола.
Резюме
В этом практическом занятии вы научились использовать команду netstat для мониторинга различных аспектов сетевой активности в системе Linux. Вы приобрели следующие важные навыки:
Просмотр активных сетевых соединений для понимания, какие соединения установлены в вашей системе.
Определение прослушивающих сервисов для определения, какие порты открыты и потенциально доступны в сети.
Анализ статистики сетевых интерфейсов для мониторинга производительности и работоспособности ваших сетевых интерфейсов.
Эти навыки являются обязательными для системных администраторов, сетевых инженеров и профессионалов в области безопасности, которые должны понимать и решать проблемы, связанные с сетью. Команда netstat предоставляет ценную информацию о сетевой активности вашей системы, помогает поддерживать оптимальную производительность и безопасность.
Хотя на многих современных дистрибутивах Linux команда netstat считается устаревшей и заменяется такими инструментами, как ss и ip, понимание работы netstat дает прочную основу для концепций сетевого мониторинга, которые применимы для всех этих инструментов.



