Почему tcpdump захватывает много пакетов, не относящихся к моему IP? (Centos 7)

Почему tcpdump захватывает много пакетов, не относящихся к моему IP? (Centos 7)

Tcpdump запущен:

/usr/sbin/tcpdump -U -n -i eth0 icmp or tcp dst port 22 or tcp dst port

Когда я просматриваю собранные данные, они показывают:

132.132.211.221.40372 > 89.31.125.17.ssh: Flags [S], cksum 0xde63 (correct), seq 524121044, win 29200, length 0
146.136.44.207.4855 > 45.66.134.253.ssh: Flags [S], cksum 0x86a2 (correct), seq 1106964113, win 29200, length 0
46.228.217.79.64595 > 81.90.190.31.ssh: Flags [S], cksum 0xdf11 (correct), seq 4132328538, win 29200, length 0
109.89.72.226.19846 > 89.31.126.248.ssh: Flags [S], cksum 0xf42c (correct), seq 2627129631, win 29200, length 0
186.102.253.234.58270 > 45.146.123.96.ssh: Flags [S], cksum 0xc8a3 (correct), seq 3373229862, win 29200, length 0
139.204.89.135.64050 > 81.90.190.31.ssh: Flags [S], cksum 0x9afe (correct), seq 3997943153, win 29200, length 0
146.17.189.108.mbl-battd > 45.66.134.42.ssh: Flags [S], cksum 0xbf0e (correct), seq 1369840100, win 29200, length 0

Итак, странная вещь, все эти адреса, ни SCR, ни DST не являются моим IP-адресом! Означает ли это, что кто-то использует мой хост как "реле" для атаки на чужой SSH?

Позвольте мне опубликовать здесь линейку и журнал iptables для справки:

-P FORWARD DROP
-A FORWARD -p tcp -m tcp --dport 22 -j LOG --log-prefix "[forward_ssh] "
-A OUTPUT  -p tcp -m tcp --dport 22 -m state --state NEW -j LOG --log-uid --log-prefix  "[out_ssh_new] "
-A OUTPUT  -p tcp -m tcp --dport 22 -m state --state ESTABLISHED -j LOG --log-uid --log-prefix "[out_ssh_est] "
-A OUTPUT  -p tcp -m tcp --dport 22 -j DROP

В журнале ниже показано, что мой IP (194.156.xxx.xxx) атакует другие...

Mar 15 08:56:35 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=2.59.135.116 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 09:21:02 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=162.248.88.193 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 10:52:45 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=172.106.16.136 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0

решение1

Tcpdump будет прослушивать все пакеты, проходящие через ваш сетевой интерфейс. Подойдет коммутатор Ethernetэто лучшеечтобы передавать только пакеты, адресованные вашему MAC. Некоммутируемый концентратор, даже не будет пытаться, он покажет вам все.

Поэтому вы получите все пакеты в вашей локальной сети. Обычно мы не ожидаем пакетов с такого разнообразного набора IP-адресов. Однако, посмотрев ваш IP-адрес, мы обнаруживаем, что вы находитесь в дата-центре, принадлежащем Petersburg Internet Network ltd. Они маршрутизируют интернет-трафик? Может ли этот трафик проходить мимо вашей машины.

Пожалуйста, найдите более безопасное место для тренировок.

решение2

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

Однако в неразборчивом режиме интерфейс может принимать все пакеты. Например, для отображения с помощью tcpdump.

Если у вас коммутатор вместо концентратора, коммутатор должен фильтровать пакеты и отправлять вам только те, которые действительно вам нужны. Для многоадресного трафика сценарий сложнее, и я не буду его здесь объяснять.

Сетевое оборудование маршрутизирует трафик не по IP-адресам, а по MAC-адресам.

Более подробную информацию можно найти здесь.


После вашего комментария приводим дополнительную информацию:

Вам интересно, что за логи создает iptables. Одна из проблем заключается в том, что вы показываете только логи установленного соединения. Когда соединение было установлено, о нем также должны быть логи. Это означает, что эти соединения уже установлены и работают. Попробуйте выяснить, какие процессы используют эти соединения, с помощью lsofутилиты. Когда у вас есть имя процесса, вы должны быть в состоянии определить, является ли соединение законным или нет.

Если вы подозреваете, что ваш компьютер может быть скомпрометирован, я бы предложил провести некоторые проверки. Посмотрите, установлено ли у вас что-то, что вы не знаете. Для RedHat/CentOS/Fedora/Oracle linux, которые используют пакеты RPM/YUM, вы можете легко это проверить с помощью нескольких команд:

  • rpm -qaвыведет список всех установленных пакетов. Посмотрите, нет ли подозрительных.
  • rpm -Vaотобразит все файлы, которые изменились после установки пакетов. Посмотрите, какие файлы изменились.
  • Вы также можете проверить источник пакета, хотя информация может быть поддельной.https://serverfault.com/questions/62026/how-to-know-from-which-yum-repository-a-package-has-been-installed

Для других дистрибутивов найдите сами, как проверить целостность установки.

Связанный контент