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)
С уважением.
1 ответ
Я не нашел официального подтверждения того, что 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.