В инструкции описан процесс настройки Site-to-Site VPN на основе программного маршрутизатора vyos. Будет продемонстрировано объединение частной и внешней сетей серверов.
Что это такое?
Site-to-site VPN (Virtual Private Network) - способ реализации технологии OpenVPN. VPN-соединение между сетями позволяет офисам в нескольких фиксированных местах устанавливать безопасные соединения друг с другом через общедоступную сеть, такую как Интернет. VPN-соединение между сторонами расширяет сеть компании, делая компьютерные ресурсы из одного места доступными для сотрудников в других местах. Примером компании, которая нуждается в VPN-связи между сайтами, является растущая корпорация с десятками филиалов по всему миру.
Генерация ключей
Сгенерируйте ключ для vpn на vyos, который появится в директории /config/auth:
generate openvpn key <filename>
Копию сгенерированного файла необходимо также поместить на удаленный маршрутизатор, это можно выполнить с помощью утилиты scp.
Например:
generate openvpn key my-key.key
Настройка маршрутизаторов
Подключите сервер vyos к частной сети.
Перейдите в режим конфигурации vyos:
config
Примечание: в обычном режиме приглашение командной строки заканчивается символом $ (доллар), а в режиме конфигурации символом # (решетка).
Далее используются следующие обозначения и значения:
- xxx.xxx.xxx.xxx - внешний ip-адрес сервера-маршрутизатора локальной инфраструктуры, например 185.158.152.144
- yyy.yyy.yyy.yyy - внешний ip-адрес сервера-маршрутизатора удаленной инфраструктуры, например 188.227.75.105
- 172.16.4.1 - oppenvpn ip-адрес сервера-маршрутизатора локальной инфраструктуры, должен быть выбран из диапазона 172.16.0.0 — 172.31.255.255
- 172.16.4.2 - oppenvpn ip-адрес сервера-маршрутизатора удаленной инфраструктуры, должен быть выбран из диапазона 172.16.0.0 — 172.31.255.255
- 10001 - номер порта, может быть произвольным
Выполните следующие команды на сервере локальной инфраструктуры:
set interfaces openvpn vtun1 local-address 172.16.4.1
set interfaces openvpn vtun1 local-host xxx.xxx.xxx.xxx
set interfaces openvpn vtun1 local-port 10001
set interfaces openvpn vtun1 mode site-to-site
set interfaces openvpn vtun1 protocol udp
set interfaces openvpn vtun1 remote-address 172.16.4.2
set interfaces openvpn vtun1 remote-host yyy.yyy.yyy.yyy
set interfaces openvpn vtun1 remote-port 10001
set interfaces openvpn vtun1 shared-secret-key-file /config/auth/my-key.key
Выполните данные команды на удаленном сервере-маршрутизаторе:
set interfaces openvpn vtun1 local-address 172.16.4.2
set interfaces openvpn vtun1 local-host yyy.yyy.yyy.yyy
set interfaces openvpn vtun1 local-port 10001
set interfaces openvpn vtun1 mode site-to-site
set interfaces openvpn vtun1 protocol udp
set interfaces openvpn vtun1 remote-address 172.16.4.1
set interfaces openvpn vtun1 remote-host xxx.xxx.xxx.xxx
set interfaces openvpn vtun1 remote-port 10001
set interfaces openvpn vtun1 shared-secret-key-file /config/auth/my-key.key
Примечание: при необходимости поменяйте путь до файла с ключом, маску подсети, порты и ip-адреса для vpn.
Для проверки vpn сети выполните передачу пакетов с удаленного сервера на локальный:
ping 172.16.4.1
При правильной настройке вы увидите ICMP-ответы.
Настройка FireWall
Теперь, когда частные сети видят друг друга, необходимо настроить OSPF для распространения маршрутов с одного маршрутизатора vyos на другой. Для этого, сначала выполним настройку некоторых политик для доступа только определенных диапазов ip. Правила необходимо ввести на обоих маршрутизаторах:
set policy prefix-list RFC1918PREFIXES rule 1 action permit
set policy prefix-list RFC1918PREFIXES rule 1 le 32
set policy prefix-list RFC1918PREFIXES rule 1 prefix 10.0.0.0/8
set policy prefix-list RFC1918PREFIXES rule 2 action permit
set policy prefix-list RFC1918PREFIXES rule 2 le 32
set policy prefix-list RFC1918PREFIXES rule 2 prefix 172.16.0.0/12
set policy prefix-list RFC1918PREFIXES rule 3 action permit
set policy prefix-list RFC1918PREFIXES rule 3 le 32
set policy prefix-list RFC1918PREFIXES rule 3 prefix 192.168.0.0/16
Примечание: OSPF (Open Shortest Path First) - протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала и использующий для нахождения кратчайшего пути алгоритм Дейкстры.
Включим карту маршрутов для созданных правил и удалим остальные:
set policy route-map ONLYRFC1918PREFIXES rule 10 action permit
set policy route-map ONLYRFC1918PREFIXES rule 10 match ip address prefix-list RFC1918PREFIXES
set policy route-map ONLYRFC1918PREFIXES rule 90 action deny
Настраиваем OSPF:
set firewall all-ping '1enable'
set protocols ospf area 172.16.0.0 authentication md5
set protocols ospf area 172.16.0.0 network 172.16.4.0/30
set protocols ospf redistribute connected metric-type 2
set protocols ospf redistribute connected route-map ONLYRFC1918PREFIXES
Проверка
Для проверки настройки Site-to-site vpn выполните передачу пакетов с удаленного сервера одной сети на локальный сервер другой сети: