Приветствую участников форума!
Столкнулся с проблемой настройки IPsec/IKEv2 сервера, где каждому сертификату необходимо назначить свои ограничения по доступу к определенным IP-адресам. Однако возникла сложность с работой подключений для iPhone и Linux-клиентов.
Описание проблемы:
У меня есть три типа подключений (netvision, tiv, zan), каждый из которых использует свой сертификат и имеет уникальные настройки доступа (leftsubnet).
В текущей конфигурации подключение netvision находится выше остальных в файле /etc/ipsec.d/ikev2.conf.
Для корректной работы подключений tiv и zan на iPhone и Linux-клиентах их нужно передвинуть выше netvision. Если этого не сделать, то клиенты всегда подключаются к первому совпадению (netvision), игнорируя остальные.
Конфигурация:
Основная конфигурация /etc/ipsec.conf
version 2.0
config setup
ikev1-policy=accept
virtual-private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.42.0/24,%v4:!192.168.43.0/24
uniqueids=no
conn shared
left=%defaultroute
leftid= адрес убрал
right=%any
encapsulation=yes
authby=secret
pfs=no
rekey=no
keyingtries=5
dpddelay=30
dpdtimeout=300
ikev2=never
ike=aes256-sha2;modp2048,aes128-sha2;modp2048,aes256-sha1;modp2048,aes128-sha1;modp2048
phase2alg=aes_gcm-null,aes128-sha1,aes256-sha1,aes256-sha2_512,aes128-sha2,aes256-sha2
ikelifetime=24h
salifetime=24h
sha2-truncbug=no
conn l2tp-psk
auto=add
leftprotoport=17/1701
rightprotoport=17/%any
type=transport
also=shared
conn xauth-psk
auto=add
leftsubnet=8.8.8.8/32
rightaddresspool=192.168.43.10-192.168.43.250
modecfgdns="8.8.8.8 8.8.4.4"
leftxauthserver=yes
rightxauthclient=yes
leftmodecfgserver=yes
rightmodecfgclient=yes
modecfgpull=yes
cisco-unity=yes
also=shared
include /etc/ipsec.d/*.confФайл /etc/ipsec.d/ikev2.conf:
conn ikev2-cp
left=%defaultroute
leftcert= убрал :)
leftsendcert=always
leftrsasigkey=%cert
right=%any
rightca=%same
rightrsasigkey=%cert
narrowing=yes
dpddelay=30
retransmit-timeout=300s
ikev2=insist
rekey=no
pfs=no
ike=aes_gcm_c_256-hmac_sha2_256-ecp_256,aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1
phase2alg=aes_gcm-null,aes128-sha1,aes256-sha1,aes128-sha2,aes256-sha2
ikelifetime=24h
salifetime=24h
encapsulation=yes
leftid=
modecfgdns="8.8.8.8 8.8.4.4"
mobike=no
# netvision
conn netvision
auto=add
leftsubnet=11.66.104.0/24
rightid="CN=netvision, O=GKU NSO CODD"
rightaddresspool=192.168.43.10-192.168.43.250
also=ikev2-cp
priority=1
# tiv
conn tiv
auto=add
leftsubnet=11.66.104.0/24,11.68.104.0/24
rightid="CN=tiv, O=GKU NSO CODD"
rightaddresspool=192.168.43.10-192.168.43.250
also=ikev2-cp
priority=2
# zan
conn zan
auto=add
leftsubnet=11.66.104.0/24,11.68.104.0/24
rightid="CN=zan, O=GKU NSO CODD"
rightaddresspool=192.168.43.10-192.168.43.250
also=ikev2-cp
priority=3Что я пробовал:
Изменение порядка подключений в файле /etc/ipsec.d/ikev2.conf:
Переместил tiv и zan выше netvision.
Это решило проблему для iPhone и Linux, но на android и windows работает в любом случае.
Попробовал задать приоритеты (priority=1, priority=2, priority=3), но это не повлияло на выбор подключения.
Добавил этот параметр в ikev2-cp, чтобы уменьшить количество ложных совпадений, но проблема осталась.
Вопрос:
Как можно организовать корректную работу всех подключений, чтобы:
Каждый сертификат (netvision, tiv, zan) имел свои ограничения по доступу к IP-адресам.
iPhone и Linux могли подключаться к нужному профилю (tiv или zan), не нарушая работу других клиентов?
Буду благодарен за любые идеи и предложения!
