Назад | Перейти на главную страницу

Могу ли я создать SSH для туннелирования HTTP через сервер, как прокси?

Скажем, у меня есть server и client. Мне нужно создать соединение из client к website через server вроде это был прокси.

Можно ли это сделать с помощью SSH-туннеля или мне нужно установить прокси-сервис на server?

Вы можете сделать это с помощью ssh

ssh -L 80:remotehost:80 user@myserver

Тогда у вас будет туннель от вашего локального порта 80 к порту удаленного хоста 80. Это не обязательно должно быть то же самое, что и myserver. Чтобы сделать это прозрачным, вы должны добавить запись в файл hosts. Если вы этого не сделаете, vhosts работать не будет. Если вам нужно соединение с SOCKS-прокси, вы также можете использовать

ssh -D 5000 user@myserver

Это создаст SOCKS-прокси на порту 5000 localhost, который направляет все запросы через myserver.

Да, это возможно.

Бегать ssh -D port user@host и настройте своего клиента на использование вашего компьютера в качестве прокси-сервера SOCKS.

Если вам нужен конкретно HTTP-прокси, вы можете использовать Proxychains и маршрутизировать его через предыдущие SOCKS.

sshuttle работает как VPN, но через SSH.

Прозрачный прокси-сервер, работающий как VPN для бедняков. Пересылка по ssh. Не требует админа. Работает с Linux и MacOS. Поддерживает DNS-туннелирование.

https://github.com/sshuttle/sshuttle

Putty тоже неплохо справляется с этим.

В SSH перейдите к туннелям. Внизу поместите 8080 в порт, а для пункта назначения оставьте его черным и выберите переключатель «Динамический». Это все, что вам нужно сделать, теперь подключитесь к серверу с помощью Putty.

После подключения у вас есть прокси-сервер, работающий на вашем локальном хосте на порту 8080, который будет проксировать все запросы через ваш сервер.

Теперь используйте веб-браузер и настройте прокси, установив host = localhost и port = 8080, и убедитесь, что это прокси-сервер SOCKS, который вы выбрали. Я делаю это все время, поэтому, если вы используете Firefox, обязательно установите плагин FoxyProxy, поскольку он позволяет включать / выключать прокси одним щелчком мыши.

Внимание: имейте в виду, что по умолчанию ваши DNS-запросы не передаются через прокси. Таким образом, веб-сайт, который вы посещаете через прокси-сервер, все равно будет регистрироваться (если они регистрируют этот материал). Вы также можете настроить firefox для прокси DNS-запросов, но по умолчанию он этого не делает.

Чтобы позволить прокси-серверу запускать компьютер и разрешить другим клиентам подключаться к вам, вам понадобится опция -g. Так, например, вы можете запустить это на сервере с именем foo:

ssh -g -ND 9191 root@remotehost

Затем вы можете настроить прокси в браузере клиента на использование сервера foo и порта 9191 для прокси SOCKS. Клиенты также будут отправлять свои запросы foo, который, в свою очередь, перенаправит запрос через ssh на удаленный хост. В Интернете это будет выглядеть так, как будто они используют удаленный хост.

Если вы хотите также пересылать DNS-запросы с помощью firefox, отредактируйте about: config в firefox и установите для network.proxy.socks_remote_dns значение true.

Вы можете использовать SSHUTTLE, вот руководство по его использованию,

https://etherarp.net/sshuttle-a-vpn-for-the-lazy/

вот учебник, как настроить его для работы в качестве службы,

https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe