Ubuntu'da WPA2 için RADIUS + LDAP kurulumu


16

150 kullanıcı için kablosuz bir ağ kuruyorum. Kısacası, RADIUS sunucusunu WPA2'yi bir LDAP'ye göre doğrulayacak şekilde ayarlamak için bir rehber arıyorum. Ubuntu üzerinde.

  • Çalışan bir LDAP aldım, ancak üretimde olmadığı için bu projenin gerektirebileceği değişikliklere kolayca adapte edilebilir.
  • FreeRADIUS'a bakıyorum, ancak herhangi bir RADIUS sunucusu yapacak.
  • Sadece WiFi için ayrı bir fiziksel ağımız var, bu yüzden bu cephedeki güvenlik hakkında çok fazla endişe duymuyoruz.
  • AP'lerimiz HP'nin düşük kaliteli kurumsal ürünleridir - aklınıza gelebilecek her şeyi destekliyor gibi görünüyorlar.
  • Hepsi Ubuntu Sunucusu, bebeğim!

Ve kötü haber:

  • Şimdi benden daha az bilgili biri sonunda yönetimi devralacak, bu yüzden kurulumun mümkün olduğunca "önemsiz" olması gerekiyor.
  • Şimdiye kadar, kurulumumuz LDAP yönetim web uygulamamız ve birkaç küçük özel komut dosyası haricinde yalnızca Ubuntu depolarındaki yazılımlara dayanmaktadır. Dolayısıyla, "önlenebilirse X, untar, ./configure"-things paketini getirmeyin.

GÜNCELLEME 2009-08-18:

Birkaç yararlı kaynak buldum, ancak ciddi bir engel var:

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.

Temel olarak FreeRADIUS'un Ubuntu sürümü SSL'yi ( hata 183840 ) desteklemez, bu da tüm güvenli EAP türlerini işe yaramaz hale getirir. Aylak.

Ancak ilgilenen herkes için bazı yararlı belgeler:

GÜNCELLEME 2009-08-19:

Dün akşam kendi FreeRADIUS paketimi derledim - http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html adresinde gerçekten iyi bir tarif var (Bkz. güncellenen talimatlar için yayına yapılan yorumlar).

Http://CACert.org adresinden bir sertifika aldım (mümkünse "gerçek" bir sertifika almanız gerekir)

Sonra http://vuksan.com/linux/dot1x/802-1x-LDAP.html adresindeki talimatları uyguladım . Bu , WiFi güvenliğinin nasıl çalıştığını bilmek istiyorsanız çok değerli bir okuma olan http://tldp.org/HOWTO/html_single/8021X-HOWTO/ adresine bağlanır.

GÜNCELLEME 2009-08-27:

Yukarıdaki kılavuzu izledikten sonra FreeRADIUS'un LDAP ile konuşmasını sağladım:

LDAP'da şifre ile bir test kullanıcısı oluşturdum mr2Yx36M- bu kabaca bir LDAP girişi veriyor:

uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja

Kullanırken radtest, ince bağlayabilirsiniz:

> 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
> 

Ama AP denediğimde, uçmuyor - NT ve LM şifrelerini çözdüğünü doğrularken:

...
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 ve LM parolalarının yukarıdakilerden farklı olduğu açıktır, ancak mesaj [ldap] user testuser authorized to use remote access- ve daha sonra kullanıcı reddedilir ...


NT ve LM şifreleri şifreli olarak saklanır, bu yüzden farklı olup olmadıkları açık değildir. AP tarafından hangi parolanın kullanıldığını belirlemeniz gerekir ve açık bir şekilde geçiriliyorsa, bir MD5'in yerine geçiyor veya başka bir şey. RADIUS istemcileri, parola veya parola benzeri kimlik doğrulaması için herhangi bir sayıda RADIUS özniteliğini kullanabilir. Ayrıca, son kullanma özelliğini doldurmayı deneyin.
kmarsh

Yanıtlar:


12

Burada LDAP sorusunu cevaplamaya çalışacağım.

İşte kısa cevap: ldapmodülün bölümden kaldırıldığından authenticateve mschapmodülün hem ve authorizehem de authenticatebölümde mevcut olduğundan emin olun . Ve sadece "Hayır" bilinen iyi "parolayı" dikkate almayın.

Ve şimdi işte (çok) uzun cevap.

Ldap modülü nasıl çalışır?

Bölümünde ldapmodülü etkinleştirdiğinizde, authorizeFreeRADIUS tarafından bir RADIUS paketi alındığında yaptığı şey budur:

  1. LDAP sunucusuna bağlanmaya çalışır (konuk kullanıcı olarak veya yapılandırılmışsa verilen kimliği kullanarak ldap.conf)
  2. temel DN altındaki filtreyi (yapılandırılmış olan ldap.conf) kullanarak kullanıcının DN girişini arar .
  3. yapılandırılmış olanlar arasında alabileceği tüm LDAP niteliklerini alır ldap.attrmapve bunları RADIUS Özelliklerine dönüştürür.
  4. bu özellikleri RADIUS paketinin çek öğeleri listesine ekler.

