用于 socks 代理的 ssh 隧道

用于 socks 代理的 ssh 隧道

我对此感到很困惑;我花了很多时间阅读,请帮忙。

简单来说,我有一个站点 mydomain.com,它有一个网关路由器(router-1 192.168.1.1)、一个配置为交换机的路由器(192.168.1.184)和运行带有 OpenSSH 包的 OpenWrt 的 AP,以及许多台机器。

在路由器 1 上,我打开端口 59409 并将其转发到交换机 192.168.1.184:22

然后我将 macOS 笔记本电脑放在另一个网络中;我已经设置了 rsa 密钥,因此当我发出时:

$ ssh [email protected] -p 59409

我得到了交换机的命令行;因此,身份验证有效,连接一切正常。

然后我发出命令建立隧道,使用交换机作为 mydomain.com 内部网的代理:

$ ssh -N -v -4 -g -D 127.0.0.1:1080 -p 59409 -l root mydomain.com

我在笔记本电脑的其他终端上看到:

me@mylaptop ~ $ netstat -an | grep 1080
tcp4       0      0  127.0.0.1.1080         *.*                    LISTEN     
me@mylaptop ~ $ netstat -an | grep 59409
tcp4       0      0  192.168.1.147.59145    99.99.99.99.59409     ESTABLISHED # public IP obfuscated

然后我希望 nmap 扫描 mydomain.com 中的内联网:

$ sudo nmap -sS -O -v3 -d9 --proxies socks4://127.0.0.1:1080 192.168.1.0/24

但是它却扫描了我的笔记本电脑所在的网络;代理尚未完成。

我也尝试过:

$ sudo proxychains4 nmap -sS -O -v3 -d9 192.168.1.0/24

使用 /etc/proxychains.conf:

...
[ProxyList]
socks5  127.0.0.1 1080

socks4 也不起作用

请问我做错了什么?

答案1

两个原因:

首先,的代理支持nmap非常有限,请参阅https://security.stackexchange.com/questions/120708/nmap-through-proxy。事实上,--proxy除了实际的 TCP 连接之外,所有其他连接都会忽略该选项。

其次,许多交换机的 SSH 服务器实现相当简陋,仅提供串行控制台连接。即使是知名制造商的产品也经常缺少端口转发、文件传输、远程命令执行或公钥认证等功能,这令人恼火。您没有提到交换机的制造商和型号,但很可能它根本不支持将其用作代理所需的功能。

相关内容