14 KiB
Настройка site-to-site VPN с помощью VyOS
В этом руководстве рассмотрено создание VPN-туннеля site-to-site между частной сетью и Beeline Cloud с использованием VyOS версии 1.4.0.
В процессе выполнения этого руководства вы:
- настроите VPN-сервер IKEv2 на виртуальной машине с VyOS, расположенной в Beeline Cloud;
- подключитесь к VPN-серверу из частной сети;
- настроите маршрутизацию для беспрепятсвенного хождения трафика между частной сетью и Beeline Cloud.
Виртуальная частная сеть (VPN) позволяет надежно шифровать трафик, проходящий через ненадежные сети, например в кафе, на конференции или в аэропорту.
Internet Key Exchange v2 (IKEv2) — это протокол, обеспечивающий прямое туннелирование IPSEC между сервером и клиентом. В реализациях VPN IKEv2 IPSEC обеспечивает шифрование сетевого трафика. IKEv2 изначально поддерживается на некоторых платформах (OS X 10.11+, iOS 9.1+ и Windows 10) без необходимости установки дополнительных приложений и довольно плавно справляется с перебоями в работе клиентов.
Перед началом работы
Условные обозначения:
- customer site: локальное защищенное пространство;
- beeline cloud: изолированное пространство в Beeline Cloud, в котором создаются ресурсы.
Для выполнения этого урока вам понадобится:
- одна виртуальная машина с ОС VyOS версии 1.4.0 в beeline cloud, созданная по инструкции для джамп-хоста;
- одна виртуальная машина с ОС VyOS версии 1.4.0, созданная в customer site с доступом в интернет с постоянным публичным IP-адресом
client real ip. - если в сети customer site используется ISO-образ VyOS, то установите OC VyOS на виртуальную машину согласно официальной документации.
1. Посмотреть IP-адреса
Для настройки VPN-туннеля необходимо узнать публичный и внутренний IP-адреса виртуальных машин, на которых конфигурируется маршрутизатор VyOS.
В руководстве используются следующие значения IP-адресов виртуальных машин с ОС VyOS:
| IP-адрес | beeline cloud | customer site |
|---|---|---|
| публичный IP | 77.41.188.88 | 77.41.188.163 |
| внутренний IP | 10.0.0.10 | 172.16.0.10 |
Как узнать публичный IP-адрес маршрутизатора
Для маршрутизатора на стороне customer site IP-адреса можно узнать c помощью команд:
-
для публичного IP-адреса:
curl ifconfig.me -
для внутреннего IP-адреса:
ip a
Для маршрутизатора на стороне beeline cloud публичный IP-адрес можно узнать на странице сервиса Виртуальные машины в разделе IP-адреса.
IP-адрес 10.0.0.10 является внутренним и сопоставляется с публичным IP-адресом (Floating IP или FIP). Значение публичного IP-адреса указано в поле Имя в разделе IP-адреса. По публичному IP-адресу можно подключиться к маршрутизатору VyOS по SSH.
2. Сгенерировать ключевые пары
-
Выполните команды для генерации ключевых пар на маршрутизаторах в сети beeline cloud и в сети customer site:
:::: tabs
= beeline cloud
- Откройте терминал и подключитесь к маршрутизатору VyOS сети beeline cloud по публичному IP-адресу:
ssh vyos@77.41.188.88 - Перейдите в режим конфигурирования:
configure - Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав
Enter:run generate pki key-pair install 'beeline-cloud' show pki key-pair 'beeline-cloud' public
Результатом команды будет публичный ключ.
= customer site
- Откройте еще один терминал и подключитесь к ВМ с VyOS customer site по внутреннему IP-адресу:
ssh vyos@172.16.0.10 - Перейдите в режим конфигурирования:
configure - Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав
Enter:run generate pki key-pair install 'customer-site' show pki key-pair 'customer-site' public
Результатом команды будет публичный ключ.
::::
- Откройте терминал и подключитесь к маршрутизатору VyOS сети beeline cloud по публичному IP-адресу:
-
Публичные ключи, полученные на шаге 1, необходимо перекрестно добавить на маршрутизаторах в сети beeline cloud и в сети customer site: :::: tabs
= beeline cloud
set pki key-pair 'customer-site' public key 'FAAOCAQ8AMII...' # - ключ из customer site= customer site
set pki key-pair 'beeline-cloud' public key 'MIIBIjANBgkqh...' # - ключ из beeline cloud::::
3. Настроить IPSEC
-
Выберите сетевой интерфейс, на котором будет настраиваться IPSEC-туннель, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
:::: tabs
= beeline cloud
set vpn ipsec interface eth1= customer site
-
Узнайте имя сетевого интерфейса на маршрутизаторе, на котором будет настраиваться IPSEC:
show interfaces -
Настройте интерфейс IPSEC:
set vpn ipsec interface <имя_сетевого_интерфейса>
::::
-
-
Для настройки IPSEC-туннеля используется протокол IKE набора протоколов IPSEC, который имеет две фазы.
- для настройки первой фазы выполните команду на маршрутизаторах в сети beeline cloud и в сети customer site:
set vpn ipsec ike-group aes256-sha256 dead-peer-detection action 'restart' set vpn ipsec ike-group aes256-sha256 dead-peer-detection interval '30' set vpn ipsec ike-group aes256-sha256 dead-peer-detection timeout '120' set vpn ipsec ike-group aes256-sha256 key-exchange 'ikev2' set vpn ipsec ike-group aes256-sha256 lifetime '3600' set vpn ipsec ike-group aes256-sha256 proposal 1 dh-group '19'- для настройки второй фазы выполните команду на маршрутизаторах в сети beeline cloud и в сети customer site:
set vpn ipsec esp-group aes256-sha256 proposal 1 encryption aes256 set vpn ipsec esp-group aes256-sha256 proposal 1 hash sha256 set vpn ipsec esp-group aes256-sha256 lifetime '28800' set vpn ipsec esp-group aes256-sha256 mode 'tunnel' set vpn ipsec esp-group aes256-sha256 pfs 'dh-group19' -
Настройте пиры и аутентификацию с использованием публичных ключевых пар, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
:::: tabs
= beeline cloud
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication mode 'rsa' set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa local-key 'beeline-cloud' set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa remote-key 'customer-site'= customer site
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication mode 'rsa' set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa local-key 'customer-site' set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa remote-key 'beeline-cloud'::::
-
Настройте для пиров адреса подключения, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
На этом шаге укажите ваши значения IP-адресов виртуальных машин с VyOS.
:::: tabs
= beeline cloud
set vpn ipsec site-to-site peer CUSTOMER-SITE ike-group 'aes256-sha256' set vpn ipsec site-to-site peer CUSTOMER-SITE local-address '10.0.0.10' set vpn ipsec site-to-site peer CUSTOMER-SITE remote-address '77.41.188.163' set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 esp-group 'aes256-sha256' set vpn ipsec site-to-site peer CUSTOMER-SITE default-esp-group 'aes256-sha256'= customer site
set vpn ipsec site-to-site peer BEELINE-CLOUD ike-group 'aes256-sha256' set vpn ipsec site-to-site peer BEELINE-CLOUD local-address '172.16.0.10' set vpn ipsec site-to-site peer BEELINE-CLOUD remote-address '77.41.188.88' set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 esp-group 'aes256-sha256' set vpn ipsec site-to-site peer BEELINE-CLOUD default-esp-group 'aes256-sha256'::::
-
Настройте статические маршруты, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
Для примера, в customer site используется сеть с адресом
172.16/16, в beeline cloud — две сети:10/8и192.168/16.:::: tabs
= beeline cloud
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '10.0.0.0/8' set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '192.168.0.0/16' set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 remote prefix '172.16.0.0/16'= customer site
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 local prefix '172.16.0.0/16' set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '10.0.0.0/8' set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '192.168.0.0/16'::::
-
Укажите инициатора и ответчика, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
:::: tabs
= beeline cloud
set vpn ipsec site-to-site peer CUSTOMER-SITE connection-type respond= customer site
set vpn ipsec site-to-site peer BEELINE-CLOUD connection-type initiate::::
-
Сохраните конфигурации, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
save -
Примените конфигурации, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:
commit
4. Проверить соединение
Выполните команду на любом из маршрутизаторов в сети beeline cloud или в сети customer site:
run show vpn ipsec status
ping -c 3 172.16.0.10
ping -c 3 10.0.0.10
Диагностика неисправностей
Если во время применения конфигурации команда commit завершится с ошибкой, то попробуйте выполнить команды для диагностики неисправностей.
Основные команды для диагностики проблем:
run show vpn ipsec statusrun show vpn ipsec staterun show vpn ipsec sarun show vpn ipsec policyrun show log vpn