Назад | Перейти на главную страницу

L2TP с аутентификацией PEAP из MacOS / iOS

Следуя недавнему совету по безопасности, я перенастраиваю наши VPN-серверы и у меня проблемы.

Мы используем сервер Windows 2008 R2 для служб VPN, запускаем RRAS и NPS на одном сервере и настраиваем его для использования аутентификации PEAP-EAP-MSCHAPV2 для всех типов туннелей (PPTP, L2TP, IKEv2, SSTP), которые ранее разрешали простой MSCHAPv2. .

Но продукты Apple, MacOS и iOS не могут подключаться к VPN после этого изменения. Я попытался установить корневой сертификат, используемый в транзакции PEAP, но без изменений.

Кто-нибудь знает, поддерживает ли MacOS / iOS аутентификацию PEAP-EAP-MSCHAPv2 в PPTP / L2TP? Если да, какие-нибудь советы, как заставить его работать? (Я знаю, что PEAP-EAP-MSCHAPv2 поддерживается в WPA / WPA2 Enterprise)

С уважением.

Я не нашел официального подтверждения, что Mac OS X не поддерживает PEAP-EAP-MSCHAPv2, но я тоже не могу заставить его работать (Windows SBS 2003 R2 и L2TP-over-ESP с клиентом Mac OS X 10.8 здесь ). Я даже не вижу попыток входа в систему в файле журнала IAS. (Журнал событий безопасности полон всевозможных вещей, поэтому я не очень внимательно его читал.) Я действительно подтвердил, к своему удовлетворению, что по крайней мере ISAKMP и IPsec ESP работают, проверив /var/log/racoon.log на Mac, где я видел записи, подобные приведенным ниже (здесь 198.51.100.200 - это Mac, а 192.0.2.100 - это SBS):

DEBUG: agreed on pre-shared key auth.
INFO: NAT detected: ME PEER
INFO: ISAKMP-SA established 198.51.100.200[4500]-192.0.2.100[4500] spi:0123456789abcdef:0123456789abcdef
INFO: NAT detected -> UDP encapsulation (ENC_MODE 2->61444).
INFO: IPsec-SA established: ESP/Transport 192.0.2.100[4500]->198.51.100.200[4500] spi=01234567(0x012345)
INFO: IPsec-SA established: ESP/Transport 198.51.100.200[4500]->192.0.2.100[4500] spi=89abcdef(0x6789ab)

Я также просмотрел /var/log/ppp.log, в котором есть что-то вроде следующего:

IPSec connection started
IPSec phase 1 client started
IPSec phase 1 server replied
IPSec phase 2 started
IPSec phase 2 established
IPSec connection established
L2TP sent SCCRQ
L2TP received SCCRP
L2TP sent SCCCN
L2TP sent ICRQ
L2TP received ICRP
L2TP sent ICCN
L2TP connection established.

Это повторяет успешное соединение IPsec, показанное в racoon.log, и добавляет успешное соединение L2TP (что имеет смысл - L2TP сам не аутентифицирован). Затем Mac пытается построить PPP-соединение через L2TP, как и ожидалось, и именно здесь я начинаю видеть ошибки, которых я не понимаю:

lcp_reqci: rcvd unknown option 13
lcp_reqci: rcvd unknown option 23
lcp_reqci: returning CONFREJ.

С последующим:

sent [LCP ConfRej id=0x0...
rcvd [LCP ConfAck id=0x1...
rcvd [LCP ConfReq id=0x1 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x1 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x2 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x2 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x3 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x3 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x4 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x4 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x5 <mru 1400> <auth eap>...
lcp_reqci: returning CONFNAK.
sent [LCP ConfNak id=0x5 <auth chap MS-v2>]
rcvd [LCP ConfReq id=0x6 <mru 1400> <auth eap>...
lcp_reqci: returning CONFREJ.
sent [LCP ConfRej id=0x6 <auth eap>]
rcvd [LCP TermReq id=0x7...
sent [LCP TermAck id=0x7]
Fatal signal 6

Обратите внимание на «auth eap» и «auth chap MS-v2» выше.

Я собираюсь попробовать отменить некоторые изменения, которые я внес в политику удаленного доступа:

  • повторно включить все типы шифрования (нет / базовое / сильное / самое сильное, только самое сильное)
  • удалить все типы EAP и включить только MSCHAPv2 (был защищен EAP [PEAP] / EAP-MSCHAPv2)

Учитывая, что вся биржа защищена IPsec, я задаюсь вопросом о моем фактическом риске. Если кто-то скомпрометировал клиента так, что у него есть доступ к PSK или сертификату, используемому с IPsec, я не уверен, будет ли иметь значение только PEAP для аутентификации PPP-соединения (по крайней мере, для моей модели угроз).

ОБНОВЛЕНИЕ: я повторно включил MSCHAPv2 как в свойствах сервера RRAS, так и в политике IAS, которая контролирует доступ VPN, и я включил все типы шифрования. После внесения этих изменений Mac смог снова подключиться к L2TP-over-IPsec VPN, используя MSCHAPv2 для аутентификации через PPP. Я включил и выключил PEAP в политике IAS, просто чтобы убедиться, что PEAP не будет работать, и фактически, с включенным PEAP (но отключенным MSCHAPv2) теперь я получаю сообщение об ошибке аутентификации, и Mac OS X регистрирует следующее:

MS-CHAP authentication failed: E=649 No dialin permission
sent [LCP TermReq id=0x2 "Failed to authenticate ourselves to peer"]

Я полагаю, что ранее более неоднозначное поведение было связано с тем, что я отключил MSCHAPv2 в самом RRAS, а также в политике IAS, тогда как в моей текущей тестовой конфигурации MSCHAPv2 включен в RRAS, но отключен в политике IAS.