Bölümünde ldapmodülü etkinleştirdiğinizde authenticateFreeRADIUS bunu yapar:

  1. LDAP sunucusuna kullanıcı olarak bağlanmaya çalışır .
  2. eğer bağlanabiliyorsa, bu başarılı bir kimlik doğrulamasıdır ve bir Radius-Acceptpaket istemciye geri gönderilir, aksi takdirde bir Radius-Rejectpakete yol açan bir başarısızlıktır .

Peki FreeRADIUS'u PEAP / MS-CHAP-v2'nin LDAP ile çalışması için nasıl yapılandırabilirim?

Burada önemli olan nokta , kullanıcının FreeRADIUS sunucusu aldığı RADIUS paketinden kullanıcının açık metin parolasını alabilmesi durumunda bağlanabilmesidir. Bu sadece PAP veya TTLS / PAP kimlik doğrulama yöntemleri (ve muhtemelen EAP / GTC) kullanıldığında geçerlidir. Yalnızca TTLS / PAP yöntemi gerçekten güvenlidir ve Windows'ta varsayılan olarak kullanılamaz. Kullanıcılarınızın TTLS / PAP ile bağlantı kurmasını istiyorsanız, nadiren bir seçenek olan bir TTLS destek yazılımı yüklemelerini sağlamanız gerekir. WPA Enterprise güvenliğiyle WiFi dağıtırken çoğu zaman PEAP / MS-CHAP-v2 tek makul seçenektir.

Sonuç olarak: PAP veya TTLS / PAP kullanmadığınız sürece, ldapmodülü authenticatebölümden güvenli bir şekilde çıkarabilirsiniz ve aslında şunları yapmalısınız: kullanıcı çalışmadığı için bağlanma.

Kullandığınızda test çalışırsa radtest, o muhtemelen araç ldapmodülü aktive edilir authenticatebölüm: o kullanıcı olarak bağlama dener ve radtest kullanımları PAP kimlik doğrulaması beri, bu başarılı olacaktır. Ancak PEAP / MS-CHAP-v2 kullandığınız için erişim noktası üzerinden bağlanmaya çalışırsanız başarısız olur.

Ne yapmalıyım kaldırmak olduğunu ldapden modülü authenticatebölümünde ve emin aktive olmak mschaphem de modül authorizeve authenticatebölüm. Olan şey, mschapmodülün aşama NT-Passwordsırasında LDAP sunucusundan alınan özniteliği kullanarak kimlik doğrulaması authorizeyapmasıdır.

İşte budur sites-enabled/defaultdosyası (tüm yorumlar olmaksızın) gibi görünmelidir:

    ...
    authorize {
        preprocess
        suffix
        eap {
            ok = return
        }
        expiration
        logintime
    }
    authenticate {
        eap
    }
    ...

Ve burada ne sites-enabled/inner-tunneldosya gibi görünmelidir:

    ...
    authorize {
        mschap
        suffix
        update control {
               Proxy-To-Realm := LOCAL
        }
        eap {
            ok = return
        }
        ldap
        expiration
        logintime
    }
    authenticate {
        Auth-Type MS-CHAP {
            mschap
        }
        eap
    }
    ...

"Hayır" bilinen iyi "şifre" uyarısına ne dersiniz?

Bunu güvenle görmezden gelebilirsiniz. Sadece orada, ldapmodül aşama UserPasswordsırasında LDAP sunucusundan kullanıcı ayrıntılarını getirdiğinde bir özellik bulamadığı için authorize. Sizin durumunuzda, bu özelliğe sahipsiniz NT-Passwordve bu, PEAP/MS-CHAP-v2kimlik doğrulama için mükemmel bir şekilde iyi .

Sanırım uyarı var çünkü ldapmodül tasarlandığında, PEAP/MS-CHAP-v2henüz mevcut değildi, bu yüzden o zaman mantıklı görünen tek şey PAP, CHAP, EAP / kullanmak için LDAP sunucusundan UserPassword özniteliğini almak oldu MD5 veya bu tür kimlik doğrulama yöntemleri.


3

