#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-доступ