Меню Рубрики

Openvpn client add route windows

Развертывание VPN сети на основе OpenVPN от А до Я

Введение

Задача

Наверно нет смысла рассказывать для чего используются VPN. Я приведу реальную задачу и расскажу как ее достичь.
Основная задача — это безопасное и простое решение доступа к внутренним ресурсам моих серверов.
Первый сервер является «домашним» серверов, подключенный к широкополосному соединению в городе под управлением CentOS 5.5, выполняющий различные функции, в том числе шлюза для квартирной сети. Назовем его CITY. Квартирная сеть использует адреса 192.168.22.0/24 и 192.168.21.0/24.
Второй сервер установлен на дальнем объекте, например, за городом на даче. Сервер работает под управлением CentOS 5.5 и выполняет функции шлюза для дачной сети и тоже выполняет другие задачи. Доступ в сеть осуществляется с помощью недорогого доступа по технологии 3G — в сервер воткнут USB 3g-модем и настроено устойчивое соединение. Назовем его CAMP. Дачная сеть использует адреса 192.168.23.0/24 и адреса 192.168.24.0/24.
А еще у меня есть ноутбук под управлением Windows XP, который вместе с владельцем попадает в разные сети, в том числе из дома, с работы и прочих гостевых мест, где есть доступ в Интернет. Назовем его NOTEBOOK.
Я хочу иметь доступ с ноутбука на мой домашний сервер CITY, в том числе к файлопомойке по NetBIOS и пр. А еще я хочу иметь доступ на сервер CAMP.
В случае CITY некоторые проблемы доступа можно решить публичным IP адресом. Но для CAMP публичный IP адрес у мобильных операторов практически недоступен или стоит неоправданно дорого для частного использования. А обычные клиенты работают через NAT. На ноутбуке проблемы сходные — как правило, везде NAT, бывают публичные открытые сети, где весь трафик виден всем пользователям.
Решением этих проблем является использование OpenVPN для связи всех компьютеров в единую сеть, заодно, защищенную от посторонних глаз.

Эскиз сети

CITY всегда включен и имеет внешний IP адрес, допустим 22.33.44.55, находится на широком и устойчивом канале, поэтому он будет сервером VPN.
А CAMP и NOTEBOOK клиентами VPN.
Сеть с адресами 192.168.25.0/24 выделяем под VPN.
Мы разрешим роутинг, чтобы видить все нужные сети.

Настраиваем сервер

Итак шаги для настройки сервера на базе СentOS, впрочем они легко применимы и для FedoraProject и собственно RedHat Enterprise Linux и прочим RPM based дистрибутивам, ну а с небольшими изменениями вполне должны работать по Debian/Ubuntu.
На всякий случай, выключите репозиторий rpmforge, т.к. в нем openvpn собран с неверными путями. Я использую репозиторий epel для установки OpenVPN.
Ставим openvpn:

переходим в рабочий каталог

Настраиваем параметры сервера (необязательно):

Инициализируем переменные окружения, для последующего запуска скриптов:

Очищаем все на всякий случай:

Создаем сертификат CA

Создаем сертификат X.509

Создаем ключ Диффи-Хеллмана

Создаем ta.key (TLS сертификат)

Настраиваем конфигурацию сервера:

Вот такой конфиг файл я использую:

В этом варианте я использую файлы ключей и сертификатов по тем путям, где они реально находятся.
На время отладки оставляем уровень детализации журналов verb 5, затем его можно переключить на verb 1. Это надо сделать обязательно. Максимальный размер журнала — 2 Гб. При достижении этого лимита OpenVPN прекратит работу. Поэтому нужно уменьшить детализацию журналирования и настроить ротацию журнала средствами ОС — logrotate.
log-append перенастроен на нормальное место для записи логов сервера.
client-to-client разрешает трафик между клиентами.
Параметр client-config-dir указывает, где хранятся настройки подключения для каждого клиента. Создаем каталог /etc/openvpn/ccd

В принципе сервер настроен, можно его перезапустить:

Не забудьте прописать автоматический запуск сервиса при перезагрузке системы.

А еще надо настроить firewall для разрешения трафика OpenVPN. Я использую исторически скрипт /etc/rc.d/rc.firewall, который настраивает все цепочки, так как мне надо. Поэтому команды мои выглядят примерно так:

для идеологически правильного /etc/sysconfig/iptables строчка будут выглядить примерно так:

Через интерфейс настройки firewall команды setup нужно добавить в список портов через пробел строчку:

Для разрешения трафика между клиентами я использую команду:

а для разрешения трафика между подсетями:

В общем, у нас сервер окончательно настроен. Проверяем.
Наличие процесса:

и обязательно должен присутствовать интерфейс tun0, если других VPN не запущено.

Настройка учетных записей клиентов

Для генерации и подписывания сертификатов используются два скрипта:

— для создания сертификата с паролем и

