Иногда во время работы какой-либо системы, будь то домашний персональный компьютер или мощный сервер, обслуживающий множество подключений, полезно иметь под рукой инструмент, способный отобразить данные о сетевой активности. Для чего это может понадобиться? Для контроля трафика, вычисления приложений, нелегально выходящих в Сеть интернет, или же пользователей. Именно этим и занимается рассматриваемая нами утилита.
Что такое Netstat?
Это такое приложение, с помощью которого можно узнать, что происходит в данный момент в Сети. Для запуска используется командная строка. В ней же при запуске Netstat используются дополнительные ключи и параметры.
Стоит отметить, что название утилиты образовано из двух составляющих - network statistics, то есть сетевая статистика, что, в принципе, логично. Среди информации, которую показывает программа, можно выделить статистику подключений TCP, портов, маршрутизации.
Команды и ключи
Синтаксис ключей и параметров команды довольно обширен. Это позволяет получить сетевую статистику на самых разных уровнях. Далее пойдет описание команды Netstat, ее параметры и ключи:
- -a - запуск с данным параметром выведет на экран все активные подключения TCP, а также порты TCP и UDP, прослушиваемые системой;
- -e - отображение расширенной статистики Ethernet, например, о перемещении байтов и пакетов;
- -n - параметр позволяет показать активные подключения TCP с адресами и номерами портов;
- -o - так же, как и предыдущий ключ, выводит активные TCP подключения, но в статистику добавлены коды процессов, по ним уже можно точно определить, какое именно приложение использует подключение;
- -p - отображение информации по определенному протоколу, указанному в параметре. Среди значений может быть tcp, udp, tcpv6 и udpv6;
- -s - вывод на экран статистики по протоколу, по умолчанию отобразятся все известные типы;
- -r - данный ключ выведет содержимое таблицы маршрутизации IP, параметр равносилен использованию команды route;
- интервал - в общей строке команды можно использовать значение интервала, через который будет происходить отображение выбранной статистики; если он опущен, то информация отобразится всего один раз;
- /? - выведет справочную информацию по команде Netstat.
Использование Netstat в Windows
Для того чтобы вывести на экран командной строки все соединения, при этом разместив их на нескольких страницах, нужно использовать такой синтаксис: «-a | more». Если нужно сохранить всю статистику в определенный файл, нужно использовать « -a > C:\имя файла». Таким образом, в файл, указанный по данному пути, будет записана вся собранная информация.
Результатом работы может выступать небольшая таблица, которая содержит следующие типы данных:
- Имя. Здесь указывается название найденного активного протокола.
- Локальный адрес. IP-адрес и порт, использующиеся локальным сервисом для создания соединения. Среди значений может встречаться 0.0.0.0, что означает любой доступный адрес или 127.0.0.1. Это говорит о локальной петле.
- Внешний адрес. IP и порт внешней службы в сети, с которой установлено соединение.
- Состояние. Показывает текущий статус соединения. Может принимать разные значения. Например, Listening говорит о том, что служба «слушает» и ждет входящего подключения. Established означает активное соединение.
Netstat, запущенная с ключами -a и -b, покажет все сетевые подключения, а также связанные с ними программы. Это очень удобно, если нужно вычислить, какая программа активно использует трафик и куда отсылает данные.
Дополнительные состояния соединений
Помимо указанных выше состояний соединений, имеются и дополнительные:
- closed - как следует из названия, соединение находится в закрытом виде;
- syn_sent - происходит активная попытка установить подключение;
- syn_received - показывает начальный этап синхронизации;
- close_wait - удаленный сервер отключен, и происходит завершение соединения.
Использование Netstat в Linux
Применение утилиты в среде Linux, по сути, мало чем отличается от Windows. Есть всего лишь небольшие отличия в параметрах команды. Описание команды Netstat и ее параметров с примерами:
- Чтобы отобразить все порты, нужно использовать команду - «netstat -a».
- Все то же самое, но только типа TCP - «-at».
- UDP порты - «-au».
- Отобразить в Netstat открытые порты - «-l». Их состояние будет отражено как Listening.
- Отобразить в Netstat открытые порты TCP - «netstat -lt.
- Вывод идентификатора процесса и его имени - «netstat -p».
- Показать статистику для отдельного протокола сети - «netstat -s».
Иногда, чтобы получить более полную информацию о каком-либо сетевом соединении, нужно совместить Netstat с некоторыи командами и утилитами Linux. Например, так:
netstat -ap | grep ssh
Данная строка выведет на экран список портов, которые в данный момент используется утилитой SSH. Если, наоборот, нужно узнать, какой процесс занимает определенный порт, можно использовать следующий синтаксис:
netstat -an | grep `:80`
Также для Netstat в Linux имеется универсальный набор ключей, способный отобразить все необходимое сразу. Выглядит он так: netstat -lnptux. В наборе данных будут отражены все открытые порты, протоколы TCP, UDP, UNIX Socket, названия процессов и их идентификаторов.
Несколько примеров для определения атаки типа DoS или DDoS
Следующая команда позволит узнать, сколько подключений активно на каждом IP-адресе:
netstat -naltp | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort -n | uniq -c
Определяем большое количество запросов с одного IP-адреса:
netstat -na | grep :80 | sort
Определяем точное количество запросов, полученных на одно соединение:
netstat -np | grep SYN_RECV | wc -l
При проведении DoS-атаки число, полученное в результате работы данной команды, должно быть довольно большим. В любом случае оно может зависеть от конкретной системы. То есть на одном сервере оно может быть одним, на другом - иным.
Заключение
В какой операционной системы бы не использовалась команда, она является незаменимым инструментом для сканирования, анализа и отладки сети. Ее активно используют системные администраторы всего мира.
Netstat можно использовать при заражении системы каким-либо вирусным программным обеспечением. Она способна показать все приложения с большой активностью подозрительного сетевого трафика. Это поможет на ранних этапах выявить вредное ПО и нейтрализовать его или же защитить сервер от нежелательного вторжения злоумышленников.
Выводы
В статье было дано подробное описание команды Netstat и её параметров и ключей. Полноценное использование программы возможно после нескольких этапов практики на реальном устройстве. Совмещение с другими командами придаст ей еще больше эффективности. Полный набор описания команд Netstat можно найти в руководстве на официальном сайте утилиты. Также стоит отметить, что при использовании в среде Linux команда Netstat устарела и вместо нее настоятельно рекомендуют использовать SS.