我有两台机器 M1 和 M2,分别运行 Debian 8.0,位于两个远程网络 N1 和 N2
M1 在 N1 中连续捕获数据包,并且具有已知的静态 IP。
M2 通过连接到 M1 从 N2 远程访问捕获。
进行远程捕获和实现该系统的最常见方式是什么?
我现在唯一的解决方案是使用一个简单的 dumpcap 管道
openssl
然后netcat
:在 M1 上
tshark -w - | openssl enc -des3 | nc -l 1234
在 M2
nc <M1 IP> 1234 | openssl enc -d -des3 > capture.pcap
我还是不知道该如何使用ssh
。
答案1
我通常用来tcpdump
捕获数据包:
tcpdump -s0 -w </path/to/save/file>.pcap "<PCAP FILTER>"
您的查询在哪里<PCAP_FILTER>
,例如host 192.168.86.1
捕获发往/来自 的数据包192.168.86.1
。所有相关参数都可以通过搜索找到,或者查看使用 获取的手册页man pcap-filter
。
它将捕获所有数据包,而不仅仅是带有的标头-s0
。因此,不要将此参数用于长时间运行的捕获,因为文件会变得很大。
答案2
假设 tcpdump 安装在 M1 上,你可以通过 ssh 连接user
到 M1,并且M1user
允许。然后你可以这样做sudo
ssh user@M1 'sudo /usr/sbin/tcpdump "PCAP FILTER"'
# will give you text output
ssh user@M1 'sudo /usr/sbin/tcpdump -w - "PCAP FILTER"' > /path/to/file.pcap
# will save binary output to .pcap file
您应该制作“PCAP FILTER”,以便将 M2 排除在转储之外;否则,M2->M1 的连接也会被记录下来。系统会要求您在 M1 上输入用户密码,或者您可以通过公钥进行身份验证,这取决于 M1 的 ssh 配置。
或者,按照您的要求使用 tshark:
ssh user@M1 'sudo /path/to/tshark -R <filter> -w -' > capture.pcap
对于“过滤器”,与上述相同。