Как использовать OpenVPN через ограничительный брандмауэр?

13

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

Я пытался:

  1. OpenVPN работает на стандартном порту
  2. OpenVPN работает на порту 443 (я запускаю OpenVPN вручную из командной строки на VPS и вижу, что сервер сообщает о закрытии соединения почти сразу, я предполагаю, что это результат DPI на брандмауэре)
  3. STunnel работает на порте 443 для доступа к OpenVPN и обхода DPI. Это наиболее успешный способ, позволяющий установить соединение и доступ в Интернет через VPN в течение ~ 10-20 секунд, прежде чем соединение будет принудительно закрыто.

Могу ли я попробовать что-нибудь еще?

Р.Л. Стайн
источник
1
Уважаемый господин, какой у вас есть «персональный VPS» провайдер, который настолько старается помешать вам запустить VPN ?! Кроме того, неясно, пытаетесь ли вы использовать VPS в качестве сервера OpenVPN, или вы хотите сделать его клиентом?
allquixotic
Woops! Я должен был быть более ясным. Поставщиком VPS является Linode, и они определенно ничего не блокируют. ;) Проблема в том, что я подключаюсь к VPN от клиента (моего ноутбука), чей доступ в интернет строго защищен.
RL Stine
1
Как вы и намекнули, VPN-решение в целом будет довольно легко обнаруживать все, что делает проверку пакетов с отслеживанием состояния. Принудительное отключение может быть вызвано методами анализа трафика, которые смотрят на соединение https в stunnel и говорят: «Подождите, стандартные соединения HTTP-запросов / ответов не так уж и болтливы!» - по сути вы застряли. Вы можете попробовать HTTPS-прокси; может быть, что-то, где вы передаете запрос в виде тела HTTP (через SSL) сервлету, и он перенаправляет ваш запрос ... o_O
allquixotic
3
Вы можете иметь в виду, что обход ограничений, введенных брандмауэром компании, скорее всего, является нарушением политики компании. Я предлагаю вам поговорить с администратором брандмауэра об этой проблеме.
Ансгар Вичерс

Ответы:

11

Соединения, которые отключаются через некоторое время, иногда указывают ограничение типа байтов в секунду. Попробуйте посмотреть, работает ли замедление VPN-соединения. Также, если вы настроили OpenVPN для UDP, попробуйте TCP (443 UDP может быть заблокирован, тогда как 443 TCP может остаться незамеченным).

Посетите известный сайт, который использует SSL и проверьте сертификат. Тогда сделайте то же самое дома. Если они не совпадают, то ваше местоположение использует прозрачный HTTPS SSL-прокси и может реально видеть ваш HTTPS-трафик.

Возможно, что-то, что не является портом 443, не отслеживается так внимательно. Попробуйте 22.

Это может звучать глупо, но попробуйте сделать это через порт 80 и посмотреть, что вы получите. Вы также можете попытаться настроить HTTP-туннель между вами и VPS, чтобы трафик выглядел как HTTP-запросы.

Если вы чувствуете себя безумным, попробуйте йод .

LawrenceC
источник
2
+1, но особенно за йод!
0xC0000022L
5

Я думаю, я знаю, почему метод stunnel ведет себя так. Это потому, что вам нужно установить «статический маршрут» для сервера Stunnel. Позвольте мне объяснить это. Когда вы подключаетесь к серверу openvpn, он меняет таблицу маршрутизации и маршрутизирует все ваши пакеты через vpn, кроме пакетов openvpn. Фактически openvpn добавит маршрут для вашего IP-адреса сервера. Но когда вы используете stunnel для подключения к вашему серверу openvpn, вы подключаете openvpn к интерфейсу обратной связи, и нет никакого маршрута к вашему серверу за пределами вашего vpn, поэтому пакеты stunnel хотят идти на сервер, и они идут на ваш vpn, а ваши пакеты vpn собираются. ошеломить :)

Таким образом, вам нужно добавить маршрут к вашему ip сервера, который выходит за пределы вашего vpn (вашего домашнего маршрутизатора).

А что касается проблемы с портом метода 443, я могу сказать, что, возможно, ваш брандмауэр использует SPI или DPI и может легко создавать различные пакеты openvpn из пакетов https (ssl). Поэтому лучше всего использовать stunnel, или если брандмауэр блокирует ssl-пакеты, лучше использовать obfsproxy или fteproxy, чтобы обойти его.

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

Реза Аскари
источник
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, когда у вас будет достаточно репутации, вы сможете комментировать любой пост .
Ramhound
3

Ответ Резы Аскари был как раз ответом на третий вопрос. Это происходило как на моем компьютере с Linux, так и на Android.

На компьютере, прежде чем подключаться к OpenVPN через

sudo openvpn --config configFile.ovpn

Вы должны добавить правило для удаления сервера Stunnel из туннеля OpenVPN.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

Затем подключитесь к вашему серверу OpenVPN. Когда вы закончите, вы можете удалить это правило:

sudo /sbin/ip route del stunnel_ip

Чтобы упростить задачу, чтобы вы не забыли, создайте сценарий оболочки, который добавит правило и запустите OpenVPN. Когда OpenVPN выйдет, правило будет удалено:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

На Android используйте клиент «OpenVPN для Android» от «Arne Schwabe» и «SSLDroid» от «Balint Kovacs».

Затем в клиенте OpenVPN исключите «SSLDroid» из профиля VPN, который проходит через stunnel.

Я бы с удовольствием высказал там свой ответ или комментарий Резы, но это правило оценки репутации помешало мне.

0x00FE
источник
1

Я никогда не пробовал (так что, давайте знать, работает ли это!), Но попробую @ используя туннелирование по ssh через 443 и запусти OpenVPN через туннель. Вам может понадобиться дополнительный удаленный хост для прослушивания на 443, если у вас его нет, но здесь есть пример http://www.anonyproz.com/openvpnsshtunnel.pdf для использования их прокси-сервиса [Примечание редактора: ссылка на Wayback Machine может быть безопаснее], но это также Googlable:

https://www.google.com/search?q=ssh%20tunnel%20openvpn .

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

MDMoore313
источник