Burada OpenSSL sorusunu cevaplamaya çalışacağım: kısa cevap, OpenSSL'yi içeren FreeRADIUS 2.1.8 veya üstünü kullanmaktır . Ubuntu Lucid ve Debian Lenny backport'larında mevcuttur (ve muhtemelen Ubuntu Karmic backport'larında da bulunur).

İşte uzun cevap:

Ne yazık ki, OpenSSL lisansı eskiden (biraz) FreeRADIUS lisansıyla uyumsuzdu. Bu nedenle, Ubuntu halkı OpenSSL ile bağlantılı olmayan bir FreeRADIUS ikili dosyası sağlamayı seçti . EAP / TLS, PEAP veya TTLS'i istese, vardı kaynaklarını almak ve bunları derlemek için --with-openssl(eğer kullanılan reçete açıkladığı gibi) seçeneğiyle.

Ancak son zamanlarda lisanslama sorunu giderildi . FreeRADIUS 2.1.8 veya üzeri sürümler OpenSSL ile derlenebilir ve dağıtılabilir. Kötü haber şu ki, en son kararlı Ubuntu dağıtımı (Karmic Koala) OpenSSL olmadan yalnızca FreeRADIUS 2.1.0'ı içeriyor (aynı Debian için de geçerli, çünkü Lenny sadece FreeRADIUS 2.0.4 içeriyor). Karmic-backports'u kontrol ettim, ancak FreeRADIUS 2.1.8 veya üstü henüz yüklenmemiş gibi görünüyor (ancak yakında eklenebilir, buradan kontrol edin)). Şimdilik, Ubuntu Lucid'e (FreeRADIUS 2.1.8'i içeren) geçmeli veya derlemeye bağlı kalmalısınız. Debian kullanıcıları için işler biraz daha parlaktır: Lenny backport'larında FreeRADIUS 2.1.8 bulunmaktadır. Bu nedenle, çok kararlı ve kurulumu ve bakımı kolay bir şey istiyorsanız, Debian Lenny ile bir sunucu dağıtmanızı ve desteklenen FreeRADIUS paketini yüklemenizi öneririm (ayrıca, yeniden derlemek zorunda kalmadan ücretsiz olarak python modülleri yazma imkanı sunar. tüm deney modülleri).

Http://CACert.org adresinden bir sertifika aldım (mümkünse "gerçek" bir sertifika almanız gerekir)

"Gerçek" sertifikalara sahip bir "gotcha" vardır (kendinden imzalı sertifikaların aksine).

Thawte imzalı birini kullandım. İyi çalışıyor ve kullanıcılar gibi bir adda güzel bir "geçerli" sertifika görüyorlar www.my-web-site.com. Kullanıcı sertifikayı kabul ettiğinde, bilgisayarı aslında aynı sertifika yetkilisi tarafından verilen tüm sertifikalara güvenilmesi gerektiğini anlar (bunu Windows Vista ve MacOSX Snow Leopard ile test ettim)! Benim durumumda, bir bilgisayar korsanının www.some-other-web-site.comThawte tarafından da imzalanmış bir sertifikası varsa , kullanıcının bilgisayarında herhangi bir uyarı görüntülenmeden kolayca bir Ortadaki Adam saldırısı yapabilir!

Bunun çözümü, özellikle yalnızca "www.my-web-site.com" a güvenilmesi gerektiğini belirtmek için kullanıcının bilgisayarının ağ yapılandırmasında derinlemesine yatmaktadır. Sadece bir dakika sürer, ancak çoğu kullanıcı, onlara açık bir prosedür vermedikçe ve her kullanıcının bunu izlediğinden emin olmadıkça, bunu nerede yapılandıracağını bilemez. Yine de "geçerli" sertifikalar kullanıyorum, ancak açıkçası hem Windows hem de MacOSX'in bu "hatayı" paylaştığını hayal kırıklığına uğrattı: belirli sertifika yerine Sertifika Yetkilisine güvenme. Ah ...


1

Hata raporuna göre, FreeRADIUS'un basit bir şekilde yeniden oluşturulması OpenSSH destek sorununu çözmelidir. Sadece bir kez yapılması gerekir.

Kurulumun yönetim kolaylığıyla ne ilgisi olduğundan emin değilim. Kurulum ne kadar karmaşık ve ayrıntılı olursa, kurulum o kadar kolay olur, çünkü kurulum tüm temelleri kapsamaktadır. Yapılandırmanın diğer sunucularda da kolayca bırakılması gerektiği anlamına mı geliyor? Kaç tane kablosuz LAN kuruyorsunuz?

Yapılandırıldıktan sonra, Yönetim LDAP kullanıcısı ekler, siler ve değiştirir. Bunlar ldapmodify (et al) ile komut dosyası yazabilmek veya iyi bir LDAP grafik ön ucu bulmak ve işlemleri ekran görüntüleri ile belgelendirmek için yeterince kolay olmalıdır.


Öncelikle, her güncelleme yapıldığında paketi yeniden derlemelisiniz (Gentoo-millet kıskanıyor :)). Diğer kısımlarda, tamamen katılıyorum - kurulum tüm üsleri kaplarsa, halefimin yapacak daha az işi olacaktır (ve tersine mühendislik için daha az hack).
Morten Siebuhr


-1

FreeRADIUS2 (OpenSSL ile) + EAP-TLS + WPA2-Enterprice kullanabilirsiniz. İşte wery nasıl yazılır . Windows XP SP3, Windows 7, Android 2.3, iPhone, Symbian'ın yanı sıra yerel desteğe de sahiptir. Ancak böyle bir şemada SLDAP ile uyumluluk hakkında bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.