Как отслеживать сетевую активность в системе Linux

Как отслеживать сетевую активность в системе Linux

Life-Hack [Жизнь-Взлом]/Хакинг

Есть множество причин, по которым вы можете захотеть помониторить сетевую активность в вашей системе Linux.

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

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

Netstat

Netstat – это мощная утилита, которая может выводить сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскарадить соединения и т.д.

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

Установка Netstat

В системах на основе Debian и Debian, таких как Ubuntu, используйте apt.

# apt install net-tools

В системах на базе Red Hat Enterprise Linux и Red Hat используйте yum,

# yum install net-tools

В системах на основе Arch используйте pacman.

# pacman -S net-tools

Просмотр сетевых процессов

Во-первых, давайте рассмотрим процессы.

Для этого введите следующую команду:

$ sudo netstat -tulpen

В этой команде t отображает TCP-соединения, u отображает UDP-соединения, l показывает только прослушивающие сокеты, p показывает программу, к которой принадлежит соединение, e показывает расширенную информацию, а n представляет адреса, пользователей и порты в числовом виде.

При рассмотрении модели клиент-сервер, на которой основано большинство сетевого программного обеспечения, процессы можно рассматривать как программное обеспечение, работающее в «серверном» режиме.


У каждого процесса вы можете увидеть используемый протокол, локальный адрес и порт, который он слушает, пользователя, под которым он работает, и имя PID/программы.

Здесь следует отметить одно важное отличие.

Для подключений tcp4/udp4 (просто перечисленных как tcp и udp), где локальный адрес указан как 0.0.0.0, процесс прослушивает соединения с любого компьютера, который может подключиться к нему по сети, тогда как когда он указан как 127.0 .0.1 он только прослушивает соединения на локальном хосте (машине, на которой он запущен или сам) и не может быть подключен к другим компьютерам в сети.

Такое же различие справедливо для tcp6/udp6 при сравнении локального адреса : : (обращенного к сети) и ::1 (только localhost).


Как просмотреть все сетевые подключения

Теперь давайте посмотрим на все текущие сетевые подключения.

Для этого введите следующую команду, которая похожа на предыдущую, за исключением того, что мы используем -a для просмотра всех сокетов вместо -l, чтобы просто просмотреть прослушивающие сокеты.

$ sudo netstat -atupen

Эта команда не только показывает нам, какое программное обеспечение прослушивает соединения в качестве «серверов», но также показывает нам установленные в настоящее время соединения с этим программным обеспечением и любые установленные сетевые соединения, которые мы используем с использованием программного обеспечения, выступающего в качестве «клиента», такого как веб-браузер.

Просмотр установленных подключений

Вы можете оказаться в ситуации, когда хотите просмотреть только соединения с типом ESTABLISHED.

ss

Команда netstat долгое время была фаворитом у системных администраторов, однако недавно ее заменила команда ss, которая может похвастаться тем, что работает быстрее, проще и удобочитаемее, чем netstat.

Давайте посмотрим, как выполнить те же действия, что и выше, с помощью ss.

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

Просмотр процессов

Для просмотра всех процессов введите следующее:

$ sudo ss -tlunp

В этой команде t отображает TCP-соединения, l показывает только прослушивающие сокеты, u отображает UDP-соединения, n представляет адреса, пользователей и порты в числовом виде, а p показывает программу, к которой принадлежит соединение.


Просмотреть все сетевые подключения

Чтобы просмотреть все сетевые соединения, введите следующее, где a заменяет l и показывает все сетевые сокеты, а не только слушающие.

$ sudo ss -taunp

Просмотр установленных подключений

Если -a или -l не включены, то ss покажет только установленные соединения.

Для просмотра только установленных соединений введите следующее.

$ sudo ss -tunp


lsof

На случай, если вам не хватило netstat и ss, мы представляем lsof. Lsof используется для вывода списка открытых файлов.

GNU/Linux унаследовал принцип проектирования UNIX, согласно которому все является файлом; это включает в себя и сетевые подключения.

В результате lsof можно использовать для просмотра сетевой активности аналогично вышеупомянутым командам.

Как просмотреть все сетевые подключения

Для просмотра всех сетевых подключений введите следующее.

$ sudo lsof -nP -i

В этой команде n представляет адреса в числовом виде, P представляет собой числовые порты, а i подавляет перечисление любых открытых файлов, которые не считаются сетевыми файлами.


Просмотр установленных подключений

Чтобы просмотреть только установленные соединения, введите следующую команду, где дополнительные переключатели перечисляют все установленные TCP-соединения.

$ sudo lsof -nP -iTCP -sTCP:ESTABLISHED


Просмотр процессов

Чтобы просмотреть слушающие процессы с помощью lsof, введите следующее.

$ sudo lsof -nP -iTCP -sTCP:LISTEN

При этом будут пропущены все процессы, которые прослушивают UDP, поэтому может быть желательно вместо этого ввести следующее, чтобы включить их.

$ sudo lsof -nP -i | grep 'LISTEN\|UDP'


Источник


Report Page