— для сертификата без пароля.
В первом случае для использования сертификата придется каждый раз вводить пароль, для пользователей, такой способ обеспечивает снижение рисков в случае попадания ноутбука в чужие руки. Для автоматического входа в сеть, сертификат нужно создавать без пароля.
Создаем аккаунт для ноутбука:
заходим в каталог

инициализируем окружение командой:

генерируем ключ для пользователя notebook с паролем:

в подкаталоге ./keys появится комплект файлов для авторизации.
А еще для клиента нужно настроить параметры сети, которые находятся в файлах с именем клиента /etc/openvpn/ccd/, в данном случае нужно редактировать файл notebook:

В этом файле мы указываем адрес и другие сетевые параметры.
Самое главное — назначим адрес для клиента в нашей VPN подсети.
Дла совместимости со стеком TCP/IP Windows адреса клиентам назначаются с интервалом 4, фактически на каждого клиента выделяется подсеть с маской /30: адрес сети, адрес клиента, адрес шлюза, широковещательный адрес.
Вот здесь указан список возможных адресов
http://openvpn.net/index.php/open-source/documentation/howto.html#policy
Первая пара у нас занята адресом самого сервера. Выделяем адреса .5 и .6:

В моем случае, у меня есть свой DNS сервер по адресу 192.168.22.1, он обслуживает локальную DNS зону mynetwork, для настройки я добавлю в файл две строки:

— укажем клиенту какой использовать DNS сервер

— укажем зону по умолчанию для поиска имен DNS.
Поскольку мой сервер CITY имеет две подсети 192.168.22.0/24 и 192.168.21.0/24 и я хочу чтобы клиент мог их видеть, то нужно настроить маршруты, добавляем две строчки:

Теперь тоже самое делаю для клиента CAMP:
заходим в каталог

инициализируем окружение командой:

генерируем ключ для пользователя camp с паролем:

Настраиваем параметры сетевого доступа:

Итак, настроен сервер, созданы две учетные записи для клиентов camp и notebook.
При подключении camp получит адрес 192.168.25.9, а notebook 192.168.25.5
Теперь дело за настройкой клиентов.

Настройка клиентов

Для работы клиентов из каталога
/usr/share/openvpn/easy-rsa/2.0/keys/
забираем следующие файлы:
ca.crt — сертификат сервера
ta.key — tls сертификат
%username%.crt — персональный сертификат
%username%.key — персональный ключ

Настройка клиента под Windows XP на NOTEBOOK

Ставим openvpn вместе с GUI:
http://www.openvpn.net/index.php/open-source/downloads.html
например:
http://swupdate.openvpn.net/community/releases/openvpn-2.2-beta5-install.exe
Надо перегрузить систему, чтобы завершить установку VPN интерфейса.
Копируем клиентские файлы в каталог «C:\Program Files\OpenVPN\config\»
В данном случае, это:
ca.crt
ta.key
notebook.crt
notebook.key

Создаем файл конфигурации клиента notebook.ovpn:

В этом файл выключена запись в файл журнала, в противном случае OpenVPN-GUI не сможет контролировать работу клиента.
Если мы создали сертификат с паролем — нам придется устанавливать соединение всегда руками, т.к. потребуется ввод пароля:
1. Запускаем GUI.
2. В контекстном меню увидим пункт notebook, выбираем connect. Появляется окно журнал работы и запрос пароля на сертификат.
Если используем сертификат без пароля, можно использовать службу OpenVPN:
1. Запускаем services.msc
2. Находим OpenVPN service и ставим автоматический запуск и запускаем службу.
В обоих случаях при успехе — соединение установится, красные цвета иконки OpenVPN-GUI поменяют на зеленые. Будет присвоен адрес 192.168.25.5

Настройка клиента под CentOS на сервере CAMP

забираем клиентские файлы в каталог /etc/openvpn/:

Разрешаем соединение в firewall. Само главное — обратные пакеты UDP пустить:
Я делаю так в своем любимом /etc/rc.d/rc.firewall:

В принципе, клиент настроен, можно его перезапустить:

Не забываем обеспечить автостарт сервиса при перезагрузке.
Если все в порядке — появится интерфейс tun0, ему будет присвоен адрес 192.168.25.9

Наша VPN сеть запущена. Командой ping и доступом к известным сервисам проверяем работоспособность сети.

Диагностика и устранение неполадок

Основные средства проверки работы — это ping и tcpdump. Большинство ошибок выявляются этими командами.
Например, командой

я могу прослушать трафик сервера и убедиться, что сервер видит пакеты и отвечает на них.

Судя по ошибкам — Адаптер VPN не работает под Windows.

Если установлен OpenVPN для Windows, но систему еще не перегружали — Перегрузите систему после установки OpenVPN.

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

