记录传出连接的发生情况


23

有没有一种方法可以记录文件创建的所有传出连接?我知道,netstat但这似乎更像是某个时间点的快照,而不是在一段时间内运行和记录信息的东西。

我只需要IP或主机名,端口以及进行连接的过程。


1
好吧,您可以watch -n 2 netstat在此期间做类似的事情,但这不是一个正确的解决方案。
乌尔里希·施瓦茨

1
[此线索] [1]应该回答你的问题[1]:superuser.com/questions/34782/...
外星生命形态

Answers:


15

在Linux上,您可以将审核子系统设置为记录每次建立网络连接的尝试。有关审核子系统的信息,请阅读auditctl手册页本教程本网站上的其他示例auditd如有必要,安装发行包的软件包,然后

auditctl -A exit,always -S connect

日志记录在/var/log/audit/audit.log我所知道的所有发行版中。您还可以搜索他们ausearch


3
我需要确定哪个进程正在建立传出连接。这立即做到了。为避免泛滥日志,请在以后删除规则:auditctl -d exit,always -S connect
Michael Hampton

如何检查日志?
luckydonald

@luckydonaldless /var/log/audit/audit.log
吉尔斯“


3

在Linux上,您可以ip_conntrack用来完成此任务。这是一个连接跟踪模块,通常用于监视由防火墙/ NAT盒管理的异常行为协议(例如FTP)的连接。

modprobe ip_conntrack
cat /proc/net/ip_conntrack

您可以grep伪文件以查看已建立的连接,并进一步grep源IP以查看其源于您的盒子。


这个问题可能不一定以Linux为中心。
卡森2012年

0

我会考虑使用tcpdump出站接口查看出站SYN请求。

如果您真的很喜欢冒险,可以使用以下实用程序:strace或在跟踪程序执行时truss报告所有connect系统调用,但这会更加危险,并且在处理多线程进程时会有弊端。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.