Saya menyiapkan jaringan nirkabel untuk ~ 150 pengguna. Singkatnya, saya mencari panduan untuk mengatur server RADIUS untuk mengotentikasi WPA2 terhadap LDAP. Di Ubuntu.
- Saya mendapat LDAP yang berfungsi, tetapi karena tidak digunakan dalam produksi, ia dapat dengan mudah disesuaikan dengan perubahan apa pun yang mungkin diperlukan proyek ini.
- Saya sudah mencari di FreeRADIUS, tetapi server RADIUS akan melakukannya.
- Kami punya jaringan fisik terpisah hanya untuk WiFi, jadi tidak terlalu banyak kekhawatiran tentang keamanan di bagian depan itu.
- AP kami adalah perangkat perusahaan kelas bawah HP - mereka tampaknya mendukung apa pun yang dapat Anda pikirkan.
- Semua Server Ubuntu, sayang!
Dan berita buruknya:
- Saya sekarang seseorang yang kurang berpengetahuan daripada saya akhirnya akan mengambil alih administrasi, jadi pengaturannya harus sesederhana mungkin.
- Sejauh ini, pengaturan kami hanya didasarkan pada perangkat lunak dari repositori Ubuntu, dengan pengecualian aplikasi web administrasi LDAP kami dan beberapa skrip khusus kecil. Jadi tidak ada "ambil paket X, untar, ./configure"- hal jika dapat dihindari.
UPDATE 2009-08-18:
Sementara saya menemukan beberapa sumber daya yang bermanfaat, ada satu kendala serius:
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.
Pada dasarnya FreeRADIUS versi Ubuntu tidak mendukung SSL ( bug 183840 ), yang membuat semua jenis EAP aman tidak berguna. Kekecewaan.
Tetapi beberapa dokumentasi bermanfaat bagi siapa pun yang tertarik:
- http://vuksan.com/linux/dot1x/802-1x-LDAP.html
- http://tldp.org/HOWTO/html_single/8021X-HOWTO/#confradius
UPDATE 2009-08-19:
Saya akhirnya mengkompilasi paket FreeRADIUS saya sendiri kemarin malam - ada resep yang sangat bagus di http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html (Lihat komentar pada posting untuk instruksi terbaru).
Saya mendapat sertifikat dari http://CACert.org (Anda mungkin harus mendapatkan sertifikat "nyata" jika memungkinkan)
Kemudian saya mengikuti instruksi di http://vuksan.com/linux/dot1x/802-1x-LDAP.html . Tautan ini ke http://tldp.org/HOWTO/html_single/8021X-HOWTO/ , yang merupakan bacaan yang sangat bermanfaat jika Anda ingin tahu cara kerja keamanan WiFi.
UPDATE 2009-08-27:
Setelah mengikuti panduan di atas, saya berhasil membuat FreeRADIUS berbicara dengan LDAP:
Saya telah membuat pengguna uji di LDAP, dengan kata sandi mr2Yx36M
- ini memberikan entri LDAP kira-kira dari:
uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja
Saat menggunakan radtest
, saya dapat terhubung dengan baik:
> 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
>
Tetapi ketika saya mencoba melalui AP, itu tidak terbang - sementara itu mengkonfirmasi bahwa ia menemukan kata sandi NT dan 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
...
Jelas bahwa kata sandi NT dan LM berbeda dari yang di atas, namun pesannya [ldap] user testuser authorized to use remote access
- dan pengguna kemudian ditolak ...
Jawaban:
Saya akan mencoba menjawab pertanyaan LDAP di sini.
Inilah jawaban singkatnya: pastikan
ldap
modul dihapus dariauthenticate
bagian, dan pastikanmschap
modul ada di bagianauthorize
danauthenticate
. Dan abaikan saja kata sandi 'Tidak "dikenal baik".Dan sekarang inilah jawaban yang sangat panjang.
Bagaimana cara kerja modul ldap?
Ketika Anda mengaktifkan
ldap
modul diauthorize
bagian ini, inilah yang dilakukan ketika paket RADIUS diterima oleh FreeRADIUS:ldap.conf
)ldap.conf
).ldap.attrmap
, dan mengubahnya menjadi Atribut RADIUS.Ketika Anda mengaktifkan
ldap
modul diauthenticate
bagian ini, inilah yang dilakukan FreeRADIUS:Radius-Accept
paket akan dikirim kembali ke klien, atau yang lain, itu adalah kegagalan, yang mengarah ke sebuahRadius-Reject
paket.Jadi bagaimana saya bisa mengkonfigurasi FreeRADIUS untuk membuat PEAP / MS-CHAP-v2 berfungsi dengan LDAP?
Poin penting di sini adalah bahwa mengikat karena pengguna hanya akan berfungsi jika server FreeRADIUS dapat mengambil kata sandi teks-bersih pengguna dari paket RADIUS yang diterimanya. Ini hanya terjadi ketika metode otentikasi PAP atau TTLS / PAP digunakan (dan mungkin juga EAP / GTC). Hanya metode TTLS / PAP yang benar-benar aman, dan tidak tersedia secara default di Windows. Jika Anda ingin pengguna Anda terhubung dengan TTLS / PAP, Anda harus meminta mereka menginstal perangkat lunak pemohon TTLS, yang jarang menjadi pilihan. Sebagian besar waktu, ketika menggunakan WiFi dengan WPA Enterprise aman, PEAP / MS-CHAP-v2 adalah satu-satunya pilihan yang masuk akal.
Jadi intinya adalah: kecuali Anda menggunakan PAP atau TTLS / PAP, Anda dapat menghapus
ldap
modul dengan aman dariauthenticate
bagian tersebut, dan sebenarnya, Anda harus: mengikat karena pengguna tidak akan bekerja.Jika tes Anda berfungsi saat Anda menggunakan
radtest
, itu mungkin berarti bahwaldap
modul diaktifkan diauthenticate
bagian: itu akan mencoba untuk mengikat sebagai pengguna, dan karena radtest menggunakan otentikasi PAP, itu akan berhasil. Tetapi itu akan gagal jika Anda mencoba terhubung melalui titik akses, karena Anda menggunakan PEAP / MS-CHAP-v2.Yang harus Anda lakukan adalah menghapus
ldap
modul dariauthenticate
bagian, dan pastikan Anda mengaktifkanmschap
modul di bagianauthorize
danauthenticate
. Apa yang akan terjadi adalah bahwamschap
modul akan menangani otentikasi menggunakanNT-Password
atribut yang diambil dari server LDAP selamaauthorize
fase.Di sini
sites-enabled/default
terlihat seperti apa file Anda (tanpa semua komentar):Dan inilah
sites-enabled/inner-tunnel
tampilan file Anda :Bagaimana dengan peringatan kata sandi 'Tidak ada yang dikenal dengan baik'?
Nah, Anda bisa dengan aman mengabaikannya. Itu hanya ada karena
ldap
modul tidak bisa menemukanUserPassword
atribut ketika mengambil detail pengguna dari server LDAP selamaauthorize
fase. Dalam kasus Anda, Anda memilikiNT-Password
atribut, dan itu bagus untukPEAP/MS-CHAP-v2
otentikasi.Saya kira peringatan itu ada karena ketika
ldap
modul dirancang,PEAP/MS-CHAP-v2
belum ada, jadi satu-satunya hal yang tampaknya masuk akal pada saat itu adalah untuk mengambil atribut UserPassword dari server LDAP, untuk menggunakan PAP, CHAP, EAP / MD5 atau metode otentikasi semacam itu.sumber
Saya akan mencoba menjawab pertanyaan OpenSSL di sini: jawaban singkatnya adalah menggunakan FreeRADIUS 2.1.8 atau lebih tinggi, yang mencakup OpenSSL . Ini tersedia di backport Ubuntu Lucid dan Debian Lenny (dan mungkin juga akan berakhir di backports Ubuntu Karmic).
Inilah jawaban panjangnya:
Sayangnya, lisensi OpenSSL dulu (agak) tidak kompatibel dengan lisensi FreeRADIUS. Oleh karena itu, orang-orang Ubuntu memilih untuk menyediakan biner FreeRADIUS yang tidak tertaut dengan OpenSSL. Jika Anda menginginkan EAP / TLS, PEAP atau TTLS, Anda harus mendapatkan sumber dan mengompilasinya dengan
--with-openssl
opsi (seperti yang dijelaskan resep yang Anda gunakan).Namun baru-baru ini, masalah perizinan telah diperbaiki . FreeRADIUS versi 2.1.8 atau lebih tinggi dapat dikompilasi dan didistribusikan dengan OpenSSL. Kabar buruknya adalah distribusi Ubuntu stabil terbaru (Karmic Koala) hanya mencakup FreeRADIUS 2.1.0, tanpa OpenSSL (hal yang sama berlaku untuk Debian, karena Lenny hanya mengandung FreeRADIUS 2.0.4). Saya telah memeriksa Karmic-backports, tetapi tampaknya FreeRADIUS 2.1.8 atau yang lebih baru belum diunggah di sana (tetapi mungkin akan segera ditambahkan, periksa di sini). Jadi untuk saat ini, Anda harus beralih ke Ubuntu Lucid (yang mencakup FreeRADIUS 2.1.8) atau tetap menggunakan kompilasi. Untuk pengguna Debian, segalanya sedikit lebih cerah: backports Lenny termasuk FreeRADIUS 2.1.8. Jadi jika Anda menginginkan sesuatu yang sangat stabil, dan mudah untuk menginstal dan memelihara, saya sarankan Anda menggunakan server dengan Debian Lenny, dan menginstal paket FreeRADIUS yang di-backport (ini juga memberi Anda kemungkinan untuk menulis modul python secara gratis, tanpa harus melakukan kompilasi ulang dengan semua modul eksperimental).
Ada satu "gotcha" dengan sertifikat "asli" (sebagai lawan dari sertifikat yang ditandatangani sendiri).
Saya menggunakan satu yang ditandatangani oleh Thawte. Ini berfungsi dengan baik, dan pengguna melihat sertifikat "valid" yang indah dengan nama seperti
www.my-web-site.com
. Ketika pengguna menerima sertifikat, komputernya benar-benar memahami bahwa semua sertifikat yang dikeluarkan oleh otoritas sertifikat yang sama harus dipercaya (saya mengujinya dengan Windows Vista dan MacOSX Snow Leopard)! Jadi dalam kasus saya, jika seorang hacker memiliki sertifikat untuk, katakanlah,www.some-other-web-site.com
juga ditandatangani oleh Thawte, maka ia dapat menjalankan serangan Man-in-the-middle dengan mudah, tanpa peringatan yang ditampilkan di komputer pengguna!Solusi untuk ini terletak jauh di dalam konfigurasi jaringan komputer pengguna, untuk secara spesifik menentukan bahwa hanya "www.my-web-site.com" yang dapat dipercaya. Hanya perlu satu menit, tetapi sebagian besar pengguna tidak akan tahu di mana untuk mengkonfigurasi ini kecuali Anda memberi mereka prosedur yang jelas dan pastikan setiap pengguna mengikutinya. Saya masih menggunakan sertifikat "valid", tetapi terus terang itu mengecewakan melihat bahwa Windows dan MacOSX berbagi "bug" ini: mempercayai Otoritas Sertifikat alih-alih sertifikat spesifik. Aduh...
sumber
Menurut laporan bug, pembangunan kembali FreeRADIUS yang sederhana harus memperbaiki masalah dukungan OpenSSH. Itu hanya perlu dilakukan sekali.
Saya tidak yakin kemudahan administrasi apa yang harus dilakukan dengan pengaturan. Seringkali, semakin terlibat dan merinci pengaturan, semakin mudah untuk mengelola, karena pengaturan mencakup semua basis. Apakah maksud Anda konfigurasi harus dijatuhkan di server lain dengan mudah juga? Berapa banyak LAN nirkabel yang Anda siapkan?
Setelah dikonfigurasikan, Administrasi harus dibatasi untuk menambah, menghapus, dan memodifikasi pengguna LDAP. Ini harus cukup mudah untuk skrip dengan ldapmodify (et al) atau menemukan front end grafis LDAP yang layak dan mendokumentasikan proses dengan screenshot.
sumber
Saya mengalami masalah yang sama. Saya harus mengunduh sumber RADIUS dan mengompilasinya sendiri.
sumber
Anda dapat menggunakan FreeRADIUS2 (dengan OpenSSL) + EAP-TLS + WPA2-Enterprice. Di sini adalah wery ditailed BAGAIMANA . Windows XP SP3 memiliki dukungan asli untuknya serta Windows 7, Android 2.3, iPhone, Symbian. Tapi saya tidak tahu tentang kompatibilitas dengan SLDAP dalam skema seperti itu.
sumber