Назад | Перейти на главную страницу

Сервер OpenVPN в Windows 7 - как маршрутизировать определенные IP-адреса клиентам?

Итак, у меня нет сильного опыта в области вычислений или сетей, и я действительно только начинаю изучать эти вещи сейчас, для нашего относительно небольшого семейного бизнеса. Это довольно увлекательно, и мне нужно многому научиться. Однако недавно я играл с конфигурациями сервера OpenVPN и добился некоторого успеха с мостом. Сейчас я работаю над конфигурацией маршрутизации. Одна вещь, с которой я потратил часы и часы, - это возможность иметь клиента, которому назначен IP-адрес как таковой: (10.8.0.6) с сервером OpenVPN: (10.8.0.1), имеющий доступ ТОЛЬКО ОДИН IP-адрес внутренней локальной сети. адрес для веб-приложения.

Позвольте мне объяснить дальше. В локальной сети есть сервер по адресу: 192.168.50.100, который является сервером Apache, на котором размещено веб-приложение для внутреннего использования. Как и следовало ожидать, для людей, работающих на месте, все это доступно. Порт 80 HTTP. Откройте браузер и введите http: // 192.168.50.100 и бинго, оно там.

Однако по мере того, как мы расширяемся и заставляем людей работать удаленно, мы хотим предоставить им доступ и к этому веб-приложению (по адресу http: // 192.168.50.100). В мостовом режиме это работает нормально, однако они также получают доступ ко всем другим сетевым ресурсам / компьютерам и так далее. Конечно, помогает хороший брандмауэр (мы недавно установили брандмауэр WatchGuard, хотя только для нескольких других серверов сервер веб-приложений не находится за ним. Тем не менее). Кажется, это должно быть возможным, чтобы сделать. Но, пока я пытаюсь разобраться в этом, я мог бы дать небольшой совет, поскольку в настоящее время через маршрутизированное соединение он недоступен.

Кстати, мой вопрос очень знаком с заданным здесь:

Подключение локальной сети к серверу OpenVPN через клиентский шлюз Windows 7

Единственная разница в том, что ... оба компьютера (включая сервер для веб-приложений) работают под управлением Windows. И да, я отключил все брандмауэры для всех адаптеров (в том числе OpenVPN) (только во время тестирования / экспериментов), включая брандмауэр Windows, на шлюзе и сервере Apache. В вопросе, приведенном выше, человек нашел свое решение IPTABLES, однако я совершенно уверен, что это просто вещь Linux. (Я никогда не слышал об этом раньше).

Тем не менее, это шаги, которые я сделал до сих пор.

  1. Включена переадресация IP на шлюзе (сервере OpenVPN) с помощью редактирования реестра, описанного в предыдущей ссылке.

  2. Добавлено в server.conf (нажмите "маршрут 192.168.50.0 255.255.255.0")

  3. Я экспериментировал на шлюзе, который является частью частной подсети (192.168.50. *), С различными командными строками «route ADD 10.8.0.0 MASK ...» и так далее. И я делал их непостоянно и очищал их потом, после тестирования, что они не работают.

Так что любые дальнейшие указания будут очень благодарны. Извините за форму эссе, просто хотел сообщить как можно больше информации заранее.

Спасибо!

Джон

РЕДАКТИРУЕТСЯ И ДОБАВЛЯЕТСЯ К ОТВЕТУ TESSELATINGHECKLERS ОТВЕТ / ВОПРОСЫ ИЗ НИЖЕ. (Кстати - спасибо за время TH).

(VPN-клиент <-> VPN-сервер): Оставив на время сервер Apache в стороне, как далеко вы продвинулись с самим туннелем OpenVPN? Это подключается? Можете ли вы получить какой-либо трафик по нему и знать, что он работает? Используйте команду ping для VPN-клиента и попробуйте выполнить команду ping на сервере> 10.8.0.1 и докажите, что у вас есть соединение.

Да, клиент может успешно подключиться к серверу, используя комбинацию клиентских сертификатов и авторизации (имя пользователя / пароль). На данный момент да, трафик идет по нему, и он работает. Даже когда весь трафик для клиента принудительно перекрывается (я играл с этой настройкой только для тестирования), поэтому трафик веб-браузера проходит через него - он работает очень хорошо. А что касается пинга от VPN-клиента к серверу 10.8.0.1, он работает отлично ... все четыре пакета возвращаются по желанию.

(VPN <-> LAN на сервере VPN): вы включили маршрутизацию в реестре, но работает ли она>? Серверу OpenVPN требуется IP-адрес в сети 192.168.50.x.

Да, я включил маршрутизацию в реестре, но работает ли? Я не знаю. Я не знаю, как проверить, есть ли у сервера OpenVPN IP-адрес на 192.168.50.? Перед включением сервера OpenVPN ... если я введу "ipconfig / all" в командной строке, я вижу для адаптера локальной сети, что он имеет IP-адрес 192.168.50.10 (статический IP-адрес локальной сети). После запуска сервера / службы OpenVPN новый адаптер теперь принимает адрес 10.8.0.1 ... и, естественно, если я набираю "ipconfig / all", я вижу для двух разных адаптеров два разных IP-адреса, соответственно перечисленные моменты тому назад. Я могу пинговать с сервера на 192.168.50.100 и 192.168.50.100 (и все другие серверы / компьютеры в сети 192.168.50.x могут пинговать 192.168.50.10) ... однако другие серверы / компьютеры на 192.168.50 Сеть .x не может проверить связь с вновь подключенным сервером с адресом 10.8.0.1 или подключенным VPN-клиентом (первым клиентом) с адресом 10.8.0.6 (например).

Итак, вопрос настройки адаптера с IP-адресом 10.8.0.1 для связи с адресами 192.168.50.x?

Что мне нужно сделать, чтобы получить сообщение «Серверу OpenVPN нужен IP-адрес в сети 192.168.50.x». работает? Отличается ли он от того, который у реального компьютера уже есть на сетевом адаптере по умолчанию? Это одна часть, которая сбивает с толку.

Если вы посмотрите в таблице маршрутизации клиента («печать маршрута» в командной строке) и / или в> журналах подключений OpenVPN, обнаружит ли он маршруты к сети 192.168.50.x, которые> вы указали в server conf ? Если да, то установлен ли шлюз маршрута на адрес 10.0.8.1> сервера OpenVPN? Можете ли вы проверить связь с сервером OpenVPN с помощью клиента по адресу 192.168.50.x>?

Эту часть мне нужно будет сделать снова. С тех пор, как вчера я разместил здесь свой вопрос, я потратил немного времени на возню, и никаких маршрутов по умолчанию не было перенесено. Я сделаю это в ближайшее время и исправлю этот пост на этом этапе. Однако я могу сказать, что когда я протолкнул маршрут 192.168.50.x ... я определенно НЕ мог пропинговать адрес 192.168.50.10 или любой другой адрес 192.168.50.x от клиента.

Без прав администратора OpenVPN на клиенте не может изменять системные таблицы маршрутизации. Клиент может согласовать соединение, но любые маршруты, отправленные сервером, не будут созданы на клиенте. Таким образом, проталкиваемые маршруты работают только в том случае, если пользователь запускает OpenVPN от имени администратора.

Вы сможете сказать, используя WireShark или tcpdump на VPN-клиенте, отправляются ли пакеты для 192.168.50.100 через желаемый сетевой интерфейс. В противном случае ваши маршруты не настроены или неверны. Вы можете проверить это, используя route print на клиенте.

Если маршруты отправлены клиенту, но не могут быть созданы OpenVPN, выходные данные отладки OpenVPN должны показать ошибку. Увеличьте уровень детализации, добавив verb 4 (более высокие числа означают большее количество подробностей) в вашу конфигурацию или указав --verb 4 при вызове openvpn из командной строки.

Вы много говорили о том, чего хотите и как пытаетесь заставить это работать (и похоже, что ваш план высокого уровня будет работать), но ничего о том, как далеко вы продвинулись и что работает / не работает .

Считайте соединение переходом из нескольких разделов и последовательно проверяйте каждый из них с помощью базовых тестов ping.

(VPN-клиент <-> VPN-сервер): Оставив на время сервер Apache в стороне, как далеко вы продвинулись с самим туннелем OpenVPN? Это подключается? Можете ли вы получить какой-либо трафик и знать, что он работает? Используйте команду ping для VPN-клиента и попробуйте выполнить команду ping для сервера 10.8.0.1 и доказать, что у вас есть соединение.

(VPN <-> LAN на сервере VPN): вы включили маршрутизацию в реестре, но работает ли она? Серверу OpenVPN требуется IP-адрес в сети 192.168.50.x.

Если вы посмотрите в таблицу маршрутизации клиента («печать маршрута» в командной строке) и / или в журналы соединений OpenVPN, собирает ли он маршруты к сети 192.168.50.x, которые вы указали в конфигурации сервера? Если да, то установлен ли шлюз маршрута на адрес 10.0.8.1 сервера OpenVPN? Можно ли с клиента проверить связь с сервером OpenVPN по адресу 192.168.50.x?

(Apache <-> Gateway): проверьте обратный маршрут. Когда вы говорите «шлюз», это шлюз по умолчанию для сервера Apache? Если это так, то на шлюзовом компьютере вы правы, вам потребуется «маршрут добавить маску 10.8.0.0 255.255.255.0 192.168.50.x», где x - адрес сервера OpenVPN.

Можете ли вы пропинговать сервер OpenVPN с сервера Apache по адресу 192.168.50.x? Можете ли вы пропинговать его по адресу 10.8.0.1?

(Apache <-> VPN Client): можете ли вы пропинговать клиент OpenVPN 10.8.0.6 с сервера Apache?

Предположительно, один из этих шагов не удастся, и вы подскажете, где искать дальше.

(Я думаю, что Watchguards поставляются с некоторыми лицензиями на VPN для мобильных пользователей, кстати).