![用于 socks 代理的 ssh 隧道](https://linux22.com/image/767056/%E7%94%A8%E4%BA%8E%20socks%20%E4%BB%A3%E7%90%86%E7%9A%84%20ssh%20%E9%9A%A7%E9%81%93.png)
我对此感到很困惑;我花了很多时间阅读,请帮忙。
简单来说,我有一个站点 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 服务器实现相当简陋,仅提供串行控制台连接。即使是知名制造商的产品也经常缺少端口转发、文件传输、远程命令执行或公钥认证等功能,这令人恼火。您没有提到交换机的制造商和型号,但很可能它根本不支持将其用作代理所需的功能。