Используйте sshuttle для маршрутизации трафика на VPN-сервер компании

#ssh #vpn #openvpn #ssh-tunnel

Вопрос:

Мне нужно получить доступ к внутренней сети компании, не используя их сервер OPENVPN напрямую (мой провайдер блокирует его). Поэтому я использовал экземпляр с общедоступным IP-адресом, где находится моя компания, и настроил клиент OPENVPN, а затем использовал его для подключения к серверу OPENVPN компании.

(public IP instance) ===OPENVPN===> (Company)

Теперь мне нужно добиться еще одной вещи, которая работает с моей локальной машины с помощью VPN по SSH-туннелю с использованием sshuttle, чтобы топология стала:

(local) ===SSHUTTLE===> (public IP instance) ===OPENVPN===> (Company)

Обратите внимание, что экземпляр общедоступного IP-адреса имеет два сетевых адаптера: eth0 (он имеет общедоступный IP-адрес) и tun0 (который принадлежит OPENVPN).

Я установил sshuttle и протестировал следующую команду:

sshuttle --dns -r <user>@<public IP instance address> 0.0.0.0/0

Там написано «подключено» после этого, но я все еще не могу получить доступ ни к чему. Я протестировал dig, и он вернул результаты, показывающие адреса внутренних служб компании. Однако я все еще не могу их пропинговать. Я протестировал использование traceroute , и в какой-то момент оно останавливается после отображения некоторых переходов.

Одним из важных моментов является то, что я не могу пропинговать адрес tun0 (на общедоступном экземпляре ip) со своего локального компьютера.

Я подозреваю, что мне нужно добавить некоторые маршруты на промежуточный общедоступный экземпляр IP, но я не уверен.

Я был бы признателен за любую помощь, заранее спасибо

Ответ №1:

ваша установка верна, но ваши предположения неверны.

Сначала убедитесь, что ваш vpn нормально работает в окне перехода , если linux просто проверяет

 route -n
 

Неверные предположения:

  • sshuttle будет направлять ваши команды dig , sshutle будет направлять только запросы TCP и DNS по протоколу UDP
  • использование —dns в вашем sshuttle бессмысленно, так как вы не t gain dns of vpn but of the jump box and that won будете работать
  • вы должны добавить DNS локальной vpn в свой /etc/resolv.conf с целевым доменом для локального обнаружения, например :
 search companydomain.internal
nameserver 10.x.y.z
 
  • лучше разделить трафик и ориентироваться только на CIDR вашей компании через sshuttle , большинство из них используют части 10.0.0.0/8 вместо всего трафика 0.0.0.0/0
  • важное примечание: это может быть ваша компания, блокирующая исходящий трафик в Интернет через VPN-доступ