Преамбула
Захотелось поднять WPA с авторизацией через RADIUS. Нашёлся по этому поводу очень толковый мануал:
http://www.ixbt.com/comm/prac-wpa-eap.shtmlЕдинственное отличие на убунте - конфигурация находится не в /etc/raddb, а в /etc/freeradius. Всё остальное совпадает!
Однако по окончании правки конфигов согласно этому мануалу, freeradus вылетает при запуске в тестовом режиме с сообщением об отсутствии модуля rlm_eap_tls.
При ближайшем рассмотрении оказывается, что модуль отсутствует изначально в .deb пакете. Я решил пересобрать модуль из исходников, однако, как выяснилось, это вовсе сводится к запуску "apt-build install freeradius" вместо "apt-get install freeradius".
Далее - добытый опытным путём мануал, как же всё-таки установить freeradius с rlm_eap_tls.
# apt-get install apt-build
- убеждаемся, что пути к исходникам (deb-src) есть в списке репозитариев (/etc/apt/sources.list)
# apt-build source freeradius
Заходим в папку debian в скачанном исходнике freeradius
# cd /var/cache/apt-build/freeradius-1.1.6/debian
(Примечание: версия после freeradius может быть другой)
Открываем для правки файл rules и внимательно читаем то, что написано на первом экране по поводу комментирования/раскомментирования двух строчек, относящихся к rlm_sql_postgresql и libssl. Можно просто поступить так, как предлагается. Мне же не нужен был модуль rlm_sql_postresql, а всего лишь хотелось включить поддержку tls. поэтому я оставил эти две строчки вот такими:
buildssl= --without-rlm_sql_postgresql
modulelist=krb5 ldap sql_mysql sql_iodbc(Примечание: в файле изменений (changelog) сказано, что libssl-dev отмечена как конфликтная из-за проблем с krb5 и ldap -модулями. Поэтому, видимо, ещё лучше будет убрать и эти модули, покуда мы ими не пользуемся:
modulelist=sql_mysql sql_iodbc)
Так же редактируем файл control в той же папке. В самом верху в Build-Depends дописываем в конец строки libssl-dev, а строчкой ниже - в Build-Conflicts - убираем libssl-dev
Продолжаем:
#apt-build install freeradius
В результате выполнения получаем ошибку о неудовлетворённой зависимости от libssl-dev. Самое странное, что это сообщение вы получите даже если предварительно установите этот пакет. И - на самом деле - мне в конечном итоге так и не удалось добиться устаровки freeradius с помощью apt-build. Однако есть в этом и плюс - поскольку помимо выдачи сообщения об ошибке apt-build всё же устранил все остальные зависимости. А потому - дальше делаем вот так:
#apt-get install libssl-dev
#cd /var/cache/apt-build/freeradius-1.1.6
#dpkg-buildpackage
- На этот раз всё проходит без заминок, и папкой выше (в /var/cache/apt-build) мы получаем набор собранных .deb пакетов.
После этого запускаем ещё раз:
#apt-build install freeradius
И получаем, наконец, freeradius c поддержкой tls. Тут apt-build видит уже собранные пакеты, и просто устанавливает их, ничего не пересобирая (а заодно перемещает в собственный дистрибутив).