Otentikasi jaringan + direktori home roaming - teknologi mana yang harus saya perhatikan?

9

Saya melihat ke dalam perangkat lunak yang menyediakan pengguna dengan identitas tunggal di beberapa komputer. Artinya, pengguna harus memiliki izin yang sama di setiap komputer, dan pengguna harus memiliki akses ke semua file-nya (roaming home directory) di setiap komputer. Tampaknya ada banyak solusi untuk ide umum ini, tetapi saya mencoba menentukan yang terbaik untuk saya. Berikut adalah beberapa detail beserta persyaratannya:

  1. Jaringan mesin adalah instance Amazon EC2 yang menjalankan Ubuntu.
    • Kami mengakses mesin dengan SSH.
    • Beberapa mesin pada LAN ini mungkin memiliki kegunaan yang berbeda, tetapi saya hanya membahas mesin untuk penggunaan tertentu (menjalankan platform multi-tenancy).
  2. Sistem tidak harus memiliki jumlah mesin yang konstan.
    • Kami mungkin harus mengubah secara permanen atau sementara jumlah mesin yang berjalan. Ini adalah alasan mengapa saya mencari otentikasi / penyimpanan terpusat.
  3. Penerapan efek ini harus aman.
    • Kami tidak yakin apakah pengguna akan memiliki akses shell langsung, tetapi perangkat lunak mereka berpotensi berjalan (di bawah nama pengguna Linux yang terbatas, tentu saja) di sistem kami, yang sama baiknya dengan akses shell langsung.
    • Mari kita asumsikan bahwa perangkat lunak mereka berpotensi berbahaya demi keamanan.

Saya telah mendengar beberapa teknologi / kombinasi untuk mencapai tujuan saya, tetapi saya tidak yakin akibatnya.

  • Posting ServerFault yang lebih lama merekomendasikan NFS & NIS, meskipun kombinasi memiliki masalah keamanan menurut artikel lama ini oleh Symantec . Artikel ini menyarankan pindah ke NIS +, tetapi, karena sudah tua, artikel Wikipedia ini mengutip pernyataan yang menyarankan tren jauh dari NIS + oleh Sun. Penggantian yang disarankan adalah hal lain yang saya dengar ...
  • LDAP. Sepertinya LDAP dapat digunakan untuk menyimpan informasi pengguna di lokasi terpusat di jaringan. NFS masih perlu digunakan untuk memenuhi persyaratan 'folder home roaming', tapi saya melihat referensi mereka digunakan bersama. Karena artikel Symantec menunjukkan masalah keamanan di NIS dan NFS, apakah ada perangkat lunak untuk menggantikan NFS, atau haruskah saya memperhatikan saran artikel itu untuk menguncinya? Saya cenderung ke LDAP karena bagian mendasar lain dari arsitektur kami, RabbitMQ, memiliki plugin otentikasi / otorisasi untuk LDAP. RabbitMQ akan dapat diakses secara terbatas untuk pengguna di sistem, jadi saya ingin mengikat sistem keamanan bersama jika memungkinkan.
  • Kerberos adalah protokol otentikasi aman lain yang pernah saya dengar. Saya belajar sedikit tentang hal itu beberapa tahun yang lalu di kelas kriptografi tetapi tidak begitu mengingatnya. Saya telah melihat saran online yang dapat dikombinasikan dengan LDAP dalam beberapa cara. Apakah ini perlu? Apa risiko keamanan LDAP tanpa Kerberos? Saya juga ingat Kerberos digunakan dalam perangkat lunak lain yang dikembangkan oleh Carnegie Mellon University ...
  • Andrew File System, atau AFS. OpenAFS tersedia untuk digunakan, meskipun pengaturannya agak rumit. Di universitas saya, AFS menyediakan kedua persyaratan ... Saya dapat masuk ke mesin apa pun, dan "folder AFS" saya selalu tersedia (setidaknya ketika saya mendapatkan token AFS).

