January 11, 2023

Chaining proxy (ssh)

https://t.me/traffic_science

В своё время не мог найти информацию, как сделать цепочку из нескольких прокси, поэтому держите небольшой мануал.

Пусть первую прокси нам предоставит tor, так и напишем в консоль

tor

Видим, что запущен сокс листенер на стандартном порту 9050

Opened Socks listener connection (ready) on 127.0.0.1:9050

Затем добавляем в нашу цепочку второе звено, которое мы сделаем из ssh-доступа:

ssh -o ProxyCommand='nc -X4 -x 127.0.0.1:9050 %h %p' -D 0.0.0.0:8899 root@11.111.111.11

где:

8899 - порт, на котором будет новый листенер этой цепочки;

root и 11.111.111.11 - пользователь и ip нашего ssh;

Вводим пароль от пользователя root иии..

Готово!

Мы сделали цепочку из двух проксей, где первое звено - тор, второе - ssh, к которому мы подключились через тор. Адрес нашей финальной прокси: 127.0.0.1:8899

Далее в эту цепь можно по аналогии бесконечно добавлять новые звенья.

Можно опять засунуть туда тор, запущенный с новым конфигом torrc:

SOCKSPort 8877

Socks5Proxy 10.0.0.1:8899

где 8877 - новый конечный порт цепочки

а чтобы запустить tor с кастомным конфигом torrc используем ключ -f

tor -f /path/to/torrc

Либо можно добавить еще одну ssh-прокси

ssh -o ProxyCommand='nc -X4 -x 127.0.0.1:8899 %h %p' -D 0.0.0.0:8877 root@22.222.222.22

P.S. Если вдруг вам зачем-то нужно будет это все автоматизировать, то можно юзать sshpass, чтобы не вводить пароль от ssh вручную.

P.P.S. Чтобы убить плохой процесс тора, пишем сперва

lsof -i tcp:9050

чтобы узнать PID процесса tor, и затем убиваем его командой

kill 85065

где 85065 - PID нашего tor процесса