Учитывая внешний IP-адрес и целевой порт в Linux, есть ли способ использовать что-то вроде ngrep
или tcpdump
для идентификации процесса и / или пользователя, который иногда отправляет ему трафик? Или правила iptables
? Есть ли рекомендуемый способ запуска постоянного монитора, который не требует слишком больших ресурсов?
Rich Alloway - RogueWave В ответе было несколько многообещающих предложений, но каждый пакет так или иначе не соответствует требованиям. Единственный вариант, который удовлетворил все мои потребности, - это sysdig
Есть много способов его использования, например:
sysdig -p "*%evt.num %evt.datetime %evt.cpu (%user.name) %proc.name (%thread.tid) %evt.dir %evt.type %evt.info" '(fd.rnet=1.2.0.0/16 or fd.rnet=3.4.5.0/24) and fd.rport=443' | tee outputfile
Зная IP и порт, вы можете использовать netstat
, чтобы узнать, какой процесс / пользователь связан с соединением, используя несколько параметров: netstat -tunp
# netstat -tunp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 36 192.168.42.253:22 10.0.0.7:51313 ESTABLISHED 4060/sshd: ralloway
Параметр -t
включает TCP.
Параметр -u
включает UDP.
Параметр -n
включает числовую печать хостов, портов и т. Д.
Параметр -p
включает печать PID и имени программы.
Утилита ss
является новой заменой для netstat
и, в данном случае , те же параметры возвращают ту же информацию:
# ss -tunp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 192.168.42.253:22 10.0.0.7:51313 users:(("sshd",pid=4062,fd=3),("sshd",pid=4060,fd=3))
Я ничего не знаю о текущих мониторах, но вы можете проверить параметры iftop, nettop, nethogs и т. д., чтобы узнать, подойдет вам.
-Rich Alloway (RogueWave)