Bersamaan dengan saran untuk jalur mana saya harus melihat, apakah ada yang punya panduan yang sangat membantu? Seperti yang ditunjukkan oleh teks tebal, LDAP tampaknya menjadi pilihan terbaik, tapi saya sangat tertarik dengan detail implementasi (Keberos? NFS?) Sehubungan dengan keamanan.

Brian
sumber

Jawaban:

7

Otentikasi, otorisasi, dan informasi direktori

Ini bukan jawaban lengkap untuk pertanyaan Anda, tetapi saya pikir ini mungkin membantu menjawab pertanyaan Anda tentang NIS vs LDAP vs Kerberos.

Mulailah dengan ini , yang memberikan gambaran umum yang baik tentang perbedaan antara otentikasi dan otorisasi , yang penting untuk dipahami untuk diskusi semacam ini.

Kerberos, seperti yang Anda katakan, hanyalah sebuah protokol otentikasi. Diberikan seperangkat kredensial - misalnya, nama pengguna dan kata sandi - ini akan memberi tahu Anda apakah valid atau tidak. Ini semua yang dilakukannya.

Sebaliknya, NIS dan LDAP adalah layanan direktori. Mereka memungkinkan klien untuk menanyakan informasi tentang pengguna (apa direktori home Anda? Apa ID pengguna Anda?). Keduanya dapat digunakan sebagai sumber otentikasi dengan berbagai tingkat masalah.

NIS tidak benar-benar melakukan otentikasi apa pun untuk Anda sendiri. Alih-alih, ini mengekspos hash kata sandi ke mesin klien, dan sistem lokal Anda melakukan langkah otentikasi yang sebenarnya seperti yang akan dilakukan untuk akun lokal. Masalahnya di sini adalah bahwa siapa pun yang memiliki akun di salah satu klien NIS Anda dapat mengambil semua hash kata sandi Anda, dan kemudian melakukan serangan brute-force pada mereka di waktu luang mereka.

LDAP agak lebih aman, karena langkah otentikasi sebenarnya dilakukan di server. Anda harus memastikan bahwa Anda mengenkripsi sesi LDAP Anda dengan SSL atau TLS, jika tidak, kata sandi akan diekspos dalam teks-jelas pada kawat, di mana ia rentan terhadap paket sniffing.

Sangat umum untuk menggunakan Kerberos untuk otentikasi dan kemudian NIS atau LDAP untuk otorisasi (biasanya ini berarti "keanggotaan grup") dan informasi direktori. Saya berpendapat bahwa NIS, setelah Anda menghapus hash kata sandi (dengan memindahkan otentikasi Anda ke Kerberos) tidak benar-benar kurang aman daripada LDAP, dan memiliki keuntungan karena tersedia "di luar kotak" pada setiap distribusi Linux modern.

LDAP, di sisi lain, umumnya jauh lebih dapat diperluas, skala lebih baik jika Anda memiliki banyak pengguna (atau objek direktori lainnya), menyediakan kueri yang kaya, dan umumnya lebih mudah dikelola. LDAP juga didukung secara native di berbagai aplikasi, sementara NIS memiliki hubungan incest yang aneh dengan sistem operasi inti yang mungkin tidak diinginkan.

Jika Anda membuat sesuatu dari awal, saya sarankan Kerberos untuk otentikasi dan LDAP untuk layanan direktori Anda.

Sistem File

