Я настраиваю беспроводную сеть для ~ 150 пользователей. Короче говоря, я ищу руководство по настройке сервера RADIUS для аутентификации WPA2 по LDAP. На Ubuntu.
- Я получил работающий LDAP, но, поскольку он не используется в рабочей среде, его можно легко адаптировать к любым изменениям, которые могут потребоваться в этом проекте.
- Я смотрел на FreeRADIUS, но подойдет любой сервер RADIUS.
- У нас есть отдельная физическая сеть только для WiFi, поэтому не стоит беспокоиться о безопасности на этом фронте.
- Наши точки доступа - это корпоративные продукты от HP - кажется, они поддерживают все, о чем вы только можете подумать.
- Весь сервер Ubuntu, детка!
И плохие новости:
- Теперь кто-то менее знающий, чем я, в конце концов возьмет на себя администрирование, поэтому настройка должна быть как можно более «тривиальной».
- Пока что наша установка основана только на программном обеспечении из репозиториев Ubuntu, за исключением нашего веб-приложения для администрирования LDAP и нескольких небольших специальных сценариев. Так что не "извлекайте пакет X, untar, ./configure"-things, если этого можно избежать.
ОБНОВЛЕНИЕ 2009-08-18:
Хотя я нашел несколько полезных ресурсов, есть одно серьезное препятствие:
Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.
В основном версия FreeRADIUS для Ubuntu не поддерживает SSL ( ошибка 183840 ), что делает все защищенные типы EAP бесполезными. Облом.
Но некоторые полезные документы для всех, кто заинтересован:
- http://vuksan.com/linux/dot1x/802-1x-LDAP.html
- http://tldp.org/HOWTO/html_single/8021X-HOWTO/#confradius
ОБНОВЛЕНИЕ 2009-08-19:
Вчера вечером я скомпилировал свой собственный пакет FreeRADIUS - на http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html есть действительно хороший рецепт (см. комментарии к посту для обновленных инструкций).
Я получил сертификат от http://CACert.org (если возможно, вы должны получить «настоящий» сертификат)
Затем я следовал инструкциям по адресу http://vuksan.com/linux/dot1x/802-1x-LDAP.html . Это ссылка на http://tldp.org/HOWTO/html_single/8021X-HOWTO/ , который очень стоит прочитать, если вы хотите знать, как работает безопасность WiFi.
ОБНОВЛЕНИЕ 2009-08-27:
Следуя вышеприведенному руководству, мне удалось заставить FreeRADIUS общаться с LDAP:
Я создал тестового пользователя в LDAP с паролем mr2Yx36M
- это дает запись LDAP примерно из:
uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja
При использовании radtest
могу нормально подключиться:
> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
User-Name = "msiebuhr"
User-Password = "mr2Yx36N"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
>
Но когда я пытаюсь пройти через AP, он не вылетает - хотя он и подтверждает, что вычисляет пароли NT и LM:
...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP. Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
...
Понятно, что пароли NT и LM отличаются от приведенных выше, но все же сообщение [ldap] user testuser authorized to use remote access
- и пользователь позже отклоняется ...
Ответы:
Я постараюсь ответить на вопрос LDAP здесь.
Вот краткий ответ: убедитесь, что
ldap
модуль удален изauthenticate
раздела, и убедитесь, чтоmschap
модуль присутствует какauthorize
вauthenticate
разделе, так и в разделе. И просто не обращайте внимания на пароль «Нет хорошего пароля».А теперь вот (очень) длинный ответ.
Как работает модуль ldap?
Когда вы активируете
ldap
модуль вauthorize
разделе, это то, что он делает, когда FreeRADIUS получает пакет RADIUS:ldap.conf
)ldap.conf
).ldap.attrmap
, и преобразует их в атрибуты RADIUS.Когда вы активируете
ldap
модуль вauthenticate
разделе, FreeRADIUS делает следующее:Radius-Accept
пакет будет отправлен обратно клиенту, или иначе, это - сбой, приводящий кRadius-Reject
пакету.Итак, как я могу настроить FreeRADIUS, чтобы PEAP / MS-CHAP-v2 работал с LDAP?
Важным моментом здесь является то, что привязка как пользователя будет работать только в том случае, если сервер FreeRADIUS сможет извлечь пароль пользователя в виде открытого текста из полученного им пакета RADIUS. Это только тот случай, когда используются методы аутентификации PAP или TTLS / PAP (и, возможно, также EAP / GTC). Только метод TTLS / PAP действительно безопасен, и он не доступен по умолчанию в Windows. Если вы хотите, чтобы ваши пользователи подключались с TTLS / PAP, вам нужно, чтобы они установили программное обеспечение TTLS запрашивающего, что редко является опцией. В большинстве случаев при развертывании WiFi с помощью WPA Enterprise securiy PEAP / MS-CHAP-v2 является единственным разумным вариантом.
Итак, суть в следующем: если вы не используете PAP или TTLS / PAP, вы можете безопасно удалить
ldap
модуль изauthenticate
раздела, и на самом деле вам следует: привязка, поскольку пользователь не будет работать.Если ваш тест работает при использовании
radtest
, это, вероятно, означает, чтоldap
модуль активирован вauthenticate
разделе: он будет пытаться выполнить привязку как пользователь, и поскольку radtest использует аутентификацию PAP, он будет успешным. Но произойдет сбой, если вы попытаетесь подключиться через точку доступа, поскольку вы используете PEAP / MS-CHAP-v2.Что вы должны сделать, это удалить
ldap
модуль изauthenticate
раздела, и убедитесь, что вы активируетеmschap
модуль как в, такauthorize
и вauthenticate
разделе. Что произойдет, так это то, чтоmschap
модуль позаботится об аутентификации, используяNT-Password
атрибут, который извлекается с сервера LDAP во времяauthorize
фазы.Вот как
sites-enabled/default
должен выглядеть ваш файл (без комментариев):А вот как
sites-enabled/inner-tunnel
должен выглядеть ваш файл:А как насчет предупреждения «Нет известного пароля»?
Ну, вы можете смело игнорировать это. Это просто потому, что
ldap
модуль не смог найтиUserPassword
атрибут, когда он получил данные пользователя с сервера LDAP во времяauthorize
фазы. В вашем случае у вас естьNT-Password
атрибут, и это совершенно нормально дляPEAP/MS-CHAP-v2
аутентификации.Я предполагаю, что предупреждение существует, потому что, когда
ldap
модуль был спроектирован,PEAP/MS-CHAP-v2
еще не существовало, поэтому единственное, что, казалось, имело смысл в то время, это получить атрибут UserPassword с сервера LDAP, чтобы использовать PAP, CHAP, EAP / MD5 или такие методы аутентификации.источник
Я попытаюсь ответить на вопрос OpenSSL здесь: краткий ответ - использовать FreeRADIUS 2.1.8 или более позднюю версию, которая включает OpenSSL . Он доступен в бэкпортах Ubuntu Lucid и Debian Lenny (и, вероятно, также попадет в бэкпорты Ubuntu Karmic).
Вот длинный ответ:
К сожалению, лицензия OpenSSL была (несколько) несовместима с лицензией FreeRADIUS. Поэтому люди из Ubuntu решили предоставить двоичный файл FreeRADIUS, не связанный с OpenSSL. Если вы хотели EAP / TLS, PEAP или TTLS, вам нужно было получить исходники и скомпилировать их с
--with-openssl
опцией (как объясняется в используемом вами рецепте).Но недавно проблема с лицензированием была исправлена . FreeRADIUS версии 2.1.8 или выше могут быть скомпилированы и распространены с OpenSSL. Плохая новость заключается в том, что последний стабильный дистрибутив Ubuntu (Karmic Koala) включает в себя только FreeRADIUS 2.1.0 без OpenSSL (то же самое касается Debian, поскольку Lenny содержит только FreeRADIUS 2.0.4). Я проверил Karmic-backports, но похоже, что FreeRADIUS 2.1.8 или более поздней версии там еще не загружен (но он может быть добавлен в ближайшее время, проверьте его здесь). Поэтому на данный момент вы должны либо переключиться на Ubuntu Lucid (который включает FreeRADIUS 2.1.8), либо продолжить компиляцию. Для пользователей Debian дела обстоят немного ярче: в бэкпортах Lenny есть FreeRADIUS 2.1.8. Поэтому, если вы хотите что-то очень стабильное, простое в установке и обслуживании, я предлагаю вам развернуть сервер с Debian Lenny и установить пакет FreeRADIUS с резервным копированием (он также дает вам возможность писать модули python бесплатно, без необходимости перекомпиляции с все экспериментальные модули).
Есть одна «ошибка» с «настоящими» сертификатами (в отличие от самозаверяющих сертификатов).
Я использовал один подписанный Thawte. Он работает нормально, и пользователи видят красивый «действительный» сертификат с именем что-то вроде
www.my-web-site.com
. Когда пользователь принимает сертификат, его компьютер фактически понимает, что все сертификаты, выданные одним и тем же центром сертификации, должны быть доверенными (я проверял это с Windows Vista и MacOSX Snow Leopard)! Так что в моем случае, если у хакера есть сертификат, скажем,www.some-other-web-site.com
также подписанный Thawte, он может легко провести атаку «человек посередине», без предупреждения на компьютере пользователя!Решение этой проблемы лежит в конфигурации сети компьютера пользователя, чтобы конкретно указать, что доверять нужно только «www.my-web-site.com». Это займет всего минуту, но большинство пользователей не будут знать, где это настроить, если вы не дадите им четкую процедуру и убедитесь, что каждый пользователь следует ей. Я до сих пор использую «действительные» сертификаты, но, откровенно говоря, разочаровывает тот факт, что и Windows, и MacOSX разделяют эту «ошибку»: доверяя центру сертификации вместо конкретного сертификата. Уч ...
источник
Согласно сообщению об ошибке, простая перестройка FreeRADIUS должна исправить проблему поддержки OpenSSH. Это нужно сделать только один раз.
Я не уверен, что простота администрирования связана с настройкой. Часто, чем больше и детальнее настройка, тем проще ее администрировать, поскольку она охватывает все основы. Вы имеете в виду, что конфигурация должна быть легко удалена и на других серверах? Сколько беспроводных локальных сетей вы настраиваете?
После настройки Администрирование должно быть ограничено добавлением, удалением и изменением пользователем LDAP. Это должно быть достаточно просто, чтобы либо выполнить скрипт с помощью ldapmodify (et al), либо найти достойный графический интерфейс LDAP и документировать процессы со скриншотами.
источник
Я столкнулся с той же проблемой. Мне пришлось скачать исходники RADIUS и собрать их самостоятельно.
источник
Вы можете использовать FreeRADIUS2 (с OpenSSL) + EAP-TLS + WPA2-Предприятие. Вот очень дотошный HOW-TO . Windows XP SP3 имеет встроенную поддержку, а также Windows 7, Android 2.3, iPhone, Symbian. Но я не знаю о совместимости с SLDAP в такой схеме.
источник