"VPN over SSH" — создаёт прозрачный туннель поверх обычного SSH без root на удалённой стороне и без установки VPN-сервера. Заворачивает TCP и DNS-трафик через SSH-хост используя Python + iptables/pf. Незаменим при пентесте: если скомпрометирован хост с SSH-доступом, через sshuttle можно выйти в его внутреннюю сеть, маршрутизировать трафик к недоступным сегментам, использовать Nmap/Metasploit против внутренних хостов напрямую с воркстейшена атакующего.
pip install sshuttle # или apt install sshuttle # Весь трафик через SSH-хост sshuttle -r user@my.server 0/0 # Только подсеть 10.0.0.0/8 sshuttle -r user@my.server 10.0.0.0/8 # Включая DNS sshuttle --dns -r user@my.server 0/0
Насколько мне известно, sshuttle — единственная программа, которая решает следующий частый случай:
Ваш клиентский компьютер (или маршрутизатор) работает под управлением Linux, FreeBSD, MacOS или Windows.
У вас есть доступ к удалённой сети через ssh.
У вас не обязательно есть административный доступ на удалённой сети.
Удалённая сеть не имеет VPN или использует только глупые/сложные протоколы VPN (IPsec, PPTP и т.д.). Или, может быть, вы и есть администратор, и просто устали от ужасного состояния инструментов VPN.
Вы не хотите создавать ssh-перенаправление порта для каждого отдельного хоста/порта в удалённой сети.
Вы ненавидите перенаправление портов в openssh, потому что оно работает случайным образом медленно и/или глупо.
Вы не можете использовать функцию PermitTunnel в openssh, потому что
она отключена по умолчанию на серверах openssh; к тому же она
использует TCP-over-TCP, что обладает ужасной производительностью_.
.. _ужасной производительностью: https://sshuttle.readthedocs.io/en/stable/how-it-works.html
Пожалуйста, обратитесь к документации_.
.. _документации: https://sshuttle.readthedocs.io/en/stable/installation.html
Документация для стабильной версии доступна по адресу: https://sshuttle.readthedocs.org/
Документация для последней версии в разработке доступна по адресу: https://sshuttle.readthedocs.org/en/latest/
Sshuttle также может быть запущен в качестве службы и настроен с использованием системы управления конфигурацией: https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe