在Ubuntu中监控远程登录机器的流量(通过ssh本地端口转发)

时间:2012-11-20 20:28:19

标签: linux ubuntu ssh network-monitoring sshd

我已经在我的计算机(Ubuntu-12.10)中启动sshd,让其他PC(让pc2)通过本地端口转发连接到我的访客帐户。

现在我如何从我的电脑监控pc2的流量,即他/她正在打开哪个网站或他/她正在下载什么数据以及其他通过我电脑的流量?

4 个答案:

答案 0 :(得分:3)

您无法“看到”来自pc2的流量,因为ssh对其进行加密。但是,当使用时,您将能够看到任何隧道流量的出站部分,因为这是由本地sshd生成的。

使用lsof命令,查看来自pc2的用户使用ssh连接到你时会发生什么。 lsof -i TCP|grep pc2会向您显示以下内容: -

sshd      14466     root    3u  IPv4 327724762      0t0  TCP pc1:ssh->pc2:40781 (ESTABLISHED)
sshd      19170 pc2user     3u  IPv4 327724762      0t0  TCP pc1:ssh->pc2:40781 (ESTABLISHED)

第一行代表sshd服务本身,第二行代表运行pc2用户连接的sshd部分(默认情况下使用权限分离与Ubuntu,现在希望其他所有人都使用。)

从此视图中,您无法看到任何端口转发,因为它尚未使用。但我们可以使用pc2user的ssh会话的进程ID(PID),这里是19170。我们现在可以再次使用lsof来查看该进程正在执行的操作。 lsof -p 19170 -a -i TCP

COMMAND   PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    19170 pc2user    3u  IPv4 327724762      0t0  TCP pc1:ssh->pc2:40785 (ESTABLISHED)

那应该给你与上面第二行相同的输出;但是当用户开始使用他们声明的端口转发隧道时,您将看到它来自此PID ...

COMMAND   PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    19170 pc2user    3u  IPv4 327724762      0t0  TCP pc1:ssh->pc2:40785 (ESTABLISHED)
sshd    19170 pc2user   10u  IPv4 327873368      0t0  TCP localhost:55678->google.com:http (ESTABLISHED)

一旦检测到第二个连接,就可以通过指定连接的任一端来开始为它收集网络流量:在这里,我们将使用localhost结束: -

tcpdump -i lo src port 55678

现在您已经了解了通过ssh传输的流量是如何可见的,您可能需要一种更自动的方式来捕获它。 iptables允许我们使用所有者匹配工具匹配来自特定用户的所有流量 - 请参阅http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH

来自pc2user的ssh连接的所有出站网络流量都将由pc2user拥有 - 您可以使用iptables在某处记录所有这些,或者决定允许/拒绝的内容,或者执行其他操作,例如将所有HTTP流量推入您设置的特定代理。

您可能还需要查看ps2user的authorized_keys文件,您可以在其中使用permitopen =“host:port”语句控制允许用户首先要求的端口转发。 man sshd会帮助你。

答案 1 :(得分:1)

安全套接字Shell的目的是加密连接实体之间的流量。它实际上实现了协议级别的加密形式。这是它的利用之一。

关于你的SSH的注意事项是它本身的工作原理。

虽然它的主要目标是保护数据,但通过SSH关联连接的最简单方法就像是一系列管道。这些管包含一个开始,一个结束。

当你创建这个隧道时,你指定一个地址和端口,一旦正确地给出握手就会回复。

SSH Model View

如果防火墙后面有一台机器,则需要通过暴露连接“远程”端的“入口”点,使机器与外界物理连接。

显然,这个端口暴露的好处是更多的项目将开始通过普通的旧文本出现,这些文本公然暴露任何数据。

现在有不同的工具来监控这些信息:

  • 网络和协议分析仪
  • 代理服务器

代理服务器:这种可爱的方法旨在吸引任何流量进入您的网络;过滤,监视,然后将其关闭。因此,从某种意义上说,您将能够监控所有传入和传出的流量请求。

连接本身可能是安全的,这将隐藏传输,但代理仍将公开目标或传入请求。

网络和协议分析仪:这些设计用于监控网络流量,因此它们将针对以下三个方面的每个端口和协议:

  • 服务器
  • 客户端
  • 路由器

目标是监控从机器发送的所有网络数据包,因此一旦填充了该数据包,它将向下移动OSI模型。现在这些分析仪的好处是,它们将把所有必需的信息从IP暴露给另一个。这些Bits部分暴露。

对于渗透测试,常见的策略是毒害路由器表,一旦它们被暴露,它就很容易拦截这些数据包,然后用不同的信息重新注入它们。

以下是一些网络和协议分析仪:

  • Nagios XI
  • 的Wireshark

代理:

  • Nginx的

安全实用程序:

  • Open Wall,安全网站,其中包含一些可能适用的安全软件实用程序。
  • Antionline,Blackhat - 这些论坛有很多可行的信息。
  • 猫头鹰安全软件
  • SSHD
  • FreeBSD - >内置了一些内置的SSH日志实用程序。

有很多信息可以用来做这个,我采取了一些更好的方法然后Satish,但你可以使用不同的攻击变种来获取信息。您可能想要尝试的另一件事是渗透测试。其中一些实用程序也可以满足您的要求。

希望这有助于至少指出正确的方向。

答案 2 :(得分:0)

简短的回答你不能。 ssh的重点是拥有安全(加密)连接。唯一的方法是通过pc1上的root帐户监控访客帐户。您可以将guest虚拟机配置为使用代理进行Internet连接,并且您可以访问代理的日志。

但是有更简单的方法来做这些事情。

答案 3 :(得分:0)

如果您真的愿意这样做,那么唯一的方法就是Man-In-The-Middle (MITM)攻击。虽然ssh会话已加密,但您无法使用嗅探器查看流量,因此您必须将attacker machine放在计算机和PC2之间,以便轻松嗅探流量。有一些工具可以帮助您实施MITM攻击。

MITM SSH

<强> Decrypt SSH2 Session using libssl Vulnerability