Всем привет!
Знаю, что тем с настройками OpenVPN сделано множество. Однако, сам
столкнулся с тем, что систематизированной информации по теме
заголовка в принципе нет и решил поделиться опытом в первую очередь
с теми, кто не является гуру в администрировании OpenVPN, но хотел
бы добиться подключения удаленных подсетей по типу site-to-site на
NAS Synology. Заодно и для себя заметку оставить на память.
Итак. Есть NAS Synology DS918+ с установленным пакетом VPN Server,
настроенным OpenVPN и пользователями, которые могут коннектиться к
VPN серверу. Не буду вдаваться в подробности настройки сервера в
интерфейсе DSM (веб портал NAS сервера). Эта информация есть на
сайте производителя.
Проблема в том, что интерфейс DSM (на дату публикации версия 6.2.3)
имеет ограниченное количество настроек для управления OpenVPN
сервером. В нашем случае требуется схема соединения по типу
site-to-site, т.е. хосты подсети клиента VPN должны видеть хосты
подсети VPN сервера и наоборот. Типовые настройки, доступные на
NAS, позволяют настроить доступ только от хостов подсети клиента
VPN до хостов подсети сервера VPN.
Для настройки доступа к подсетям клиентов VPN из подсети VPN
сервера нам понадобится зайти на NAS через SSH и настроить файл
конфигурации OpenVPN сервера вручную.
Для редактирования файлов на NAS по SSH мне удобнее пользоваться
Midnight Commander. Для этого я в Центре пакетов подключил источник
packages.synocommunity.com
и установил пакет Midnight Commander.
Заходим по SSH на NAS под учетной записью с правами
администратора.
Набираем sudo su и ещё раз указываем пароль администратора:
Набираем команду mc и запускаем Midnight Commander:
Далее переходим в каталог /var/packages/VPNCenter/etc/openvpn/ и
находим файл openvpn.conf:
По задаче нам необходимо подключить 2 удаленные подсети. Для этого
заводим через DSM 2 учетные записи на NAS с ограниченными правами
на все службы NAS и выдаём доступ только на VPN подключение в
настройках VPN Server. Для каждого клиента нам нужно настроить
статичный IP выделяемый VPN сервером и роутинг через этот IP
трафика с подсети VPN сервера на подсеть VPN клиента.
Исходные данные:
Подсеть VPN сервера: 192.168.1.0/24.
Пул адресов OpenVPN сервера 10.8.0.0/24. Сам OpenVPN сервер
получает адрес 10.8.0.1.
Подсеть VPN клиента 1 (пользователь VPN): 192.168.10.0/24, должен
получать на OpenVPN сервере статичный адрес 10.8.0.5
Подсеть VPN клиента 2 (пользователь VPN-GUST): 192.168.5.0/24,
должен получать на OpenVPN сервере статичный адрес 10.8.0.4
В каталоге настроек создаем папку ccd и неё создаём файлы настроек
с названиями, соответствующими логинам пользователей.
Для пользователя VPN в файле прописываем следующие настройки:
Для пользователя VPN-GUST в файле прописываем следующие:
Остаётся только поднастроить конфигурацию OpenVPN сервера добавить
параметр для чтения настроек клиентов и добавить роутинги на
подсети клиентов:
В приведенном скриншоте первые 2 строчки конфига настраиваются с
помощью интерфейса DSM (простановка галки на параметре Разрешить
клиентам осуществлять доступ к локальной сети сервера в настройках
OpenVPN сервера).
Строка client-config-dir ccd указывает, что настройки клиентов
находятся в папке ccd.
Далее 2 строки настройки добавляют роуты на подсети клиентов через
соответствующие шлюзы OpenVPN.
И наконец для правильной работы необходимо применить топологию
subnet.
Все остальные настройки в файле не трогаем.
После прописывания настроек не забываем перезагрузить сервис VPN
Server в менеджере пакетов. На хостах или шлюзе для хостов подсети
сервера прописать роуты на подсети клиентов через NAS.
В моём случае шлюзом для всех хостов подсети, в которой находится
NAS (его IP 192.168.1.3), выступал роутер (192.168.1.1). На этом
роутере я добавил в статическую таблицу маршрутов записи
маршрутизации для сетей 192.168.5.0/24 и 192.168.10.0/24 на шлюз
192.168.1.3 (NAS).
Не забываем, что при включенном брандмауэре на NAS необходимо будет
настроить и его. Плюс на клиентской стороне может быть включен
брандмауэр, который так же нужно будет настроить.
ПС. Я не являюсь профессионалом в сетевых технологиях и в частности
в работе с OpenVPN, просто делюсь своим опытом и публикую
настройки, которые я сделал, позволившие настроить связь между
подсетями по типу site-to-site. Возможно есть и более простая и/или
правильная настройка, буду только рад, если поделитесь опытом в
комментариях.