NFS memiliki keuntungan besar: Anda sudah memilikinya, ini digunakan secara luas, dan umumnya stabil. Ada dua kerugian utama untuk NFS:

  • Ini tidak skala dengan baik untuk paralel i / o. Jika Anda memiliki banyak mesin yang menghantam sistem file yang sama, server NFS tunggal Anda mungkin mengalami kesulitan untuk mengikutinya. Inilah sebabnya mengapa cluster yang lebih besar biasanya menggunakan sistem file cluster (seperti Lustre, GlusterFS, GPFS, GFS, dll) yang telah dirancang untuk mendukung paralel i / o.

  • Ini memiliki model keamanan yang buruk. Secara umum, keputusan keamanan NFS didasarkan sepenuhnya pada ID pengguna numerik Anda. Jika Anda memiliki root pada sistem yang dapat me-mount sistem file NFS, Anda memiliki akses ke semua file - karena Anda selalu dapat membuat pengguna lokal dengan ID pengguna yang sesuai. Ini tidak sepenuhnya benar, karena baik NFSv3 dan NFSv4 memiliki berbagai tingkat dukungan untuk otentikasi Kerberos, tetapi saya belum pernah bertemu orang yang menggunakan ini ... jadi jarak tempuh Anda mungkin berbeda.

Untuk penyebaran kecil, kebanyakan orang hanya menggunakan NFS meskipun memiliki keterbatasan.

Ada berbagai solusi lain - sistem file cluster yang saya sebutkan di atas, serta AFS dan lainnya - tetapi sebagian besar dari ini akan memerlukan beberapa pekerjaan pada bagian Anda untuk membuatnya berjalan pada distribusi apa pun yang telah Anda pilih. Saya telah mendengar hal-hal baik tentang GlusterFS baru-baru ini, jadi jika saya mencari alternatif NFS yang mungkin menjadi tempat pertama saya melihat.

larsks
sumber
Terima kasih sudah membereskan hal-hal itu. Saya sebenarnya memiliki dasar yang baik dalam otorisasi vs otentikasi; Saya hanya tidak yakin dengan kemampuan masing-masing perangkat lunak. Bagian penyimpanan juga penting; apakah Anda tahu bagaimana model keamanan Kerberos / LDAP mengikat ke NFS?
Brian
Saya telah memperbarui jawabannya dengan beberapa informasi tentang NFS.
larsks
Dalam hal ini saya tidak melihat alasan untuk dibatasi pada satu server NFS, meskipun satu mungkin cukup, dan lebih banyak lagi dapat ditambahkan nanti. help.ubuntu.com/community/AutofsLDAP
84104
Saya telah mencoba membaca panduan AutofsLDAP dan juga yang lainnya. Entah itu ditulis dengan buruk atau ketinggalan zaman, karena hasil saya berbeda, dan saya tidak dapat melanjutkan melampaui titik tertentu. :(
Brian
Anda mungkin ingin membuka pertanyaan baru dengan detail yang sesuai.
larsks
0

Ini adalah jawaban parsial.

NIS / NIS +
Jangan gunakan NIS. Gunakan LDAP dengan skema nis.

OpenLDAP (alias slapd di Ubuntu)
Pastikan untuk memasang ACL dan SSF yang tepat (faktor kekuatan keamanan).
Sangat mudah untuk mengirim kata sandi dengan jelas jika Anda tidak berhati-hati.
http://www.openldap.org/doc/

NFS
NFS bukan terenkripsi.
Dapat dibungkus dengan ssl dengan tipu daya.
Tanpa Kerberos bergantung pada ip_addr untuk auth.
Dengan Kerberos mungkin saja SASL digunakan untuk mengenkripsi semuanya.

Kerberos
Membutuhkan OpenLDAP untuk memiliki otentikasi pass-through SASL untuk otentikasi LDAP. (Tidak sulit.)
Harus menggunakan entri DNS. (Tidak wajib, tapi sangat berguna).
GSSAPI dapat digunakan sebagai pengganti ssh-keys. (Dapat hidup berdampingan.)
Mesin KDC harus terpisah dari mesin klien Anda.

OpenAFS
Dienkripsi dengan DES. (Tidak dianggap aman.)
Membutuhkan kerberos atau authserver lawas sendiri.
Memiliki ACL sistem file sendiri.

84104
sumber