13

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

Я пытался:

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

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

4 ответа4

10

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

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

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

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

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

4

Я думаю, я знаю, почему метод 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, чтобы обойти его.

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

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.

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

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, когда они были популярны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .