: | : |
‹ | › | |||||
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
2017-12-04 13:28:36 2655 0
Создание VPN соединения по протоколу ssh (sshuttle)
Sshuttle - дает возможность создать VPN соединение от вашей локальной машины до удаленной машины с использованием подключения по ssh. Для работы необходим пакет python верисии не ниже 2.3
Для работы вы должны иметь права root пользователя на локальной машине, но при этом подключение к удаленному сервере может быть организованно с правами обычноых непривилигированных пользователей.
Возможно одновременное подключение сразу к нескольким удаленным серверам
Установка
sudo apt-get install sshuttle
Синтаксис команды:
sshuttle [options] [-r [username@]sshserver[:port]] < subnets ...>
Опции
-
subnets
список подсетей маршрут до которых будет доступен через VPN.
Значения 1.2.3.4 - ip-адрес, 1.2.3.4/32 - ip-адрес, 1.2.3.0/24 - сеть с маской 255.255.255.0
Возможно указать туннелирование определенных портов:
1.2.3.4:4000 - тунеллироваться будет трафик с портом назначения 4000,
1.2.3.4:4000-6000 - диапозон портов;
Так же возможно указание доменного имени: например test.un:9000. --method [auto|nat|tproxy|pf]
Метод файервола исползуемый sshuttle. По-умолчанию auto, пытается сам угадать подходящий метод использования файервола.-
-l, --listen=[ip:]port
Использовать указанный адрес и порт как прозрачный прокси. По-умолчанию sshuttle назначает порт автоматически и ip-адрес 127.0.0.1. -
--dns
Перехватывать локальные DNS запросы и перенаправлять их на удаленный DNS-сервер. -
--python
Для указания пути до python интерпритатора на удаленном сервере. По-умолчанию это python путь берется из переменной PATH. -
-r, --remote=[username@]sshserver:[port]
Указывается имя пользователя, адрес ssh сервера и порт под которыми будет происходить подключение.
Например: sshuttle -r root@1.2.3.4:2208. -
-x --exclude=subnet
Указываем сеть, которая будет исключена из перенаправления.
Например: sshuttle -r root@1.2.3.4:2208 0/0 -x 10.10.10.0/24 - через VPN будет перенаправлен весь трафик, кроме трафика к сети 10.10.10.0/24 -
-X, --exclude-from=file
Список сетей для исключения из перенаправления берется из указанного файла. НА каждую сеть отдельная строка. -
-v, --verbose
Более информативный вывод информации о сессии. По-умолчанию выводятся только ошибки. -
-D, --daemon
Автоматический выполнять fork для sshuttle после подключения и выполнять в background режиме. -
--syslog
После подключения отправлять все лог-сообщения в syslog вместо stderr. -
--pidfile=pidfilename
Когда используется опция --daemon, сохранять pid sshuttle в указанном файле. По-умолчанию это sshuttle.pid файл в текущей директории.
Существую и другие опции с которыми можно ознакомиться в man
Примеры
sudo sshuttle -vr test@1.2.3.4:2208 10.10.0.0/16 -x 10.10.11/0/24
Создаем VPN соединение с сервером с адресом 1.2.3.4 по порту 2208 (порт ssh измененный) c правами пользователя test на удаленном сервере, организуем перенаправление через VPN трафика обращенного к сетям 10.10.0.0.16 за исключением подсети 10.10.11.0.24 с выводом расширенной информации.
Введите ответ:
+
=