SOCKS проксі крізь SSH

Існує дуже простий метод, для того щоб зробити підключення до видаленої машини, та запити ресурси від її імені, наприклад війти в інтернет.

Для цього нам знадобиться SSH сервер на віддаленій машині, та SSH клієнт на нашій.

Виконуємо команду підключення до комп’ютера remote.machine.local:

ssh -D 1080 remote.machine.local

Після вдалого під’єднання, на локальній машині порт 1080 буде зв’язано з портом 1080 на віддаленій машині.

В браузері налаштуйте проксі:

Settings -> Advanced -> Network -> Configure how Firefox connects to the Internet -> Manual settings, Socks: localhost, Port: 1080

Якщо вам потрібно робити запити DNS від імені віддаленої машини,  в налаштування “about:config”, додайте це:

network.proxy.socks_remote_dns

Але серфінг це не все. Ще можна встановити демон: tsocks

В той час як, SSH вже зробив SOCKS тунель, для програм які не вміють з ним працювати, налаштовуємо tsocks на використання локальної машини:

echo "server = 127.0.0.1" | sudo tee /etc/tsocks.conf

Після чого можна запускати будь-яку програму, а tsocks буде перехоплювати весь мережевий трафік програми, наприклад:

tsocks ssh server.behind.firewall.example.com

tsocks psql -U pg_admin_user -W -h database.behind.firewall.example.com -W template1

Також можна виконувати команди на віддаленій машині:

. tsocks on
command
command
command
. tsocks off

Можна запустити браузер без переналаштувань:

tsocks firefox http://ripe.net

Перевірити стан проксі:

tsocks show

Якщо змінна оточення LD_PRELOAD порожня, то tsocks вимкнений для цієї консолі.

 

Оригінал