logo

Как настроить IPSec между маршрутизаторами iRZ, организованными по топологии "звезда"

IPSec туннелирование позволяет обеспечить безопасную связь и шифрование трафика между узлами сети.

В статье рассмотрен пример настройки IPSec для сетевой топологии "звезда" на базе роутеров iRZ с центральным устройством-сервером и периферийными устройствами-клиентами.

Данный сценарий протестирован для ограниченного количества устройств-клиентов:
для роутеров серии R2 - до 15,
для роутеров серии R50 - до 45.
star65

СЕРВЕР

ipsec zvezda server
Figure 1. Настройка IPsec-туннеля. Сервер.
Table 1. Параметры туннеля

Поля

Описание

Description

center (на выбор пользователя)

Source Address

<default route> (выбирается из перечня интерфейсов)

Remote Address

0.0.0.0

Local Identifer

SERVER (наименование, указывается пользователем)

Remote Identifer

%any (наименование, указывается пользователем)

Key Exchange Mode

IKEv2

DPD

30

Local Subnets

192.168.1.0/24 (локальная сеть сервера)

Remote Subnets

192.168.2.0/24(клиенты)
192.168.3.0/24
192.168.4.0/24
192.168.13.0/24

Local Source Address Type

None

Remote Source Address Type

None

Параметры Phase #1

Lifetime

28800

IKE Encryption

AES 256

IKE Hash

SHA-256

DH Group

14

Параметры Phase #2

Lifetime

3600 секунд

ESP Encryption

AES 256

ESP Hash

SHA-1

PFS Group

none

Authentication Method

psk (для простоты настройки)

Pre-Shared Key

qwerty (пример пароля)

Статус туннеля

Со стороны сервера можно узнать статус туннеля при помощи команды в консоли роутера:

root@iRZ-Router:~# ipsec statusall

Пример ответа

Status of IKE charon daemon (strongSwan 5.8.0, Linux 4.14.162, mips):
 uptime: 3 minutes, since Feb 17 11:38:18 2023
 worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 3
 loaded plugins: charon pkcs11 aes des rc2 sha2 sha1 md4 md5 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown eap-identity eap-md5 eap-mschapv2 xauth-generic xauth-eap
Listening IP addresses:
 192.168.1.1
 192.168.245.159
Connections:
      ipsec1:  %any…%any  IKEv2, dpddelay=30s
     ipsec1:   local:  [SERVER] uses pre-shared key authentication
     ipsec1:   remote: uses pre-shared key authentication
     ipsec1:   child:  192.168.1.0/24 === 192.168.2.0/24 192.168.3.0/24 192.168.4.0/24 192.168.13.0/24 TUNNEL, dpdaction=hold
