![]() |
Вопрос в теме. Как пользоваться тунелями? |
proxifier+plinker или proxifier + bitvise |
Например можешь с англии во францию пройти и обратно под ламаншем https://txgate.io/images/smilies/trollface.png |
|
Теория Чтобы настроить локальный SOCKS5 прокси, необходимо в консоли набрать следующую команду: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">ssh -D $port $user@$host</pre> Параметр "-D" в данном примере говорит установить локальный прокси на порту $port, который в свою очередь выбирается произвольным образом из свободных в системе, но должен быть больше 1024 и меньше 65535. $user и $host - это данные имени пользователя и адреса сервера. После авторизации мы получаем полноценный прокси-сервер по адресу 127.0.0.1:$port В результате успешного выполнения команды Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">ssh -D 14880 [email protected]</pre> мы получим SOCKS5 прокси по адресу 127.0.0.1:14880 в виде шифрованного туннеля до 8.8.8.8. Введя в настройках браузера SOCKS5 прокси 127.0.0.1:14880 мы получим наш внешний ip 8.8.8.8, причем в отличие от обычного SOCKS5 прокси, соединение до 8.8.8.8 будет зашифровано, то есть провайдер не увидит содержимое траффика. Чтобы tor шел через наш прокси, нужно в конфиге torrc добавить строчку Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">Socks5Proxy 127.0.0.1:14880</pre> После чего мы получим схему, известную как "VPN -> Tor". Если же перед командой создания туннеля добавить torsocks или torify при работающем торе, то получим схему "Tor -> VPN" для всех приложений, использующих сокс-прокси на 127.0.0.1:14880: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">torsocks ssh -D 14880 [email protected]</pre> Организация рабочего окружения Можно организовывать туннель от того пользователя, от которого запущено графическое окружение. Но тогда этому пользователю необходим неограниченный доступ в сеть, что я считаю небезопасно. Поэтому для начала создадим новую учетную запись (выполнять в консоли от root): Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">useradd -M -r -U -s /usr/bin/nologin --uid 1337 sshproxy</pre> Здесь мы создаем т.н. системную учетную запись с id 1337 и одноименную группу. Параметр -M говорит не создавать домашнюю папку, можно и создать, но мне удобнее сделать по-другому: создать шифроконтейнер, в нем создать папку, к примеру sshproxy, и поменять владельца и разрешения папки: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 66px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">chown sshproxy:sshproxy sshproxy chmod 700 sshproxy</pre> Далее, лучше всего запретить фаерволлом лезть куда не надо всем пользователям, кроме избранных. Нашему новому пользователю sshproxy необходим доступ, поэтому добавляем правило в iptables, в файле правил оно должно выглядеть примерно так: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">-A OUTPUT -m owner --uid-owner 1337 -j ACCEPT</pre> Безопасность соединения Перед использованием туннеля необходимо обезопаситься от атаки типа человек-по-середине. После подключения к серверу и перед тем, как инициировать авторизацию, необходимо убедиться, что "разговариваем" мы именно с нужным нам сервером. Для начала нужно сменить рабочую директорию на ту, которую мы создали в предыдущем шаге Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">cd /media/cryptocont/sshproxy</pre> Теперь, поскольку окружение у нас нестандартное, нам необходимо передать дополнительный параметр ssh, -o "UserKnownHostsFile sshproxy_hosts". В итоге команды подключения и проверки хоста будут выглядеть так (помним, что нам надо подключаться от пользователя sshproxy и подставить верные значения удаленного пользователя и сервера): Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">sudo -u sshproxy ssh -o "UserKnownHostsFile sshproxy_hosts" $user@$host</pre> Высветится примерно следующее сообщение: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 66px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;"> The authenticity of host 'ip.ip.ip.ip' can't be established. ECDSA key fingerprint is ff:aa:bb:cc:00:11:22:33:44:55:66:77:88:99:aa:bb. Are you sure you want to continue connecting (yes/no)?</pre> Жмем Ctrl-C, меняем внешний ip - перезапускаем tor или устанавливаем новую личность, опять соединяемся: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">sudo -u sshproxy ssh -o "UserKnownHostsFile sshproxy_hosts" $user@$host</pre> Опять Ctrl-C, меняем внешний ip - перезапускаем tor или устанавливаем новую личность, соединяемся: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">sudo -u sshproxy ssh -o "UserKnownHostsFile sshproxy_hosts" $user@$host</pre> Если отпечаток тот же во всех трех случаях - печатаем yes. Некоторые vpn-конторы предоставляют сразу отпечатки ключей, тогда вы сверяете то, что вам высветилось с тем, что вам дали при регистрации и если все нормально, пишете "yes". После "yes" данные о сервере запишутся в файл sshproxy_hosts, и нам больше не надо будет ничего сверять. Для справки: часть "sudo -u sshproxy" говорит, что запускать ssh нужно от пользователя sshproxy. Авторизация После последнего "yes", нам предложат авторизоваться на сервер. Обычно авторизация бывает двух видов: по паролю и с помощью ключевого файла. С паролем все понятно - когда нас просят, мы его вводим, и все, туннель готов к использованию. С ключами же несколько сложнее. Ключ или выдадут, или его нужно будет генерировать на сервере (в интернетах расскажут, как). В общем, условимся, что он у нас есть в виде файла с названием sshproxy_key. Нам нужно положить его в нашу папку sshproxy, и максимально ограничить доступ к нему: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">chown sshproxy:sshproxy sshproxy_key</pre> Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">chmod 400 sshproxy_key</pre> После этого наша команда подключения к серверу преобразуется вот в такую: Code: <pre class="alt2" dir="ltr" style=" margin: 0px; padding: 6px; border: 1px solid rgb(0, 0, 0); width: 640px; height: 34px; text-align: left; overflow: auto; background: rgb(37, 37, 37) none repeat scroll 0% 0%; border-radius: 5px; font-size: 11px; text-shadow: none;">sudo -u sshproxy ssh -o "UserKnownHostsFile sshproxy_hosts" -i sshproxy_key $user@$host</pre> Ну вот и все. Теперь для создания туннеля необходимо от root проникнуть в директорию sshproxy и запустить команду создания туннеля с ключом или без него. Взято с Runion </br></br></br></br></br></br></br></br></br></br></br> |
|
All times are GMT. The time now is 04:15 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.