Как настроить IPSec между маршрутизаторами iRZ, организованными по топологии "звезда"
IPSec туннелирование позволяет обеспечить безопасную связь и шифрование трафика между узлами сети.
В статье рассмотрен пример настройки IPSec для сетевой топологии "звезда" на базе роутеров iRZ с центральным устройством-сервером и периферийными устройствами-клиентами.
Внимание! Данный сценарий протестирован для ограниченного количества устройств-клиентов: для роутеров серии R2 - до 15, для роутеров серии R50 - до 45.
СЕРВЕР
Настройка 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(клиенты) |
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-туннеля. Клиент 1Table 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, организованными по топологии "звезда", настроен.
Сервис поддержки клиентов работает на платформе UserEcho