Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FreeRADIUS, OpenLDAP и EAP/PEAP аутентификация 
:(
    Опции темы
niklep
Дата 25.3.2011, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 9.5.2010

Репутация: нет
Всего: нет



Приветствую. Прошу помощи, ибо совсем сломал мозг следующей задачей:
- Необходимо реализовать процедуру аутентификации пользователей при коннекте к беспроводной сети и направление пользователя в указанный в аккаунте VLAN. Wi-Fi точка настроена на обращение к Radius'у, который, в свою очередь, должен запрашивать аккаунты у LDAP'а. Между Радиусом и точкой настроен протокол PEAP для аутентификации, а PEAP, в свою очередь, использует EAP-MSCHAPv2.
НО! На данный момент работает только схема, при которой аккаунт хранится в файле users на Радиусе. А забрать аккаунт с LDAP'а ни в какую не выходит.
Выкладываю конфиги
radiusd.conf (не полностью, лишь значимую часть):
Код

proxy_requests  = yes
$INCLUDE proxy.conf
$INCLUDE clients.conf
modules {
$INCLUDE ${confdir}/modules/
$INCLUDE eap.conf
$INCLUDE sql.conf
$INCLUDE sql/mysql/counter.conf
}
$INCLUDE policy.conf
$INCLUDE sites-enabled/


clients.conf:
Код

client localhost {
        ipaddr = 127.0.0.1
        secret = testing123
        require_message_authenticator = no
        nastype = other
}
client 192.168.60.20/32 {
        secret = ***
        shortname = wifi
        nastype = cisco
}


eap.conf:
Код

eap {
        default_eap_type = peap
        timer_expire = 60
        ignore_unknown_eap_types = yes
        cisco_accounting_username_bug = no
        max_sessions = 2048
        tls {
                      certdir = ${confdir}/certs
                      cadir = ${confdir}/certs
                      private_key_file = ${certdir}/newkey.pem
                      certificate_file = ${certdir}/newcert.pem
                      CA_file = ${cadir}/cacert.pem
                      dh_file = ${certdir}/dh
                      random_file = /dev/urandom
                      fragment_size = 1024
                      include_length = yes
                      cipher_list = "DEFAULT"
                      make_cert_command = "${certdir}/bootstrap"
                      cache {
                              enable = no
                      }
          }

        ttls {
                       default_eap_type = peap
                       copy_request_to_tunnel = no
                       use_tunneled_reply = yes
                       virtual_server = "inner-tunnel"
        }

        peap {
                       default_eap_type = mschapv2

                       copy_request_to_tunnel = no
                       use_tunneled_reply = yes
                       proxy_tunneled_request_as_eap = no
                       virtual_server = "inner-tunnel"
        }

        mschapv2 {
                        with_ntdomain_hack = yes
                        use_mppe = no
                        require_encryption = no
                        require_strong = no
                        authtype = MS-CHAPv2
        }
}


ldap.attrmap (также не полностью):
Код

checkItem       Auth-Type                       radiusAuthType
checkItem       LM-Password                     lmPassword
checkItem       NT-Password                     ntPassword
checkItem       LM-Password                     sambaLmPassword
checkItem       NT-Password                     sambaNtPassword
checkItem       LM-Password                     dBCSPwd

#мною прописанные
checkItem       Cleartext-Password              userPassword
replyItem       Tunnel-Type                     radiusTunnelType
replyItem       Tunnel-Medium-Type              radiusTunnelMediumType
replyItem       Tunnel-Private-Group-ID         radiusTunnelPrivateGroupId


proxy.conf:
Код

proxy server {
        default_fallback = no
}

home_server localhost {
        type = auth
        ipaddr = 127.0.0.1
        port = 1812
        secret = testing123
        response_window = 20
        zombie_period = 40
        revive_interval = 120
        status_check = status-server
        check_interval = 30
        num_answers_to_alive = 3
}


users (аутентификация именно для этого юзера работает прекрасно):
Код

vlan50  Cleartext-Password :="***"
        Tunnel-Private-Group-ID = 50,
        Tunnel-Type = "VLAN",
        Tunnel-Medium-Type = "IEEE-802"


sites-enables/default:
Код

authorize {
        auth_log
        mschap
        eap {
              ok = return
        }
        files
        ldap
}

authenticate {
        Auth-Type MS-CHAP {
              mschap
        }
        Auth-Type LDAP {
                ldap
        }
        eap
}

preacct {
        files
}

accounting {
        detail
        sql
        attr_filter.accounting_response
}

session {
        radutmp
}

post-auth {
        exec
        Post-Auth-Type REJECT {
                attr_filter.access_reject
        }
}

pre-proxy {
}

post-proxy {
        eap
}


sites-enables/inner-tunnel:
Код

server inner-tunnel {

listen {
       ipaddr = 127.0.0.1
       port = 18120
       type = auth
}

authorize {
        mschap
        ntdomain
        update control {
               Proxy-To-Realm := LOCAL
        }
        inner-eap {
                ok = return
        }
        files
        ldap
        expiration
        logintime
}

authenticate {
        Auth-Type MS-CHAP {
                mschap
        }
        Auth-Type LDAP {
                ldap
        }
        inner-eap
}

session {
        radutmp
}

post-auth {
        Post-Auth-Type REJECT {
                attr_filter.access_reject
        }
}

pre-proxy {
}

post-proxy {
        inner-eap
}


modules/inner-eap:
Код

eap inner-eap {
        default_eap_type = mschapv2
        timer_expire     = 60
        max_sessions = 2048
        mschapv2 {
         with_ntdomain_hack = yes
         use_mppe = no
         require_encryption = no
         require_strong = no
         authtype = MS-CHAPv2
        }

        tls {
                certdir = ${confdir}/certs
                cadir = ${confdir}/certs
                private_key_file = ${certdir}/newkey.pem
                certificate_file = ${certdir}/newcert.pem
                CA_file = ${cadir}/cacert.pem
                dh_file = ${certdir}/dh
                random_file = /dev/urandom
                fragment_size = 1024
                include_length = yes
                cipher_list = "DEFAULT"
        }
}


modules/ldap:
Код

ldap {
        server = "ldap://ldap.uriit.ru"
        identity = "cn=radius,ou=Services,dc=uriit,dc=local"
        password = "***"
        basedn = "ou=People,dc=uriit,dc=local"
        filter = "(&(objectclass=radiusprofile)(uid=%{Stripped-User-Name:-%{User-Name}}))"
        ldap_connections_number = 5
        timeout = 4
        timelimit = 3
        net_timeout = 1
        tls {
                start_tls = yes
                port = 389
                cacertfile              = /etc/openldap/ssl/cacert.pem
                certfile                = /etc/openldap/ssl/newcert.pem
                keyfile                 = /etc/openldap/ssl/newkey.pem
                require_cert    = "allow"
        }
        dictionary_mapping = ${confdir}/ldap.attrmap
        password_attribute = userPassword
        edir_account_policy_check = no
        set_auth_type = no
}


modules/mschap:
Код

mschap {
        use_mppe = no
        require_encryption = no
        require_strong = no
        with_ntdomain_hack = yes
}


Лог аутентификации для пользователя vlan50 (из файла users) - Радиус вернул Accept:
http://pastebin.com/82AckCxU
Правда есть подозрение, что запрос обрабатывается несколько раз (несколькими модулями?)

Радиус - Лог аутентификации для пользователя vlan40 (из LDAP) - Радиус вернул Reject:
http://pastebin.com/LATPFvQv
Обращает на себя внимание следующий отрывок лога:
Код

[mschap] No Cleartext-Password configured.  Cannot create LM-Password.
[mschap] No Cleartext-Password configured.  Cannot create NT-Password.
[mschap] Told to do MS-CHAPv2 for vlan40 with NT-Password
[mschap] FAILED: No NT/LM-Password.  Cannot perform authentication.
[mschap] FAILED: MS-CHAP2-Response is incorrect
++[mschap] returns reject


Как исправить ситуацию идей уже никаких нет.
PM MAIL   Вверх
bilbobagginz
Дата 25.3.2011, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



в каком формате хеш пароля ?
http://deployingradius.com/documents/proto...patibility.html

Это сообщение отредактировал(а) bilbobagginz - 25.3.2011, 22:39


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
niklep
Дата 29.3.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 9.5.2010

Репутация: нет
Всего: нет



В общем, проблему решил следующим образом:
несмотря на то, что якобы userPassword хранится в виде {clear}, он хранится в виде octetString (в схеме так указано). И он тем самым уже искажается относительно изначального вида.
Если хранить пароль в поле homeDirectory (или некоторых других, проверять методом тыка - тип строки должен быть IA5 String), то все ОК.
PM MAIL   Вверх
bilbobagginz
Дата 2.4.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



Цитата(niklep @  29.3.2011,  10:36 Найти цитируемый пост)
Если хранить пароль в поле homeDirectory (или некоторых других, проверять методом тыка - тип строки должен быть IA5 String), то все ОК. 

думаю что это плохое решение, хоть может и сработает.
проблемы могут возникнуть в сфере безопасности и контроля доступа к полям.
возможно по умолчанию, в схеме, поле homeDirectory не сильно защищено, и его можно будет скачать.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
niklep
Дата 4.5.2011, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 9.5.2010

Репутация: нет
Всего: нет



Согласен. Для избежания подобных нехороших ситуаций к LDAP имеют доступ только авторизованные пользователи.
А также между LDAP и RADIUS подят TLS, между Wi-Fi точкой и RADIUS - EAP/PEAP. Думаю, вражина не пройдет=)
PM MAIL   Вверх
bilbobagginz
Дата 9.5.2011, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



Цитата(niklep @  4.5.2011,  13:06 Найти цитируемый пост)
А также между LDAP и RADIUS подят TLS, между Wi-Fi точкой и RADIUS - EAP/PEAP. Думаю, вражина не пройдет=) 

я не знал, что существует технология безопасной беспроводной связи.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.1109 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.