Настройка IPSec на роутере на базе irzOS
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
-
Перейти в в раздел /tunnel → ipsec → connection.
-
Нажать Add и задать название соединения.
-
В открывшейся форме задать настройки соединения.
-
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
Поле |
Значение |
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
Поле |
Значение |
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 необходима, чтобы связать разные сети.
-
Перейти в раздел /ipsec → association, нажать на кнопку Add.
-
Задать название и выбрать connection, для которого создается association.
-
В открывшейся форме задать настройки.
-
Connection – соединение, для которого задается association
-
Proposal – набор шифров, по умолчанию используется встроенный default_proposal
-
Startup Action – по умолчанию route
-
SA Type – режим работы IPSec: tunnel (туннельный, по умолчанию) или transport (транспортный)
-
Local TS – локальный набор подсетей для маршрутизации трафика
-
Remote TS – набор удаленных подсетей для маршрутизации трафика
Пример настройки роутера R1
Поле |
Значение |
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
Поле |
Значение |
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.
-
Перейти в раздел /firewall → nat и нажать на кнопку Add. В качестве Chain выбрать вариант postrouting.
-
В открывшейся форме задать настройки.
Пример настройки роутера R1
Поле |
Значение |
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. В веб-интерфейсе можно менять позиции правил мышкой, перетащите его наверх, как на изображении. |
Настройка роутера 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
Поле |
Значение |
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 не требует специальной настройки маршрутизации, трафик будет помещен в туннель автоматически при совпадении характеристик трафика заданным условиям (сеть источника и сеть получатель).
Однако требует, чтобы на роутере был хотя бы какой-то маршрут для трафика от роутера источника до получателя. Например, маршрут по умолчанию. В противном случае туннель не заработает.