Я чешу голову над этим; я потратил много часов на чтение, пожалуйста, помогите.
Упрощая, у меня есть один сайт mydomain.com, который имеет один шлюзовой маршрутизатор (router-1 192.168.1.1), один маршрутизатор, настроенный как коммутатор (192.168.1.184) и AP под управлением OpenWrt с пакетом OpenSSH, а также несколько машин.
На маршрутизаторе-1 я открываю порт 59409 и перенаправляю его на коммутатор 192.168.1.184:22
Затем у меня есть ноутбук macOS в другой сети; я настроил ключи rsa так, что когда я выдаю:
$ ssh root@mydomain.com -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 также не работает
Что я делаю не так, пожалуйста?
Две причины:
Во-первых, поддержка прокси в nmap
очень ограничена, см. https://security.stackexchange.com/questions/120708/nmap-through-proxy . Фактически, опция --proxy
игнорируется для всего, кроме реальных TCP-соединений.
И во-вторых, реализация SSH-сервера во многих коммутаторах довольно примитивна, предлагая не более чем последовательное консольное соединение. Такие функции, как перенаправление портов, передача файлов, удаленное выполнение команд или аутентификация с открытым ключом, отсутствуют с раздражающей регулярностью даже в продуктах известных производителей. Вы не указали производителя и модель вашего коммутатора, но, скорее всего, он просто не поддерживает функциональность, необходимую для использования его в качестве прокси-сервера.