Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести
На своем компьютере установим sshuttle:
- либо с помощью
pip install sshuttle
- либо с помощью копирования исходников с github
git clone https://github.com/sshuttle/sshuttle.git && python setup.py install
- пользователи debian могут это сделать так:
apt-get install sshuttle
Далее нужно выполнить простую команду:
sudo sshuttle -r username@sshserver 0.0.0.0/0
где username — логин на удаленном виртуальном сервере, sshserver — его IP-адрес или доменное имя, параметр 0.0.0.0/0 означает, что мы собираемся добавить в нашу таблицу маршрутизации правило, благодаря которому весь исходящий трафик будет отправляться на удалённый сервер, за исключением DNS-запросов. Разработчик намеренно не включает по умолчанию этот функционал для DNS, потому что у некоторых пользователей для выхода в интернет должны использоваться провайдерские серверы разрешения имен. Если мы можем пользоваться любыми DNS-серверами, то и запросы к ним можем “завернуть” в наш шифрованный SSH-туннель:
sshuttle --dns -r username@sshserver 0.0.0.0/0
Помимо этого мы можем направлять в туннель наш исходящий трафик не полностью, а только для определенных IP-подсетей, указывая соответствующий параметр:
sshuttle -r username@sshserver 11.12.13.14/0
Преимущества этого решения в следующем:
- у Вас нет необходимости иметь права администратора на удалённом сервере, используемом для выхода в интернет
- Вам не нужно создавать правила SSH для форварда каждого порта
Недостаток только один (если это можно назвать недостатком): sshuttle не поддерживает Windows, пользователям этой ОС можно сделать костыль в виде VM.
Автор: trim777