我有兴趣了解什么时候 SSH 进入我的 boxen 以创建反向隧道。目前我正在使用一个大技巧 - 只需lsof
几行脚本。所以我的目标是查看套接字何时调用 bind() ,理想情况下,获取它绑定到的端口(它在本地侦听,因为它是反向隧道)和我将连接到的远程主机。我的lsof
hack 基本上没问题,除了我没有收到即时通知而且它相当... hacky :)
这对文件来说很容易;一旦一个文件做了任何事情,inotify 就可以在 Linux 中告诉我。当然,其他操作系统也有类似的能力。
我正在考虑简单地跟踪 SSHD 日志并解析输出,但我的小“隧道监视器”守护程序需要能够在任何时间点找出隧道的状态,即使它没有运行整个SSHD有时间。
我也有一个非常邪恶的黑客我一直在考虑。这是一个在 上调用 GDB 的脚本/usr/sbin/sshd
,然后在 上设置断点bind
。然后它使用选项运行它-d -p <listening port>
——为这些隧道运行单独的 SSHD 就可以了。然后它等待该断点被命中,并使用 GDB 的输入来获取远程主机的 IP 地址和 SSH 现在正在侦听的本地 IP。同样,这是文本解析并打开了一些其他问题。
有没有“好”的方法来做到这一点?