Настройка IPSec на роутере на базе irzOS

#irzOS #роутеры #IPSec #tunnel

IPSec (Internet Protocol Security) – это набор протоколов для обеспечения безопасной передачи данных в IP-сетях, работающий на сетевом уровне модели OSI.

Данный протокол поддерживает шифрование трафика, аутентификацию участников и имеет несколько режимов работы – транспортный и туннельный.

Настройка irzOS может производиться как через Web интерфейс, так и через интерфейс CLI с помощью протокола SSH и терминального клиента. Несмотря на разные способы подключения логика настройки идентична в обоих случаях.

Задача:

В примере роутер R1 имеет внешний IP адрес 200.1.1.1 и локальную сеть с адресами в подсети 192.168.2.0/24, а роутер R2 – внешний IP адрес 200.1.1.2 и локальную сеть с адресами в подсети 192.168.3.0/24.

Wan интерфейсы на обоих роутера названы WAN.

Необходимо обеспечить связность между локальными сетями роутеров посредством IPSec.

ipsec 1
Схема 1. Схема сети

Настройка туннеля IPSec

  1. Перейти в в раздел /tunnel → ipsec → connection.

  2. Нажать Add и задать название соединения.

  3. В открывшейся форме задать настройки соединения.

ipsec 2
  • Local IP – интерфейс с которого будет построен туннель

  • Remote IP – внешний IP адрес противоположной стороны туннеля

  • IKE Version – версия протокола обмена ключами, по умолчанию ikev2

  • IKE Profile – профиль настроек шифрования для данного соединения, по умолчанию используется предустановленный default_profile

  • Local ID – локальный идентификатор участника, необязательный параметр для соединения точка-точка

  • Remote ID – удаленный идентификатор участника, необязательный параметр для соединения точка-точка

  • Auth Method – psk (Pre-Shared Key, «пароль» известный обоим сторонам) либо Pubkey

  • Pre-Shared Key – Ключ для выбранного метода

  • Virtual IP – Виртуальный IP локального туннельного интерфейса

  • Remote Virtual IP – Виртуальный IP удаленного туннельного интерфейса

Пример настройки роутера R1

ipsec 3

Поле

Значение

Local IP

WAN

Remote IP

200.1.1.2 (заполняется пользователем)

IKE Version

Ikev2 (по умолчанию)

IKE Profile

default_profile

Local ID

R1

Remote ID

R2

Auth Method

psk

Pre-Shared Key

пароль

Virtual IP

-

Remote Virtual IP

-

Настройка роутера R1 через CLI:

/tunnel ipsec connection add name=R2
    auth          psk
    keyexchange   ikev2
    left          WAN
    leftid        R1
    leftsourceip  -
    profile       default_profile
    psk           ipsecpassword
    right         200.1.1.2
    rightid       R2
    rightsourceip -

/tunnel ipsec connection apply

Пример настройки роутера R2

ipsec 4

Поле

Значение

Local IP

WAN

Remote IP

200.1.1.1 (заполняется пользователем)

IKE Version

Ikev2 (по умолчанию)

IKE Profile

default_profile

Local ID

R2

Remote ID

R1

Auth Method

psk

Pre-Shared Key

пароль

Virtual IP

-

Remote Virtual IP

-

Настройка роутера R2 через CLI:

/tunnel ipsec connection add name=R1
    auth          psk
    keyexchange   ikev2
    left          WAN
    leftid        R2
    leftsourceip  -
    profile       default_profile
    psk           ipsecpassword
    right         200.1.1.1
    rightid       R1
    rightsourceip -

/tunnel ipsec connection apply

Настройка IPSec Association

Настройка IPSec Association необходима, чтобы связать разные сети.

  1. Перейти в раздел /ipsec → association, нажать на кнопку Add.

  2. Задать название и выбрать connection, для которого создается association.

  3. В открывшейся форме задать настройки.

