В Apple iOS есть функция «VPN по запросу». С помощью этой функции VPN-соединение устанавливается всякий раз, когда устройство пытается подключиться к определенным доменам или вообще к Интернету. iOS поддерживает «VPN по запросу» только с сертифицированной аутентификацией.
Чтобы обеспечить «VPN по запросу» для пользователей iOS моего офисного VPN-сервера, мы используем следующее решение IPSec:
Это решение нам подходит. Но у нас появилось новое требование - настроить несколько серверов VPN с одной базой пользователей и вести учет использования VPN.
Это обычная практика для этой задачи - использовать RADIUS, и у strongSwan есть плагин для этого. Но strongSwan с IKEv1 / Xauth использует имя пользователя / пароль для аутентификации пользователя на внутреннем сервере RADIUS. имя пользователя / пароль не используются в моем решении.
Мои вопросы:
P.S. Большинство моих клиентов iOS используют iOS 8, которая поддерживает IKEv2. В IKEv2 есть EAP-TLS. Могу ли я использовать EAP-TLS для делегирования проверки аутентификации RSA серверу RADIUS? Или я копаю не в том направлении с EAP-TLS?
P.S. P.S. Второе, что я хотел сказать об интерфейсе VICI для strongSwan. Я должен был получать уведомления о каждом новом подключении IPSec, но похоже, что VICI работает иначе.
RADIUS Учет в радиус действия плагин не требует аутентификации XAuth. Фактически он работает с любым типом аутентификации, через RADIUS или нет, если клиент запрашивает виртуальный IP-адрес (для IKEv2 даже это требование можно отключить). Однако с некоторыми клиентами IKEv1 возникают некоторые проблемы в случае повторной аутентификации (см. # 937 и связанные).
EAP-TLS позволяет делегировать аутентификацию сертификата для клиентов IKEv2 серверу AAA, но это не связано с учетом RADIUS.
Благодаря ecdsa я нашел несколько решений своей проблемы.
Если плагин eap-radius включен с опцией бухгалтерский учет = да, strongSwan отправит сообщение RADIUS, чтобы начать учет, даже если eap-radius не используется в файле ipsec.conf. В моем случае это сообщение RADIUS выглядит так:
Acct-Status-Type = Start
Acct-Session-Id = 1434531934-1
NAS-Port-Type = Virtual
Service-Type = Framed-User
NAS-Port = 1
NAS-Port-Id = ios-ikev1-fakexauth
NAS-IP-Address = <nas_ip>
Called-Station-Id = <nas_ip>[4500]
Calling-Station-Id = <client_ip>[4500]
User-Name = "C=CH, O=strongSwan, CN=myemail@mail.com"
Framed-IP-Address = 172.20.1.1
NAS-Identifier = strongSwan
Я могу получить сертификат CN из сообщения, и мне достаточно вести надлежащий учет. Если я хочу отклонить доступ для некоторого CN, я могу просто отклонить сообщение RADIUS от stronSwan, и соединение ipsec будет прервано.
Также я хотел бы использовать плагин strongSwan curl для доступа к списку отзыва сертификатов. Но я обнаружил отсутствие документации об этом плагине. Я что-то упускаю?