Мне наконец удалось сделать это ssh
только с:
- запустить локальный SOCKS прокси на вашем клиентском компьютере (используя
ssh -D
)
- подключиться к удаленному серверу и настроить переадресацию обратного порта (
ssh -R
) на локальный прокси-сервер SOCKS
- настроить серверное программное обеспечение для использования перенаправленного прокси
1. Запустите локальный socks прокси в фоновом режиме
Подключитесь к localhost через SSH и откройте прокси SOCKS на порту 54321.
$ ssh -f -N -D 54321 localhost
-f
запускает SSH в фоновом режиме.
Примечание. Если вы закроете терминал, в котором вы запустили команду, процесс прокси будет уничтожен. Также не забудьте убрать за собой, либо закрыв окно терминала, когда вы закончите, либо убив процесс самостоятельно!
2. подключиться к удаленному серверу и настроить переадресацию обратного порта
Свяжите удаленный порт 6666 с локальным портом 54321. Это сделает ваш локальный прокси-сервер socks доступным для удаленного сайта через порт 6666.
$ ssh root@target -R6666:localhost:54321
3. настроить серверное программное обеспечение для использования перенаправленного прокси
Просто настройте yum, apt, curl, wget или любой другой инструмент, который поддерживает SOCKS для использования прокси 127.0.0.1:6666
.
Вуаля! Счастливого туннелирования!
4. необязательно: настройте серверное программное обеспечение для использования перенаправленного прокси
Я обнаружил, что установка proxychains
на целевой сервер намного упрощает работу.
Это позволяет любому программному обеспечению использовать прокси-сервер SOCKS (даже telnet
), используя LD_PRELOAD
трюк для перенаправления запросов TCP и DNS от произвольных команд в прокси.
Настройка /etc/proxychains.conf
для использования перенаправленного прокси socks:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
Туннельные произвольные инструменты (которые используют TCP) с proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update