Security Associations (1 up, 0 connecting):
     ipsec1[1]: ESTABLISHED 62 seconds ago, 192.168.245.159[SERVER]…192.168.245.155[CLIENT1]
     ipsec1[1]: IKEv2 SPIs: ec447180dd4dbe45_i 92c7cc42c4a709c5_r*, pre-shared key reauthentication in 7 hours
     ipsec1[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
     ipsec1{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c93d3018_i c295e907_o
     ipsec1{1}:  AES_CBC_256/HMAC_SHA1_96, 672 bytes_i (8 pkts, 53s ago), 672 bytes_o (8 pkts, 53s ago), rekeying in 41 minutes
     ipsec1{1}:   192.168.1.0/24 === 192.168.13.0/24

КЛИЕНТ

ipsec zvezda client
Figure 2. Настройка IPsec-туннеля. Клиент 1
Table 2. Параметры туннеля

Поля

Описание

Description

client (на выбор пользователя)

Source Address

wan13 (выбирается из перечня интерфейсов)

Remote Address

192.168.245.159

Local Identifer

CLIENT1 (наименование, указывается пользователем)

Remote Identifer

SERVER (наименование, указывается пользователем)

Key Exchange Mode

IKEv2

DPD

30

Local Subnets

192.168.13.0/24 (то, что было указано в списке Remote Subnets в настройках сервера)

Remote Subnets

192.168.1.0/24 (то, что было указано в поле Local Subnets в настройках сервера)

Local Source Address Type

None

Remote Source Address Type

None

Параметры Phase #1

Lifetime

28800

IKE Encryption

AES 256

IKE Hash

SHA-256

DH Group

14

Параметры Phase #2

Lifetime

3600 секунд

ESP Encryption

AES 256

ESP Hash

SHA-1

PFS Group

none

Authentication Method

psk (для простоты настройки)

Pre-Shared Key

qwerty (пример пароля)

Для того чтобы можно было получить удаленный доступ к роутеру-клиенту после настройки IPSec в Firewall нужно добавить правило: Source Zone - wan, Destination Protocol - tcp, Target - ACCEPT, Port - 80 (для доступа через веб-интерфейс), 23 (для telnet), 22 - (для SSH). Подробнее об этом написано в статье Как через IPSec получить доступ к интерфейсу удалённого роутера (для серии R0, R2, R4, R50).

После сохранения настроек IPSec на каждом из клиентов в консоли нужно выполнить следующую команду:

uci set ipsec.ipsec1.auto='route' && uci set ipsec.ipsec1.closeaction='restart' && uci set ipsec.ipsec1.dpdaction='restart' && uci commit && reboot

Значения команд описаны ниже:

ipsec.ipsec1.auto='route' - при запуске или перезапуске IPSec - запустить

ipsec.ipsec1.closeaction='restart' - если удаленная сторона неожиданно закроет туннель - перезапустить

ipsec.ipsec1.dpdaction='restart' - как использовать протокол Dead Peer Detection (DPD) для управления соединением - перезапустить

На всех клиентах надо настроить планировщик задач - Services - Crontabs.

В полях Minute-Hour-Day-Month-Weekday пишем символ * (зведочка), в поле Command пишем команду: ping <локальный IP-адрес роутера-сервера> -I <локальный IP-адрес роутера-клиента>

в нашем примере:

ping 192.168.1.1 -I 192.168.13.1

Согласно заданному расписанию роутер-клиент начнет пинговать сервер каждую минуту для поддержания туннеля в рабочем состоянии.

В процессе генерируется дополнительный трафик. В зависимости от тарифа SIM-карты это может вести к дополнительным расходам на связь.

Со стороны клиента можно узнать статус туннеля при помощи команды в консоли роутера:

root@iRZ-Router:~# ipsec statusall

Пример ответа:

Status of IKE charon daemon (strongSwan 5.8.0, Linux 4.14.162, mips):
 uptime: 3 minutes, since Nov 02 15:37:06 2022
 worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
 loaded plugins: charon pkcs11 aes des rc2 sha2 sha1 md4 md5 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem fips-prf gmp xcbc hmac attr kernel-netlink resolve socket-default connmark stroke updown eap-identity eap-md5 eap-mschapv2 xauth-generic xauth-eap
Listening IP addresses:
 192.168.13.1
 10.251.252.40
 192.168.245.155
Connections:
      ipsec1:  192.168.245.155…192.168.245.159  IKEv2, dpddelay=30s
     ipsec1:   local:  [CLIENT1] uses pre-shared key authentication
     ipsec1:   remote: [SERVER] uses pre-shared key authentication
     ipsec1:   child:  192.168.13.0/24 === 192.168.1.0/24 TUNNEL, dpdaction=hold
Routed Connections:
     ipsec1{1}:  ROUTED, TUNNEL, reqid 1
     ipsec1{1}:   192.168.13.0/24 === 192.168.1.0/24
Security Associations (1 up, 0 connecting):
     ipsec1[1]: ESTABLISHED 2 minutes ago, 192.168.245.155[CLIENT1]…192.168.245.159[SERVER]
     ipsec1[1]: IKEv2 SPIs: ec447180dd4dbe45_i* 92c7cc42c4a709c5_r, pre-shared key reauthentication in 7 hours
     ipsec1[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
     ipsec1{2}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c295e907_i c93d3018_o
     ipsec1{2}:  AES_CBC_256/HMAC_SHA1_96, 672 bytes_i (8 pkts, 127s ago), 672 bytes_o (8 pkts, 126s ago), rekeying in 44 minutes
     ipsec1{2}:   192.168.13.0/24 === 192.168.1.0/24

Готово! IPSec для сетевой топологии "звезда" на базе роутеров iRZ настроен.