ipsec 5
  • Connection – соединение, для которого задается association

  • Proposal – набор шифров, по умолчанию используется встроенный default_proposal

  • Startup Action – по умолчанию route

  • SA Type – режим работы IPSec: tunnel (туннельный, по умолчанию) или transport (транспортный)

  • Local TS – локальный набор подсетей для маршрутизации трафика

  • Remote TS – набор удаленных подсетей для маршрутизации трафика

Пример настройки роутера R1

ipsec 6

Поле

Значение

Connection

имя созданного соединеня

Proposal

default_proposal

Startup Action

route

SA Type

tunnel

Local TS

192.168.2.0/24

Remote TS

192.168.3.0/24

Настройка роутера R1 через CLI:

/tunnel ipsec association add name=toR2 connection=R2
    auto        route
    disabled    -
    leftsubnet  -
    leftsubnet  192.168.2.0/24
    proposal    default_proposal
    rightsubnet -
    rightsubnet 192.168.3.0/24
    type        tunnel

/tunnel ipsec association apply

Пример настройки роутера R2

ipsec 7

Поле

Значение

Connection

имя созданного соединеня

Proposal

default_proposal

Startup Action

route

SA Type

tunnel

Local TS

192.168.3.0/24

Remote TS

192.168.2.0/24

Настройка роутера R1 через CLI:

/tunnel ipsec association add name=toR1 connection=R1
    auto        route
    disabled    -
    leftsubnet  -
    leftsubnet  192.168.3.0/24
    proposal    default_proposal
    rightsubnet -
    rightsubnet 192.168.2.0/24
    type        tunnel

/tunnel ipsec association apply

Настройка Firewall

Настройка Firewall необходима для пропуска трафика IPSec.

  1. Перейти в раздел /firewall → nat и нажать на кнопку Add. В качестве Chain выбрать вариант postrouting.

  2. В открывшейся форме задать настройки.

Пример настройки роутера R1

ipsec 8

Поле

Значение

Source Address

192.168.3.0/24 – сеть, из которой строится туннель (в данном случае это локальная сеть роутера R1)

Destination Address

192.168.2.0/24 – сеть, до которой строится туннель (в данном случае это локальная сеть роутера R2)

Action

Accept

IPSec Policy

dir=out, pol=ipsec, proto=esp (выбрать поочередно)

Вновь созданное правило в /firewall → nat в списке должно располагаться выше, чем правило masquerade. В веб-интерфейсе можно менять позиции правил мышкой, перетащите его наверх, как на изображении.
ipsec 9

Настройка роутера R1 через CLI:

/firewall nat add chain=postrouting
   action       accept
   dst-addr     192.168.2.0/24
   policy       dir=out,pol=ipsec,proto=esp
   protocol     all
   src-addr     192.168.3.0/24
   apply
   reorder      position=-1

/firewall nat apply

Пример настройки роутера R2

ipsec 10

Поле

Значение

Source Address

192.168.2.0/24 – сеть, из которой строится туннель (в данном случае это локальная сеть роутера R2)

Destination Address

192.168.3.0/24 – сеть, до которой строится туннель (в данном случае это локальная сеть роутера R1)

Action

Accept

IPSec Policy

dir=out, pol=ipsec, proto=esp (выбрать поочередно)

Настройка роутера R2 через CLI:

/firewall nat add chain=postrouting
   action       accept
   dst-addr     192.168.3.0/24
   policy       dir=out,pol=ipsec,proto=esp
   protocol     all
   src-addr     192.168.2.0/24
   apply
   reorder      position=-1

/firewall nat apply

Настройка маршрутизации

Реализация IPSec в Linux не требует специальной настройки маршрутизации, трафик будет помещен в туннель автоматически при совпадении характеристик трафика заданным условиям (сеть источника и сеть получатель).

Однако требует, чтобы на роутере был хотя бы какой-то маршрут для трафика от роутера источника до получателя. Например, маршрут по умолчанию. В противном случае туннель не заработает.

Проверка

Для проверки связи перейти в раздел /tools → ping.

ipsec 11

Ping выполняется успешно.

Завершить настройку командой /system → config → commit.