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