Если включено ведение журнала в файл, то OpenVPN-GUI может иметь проблемы при поднятии соединения, особенно на этапе запроса пароля. Помогает выключение ведения журнала и высокой детализации, нужно открыть *.ovpn файл и закомментировать две строчки (они в конце) вот так:

Нет соединения.

Со стороны клиента нужно сделать пинг на адрес сервера — ping 22.33.44.55. Если не отвечает — устранить причину.
Под Windows убедиться, что openvpn.exe, openvpn-gui.exe и openvpnserv.exe не заблокирован персональным фаерволом или антивирусом.
Просмотреть ошибки в консоли и логе openvpn.log и погуглить их

Соединение не устанавливается — пакет пришел не «с того адреса».

Сопровождается ошибками:
Incoming packet rejected from . expected peer address…
Такое возможно если клиент находится «рядом» с сервером — пакеты посылаются на один адрес (внешний), а ответы приходят со внутреннего адреса. По умолчанию OpenVPN считает такую конфигурацию небезопасной и блокирует работу. Опция float устраняет проблему.

Соединение есть, но туннель не работает.

1. Убедиться, что персональный firewall не блокирует трафик для подсети 192.168.25.*
2. Что присутствуют маршруты во внутренние подсети — команда в Windows: route print.
3. В случае Vista/W7 не забыть запускать клиента с правами Администратора, иначе не поднимаются маршруты!
В остальных случаях помогает увеличение детализации вывода опцией verb и внимательное штудирование openvpn.log

Послесловие

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Настройка маршрутизации openvpn сервер и клиент на Windows

Все новые темы

Список форумов SYSAdmins.RU -> SOFTWARE На страницу 1, 2, 3, 4, 5 След.
Автор
Smnwm
Участник форума

Зарегистрирован: 21.11.2006
Пользователь #: 46,548
Сообщения: 369

Добавлено: Чт 07 Ноя, 2013 22:26 Заголовок сообщения: Настройка маршрутизации openvpn сервер и клиент на Windows
_________________
CJIABHO
Вернуться к началу
Зарегистрируйтесь и реклама исчезнет!

mallexx
Участник форума

Зарегистрирован: 22.07.2003
Пользователь #: 8,017
Сообщения: 100


Голоса: 3

Добавлено: Пт 08 Ноя, 2013 10:16 Заголовок сообщения:
Вернуться к началу
Smnwm
Участник форума

Зарегистрирован: 21.11.2006
Пользователь #: 46,548
Сообщения: 369

Добавлено: Пт 08 Ноя, 2013 16:46 Заголовок сообщения:
_________________
CJIABHO
Вернуться к началу
vlaryk
Networks guru
Networks guru » title=» Networks guru » border=»0″/>

Зарегистрирован: 28.01.2009
Пользователь #: 75,624
Сообщения: 8484
Откуда: Москва

Голоса: 157

Добавлено: Пт 08 Ноя, 2013 18:53 Заголовок сообщения:
_________________
Если мой совет помог, не трать слов на «спасибо», просто жми на «плюс»
В разделы Windows больше ни ногой!
Вернуться к началу
Smnwm
Участник форума

Зарегистрирован: 21.11.2006
Пользователь #: 46,548
Сообщения: 369

Добавлено: Пт 08 Ноя, 2013 23:49 Заголовок сообщения:
_________________
CJIABHO
Вернуться к началу
vlaryk
Networks guru
Networks guru » title=» Networks guru » border=»0″/>

Зарегистрирован: 28.01.2009
Пользователь #: 75,624
Сообщения: 8484
Откуда: Москва

Голоса: 157

Добавлено: Сб 09 Ноя, 2013 0:47 Заголовок сообщения:
_________________
Если мой совет помог, не трать слов на «спасибо», просто жми на «плюс»
В разделы Windows больше ни ногой!
Вернуться к началу
mallexx
Участник форума

Зарегистрирован: 22.07.2003
Пользователь #: 8,017
Сообщения: 100


Голоса: 3

Добавлено: Пн 11 Ноя, 2013 11:17 Заголовок сообщения:
Вернуться к началу
Smnwm
Участник форума

Зарегистрирован: 21.11.2006
Пользователь #: 46,548
Сообщения: 369

Добавлено: Пн 18 Ноя, 2013 22:31 Заголовок сообщения:
_________________
CJIABHO
Вернуться к началу
mallexx
Участник форума

Зарегистрирован: 22.07.2003
Пользователь #: 8,017
Сообщения: 100


Голоса: 3

Добавлено: Вт 19 Ноя, 2013 15:00 Заголовок сообщения:
Вернуться к началу
Smnwm
Участник форума

Зарегистрирован: 21.11.2006
Пользователь #: 46,548
Сообщения: 369

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Openvpn bridge server windows
  • Openvpn access server windows
  • Openvox a1610e драйвер для windows 7
  • Opensuse установка рядом с windows
  • Opensuse ввод в домен windows