Ağ kimlik doğrulaması + dolaşım ana dizini - hangi teknolojiyi kullanmaya bakmalıyım?


9

Bir kullanıcıya birden fazla bilgisayarda tek bir kimlik sağlayan yazılımları arıyorum. Yani, kullanıcının her bilgisayarda aynı izinlere sahip olması ve kullanıcının her bilgisayardaki tüm dosyalarına (dolaşım ana dizini) erişimi olması gerekir. Bu genel fikir için birçok çözüm var gibi görünüyor, ama benim için en iyisini bulmaya çalışıyorum. Gereksinimlerle birlikte bazı ayrıntılar:

  1. Makine ağı Ubuntu'yu çalıştıran Amazon EC2 bulut sunucularıdır.
    • Makinelere SSH ile erişiyoruz.
    • Bu LAN'daki bazı makinelerin farklı kullanımları olabilir, ancak yalnızca belirli bir kullanım için makineleri tartışıyorum (çok kiracılı bir platform çalıştırıyor).
  2. Sistemin sabit sayıda makineye sahip olması gerekmez.
    • Çalışan makinelerin miktarını kalıcı veya geçici olarak değiştirmek zorunda kalabiliriz. Merkezi kimlik doğrulama / depolama alanına bakmamın nedeni budur.
  3. Bu etkinin uygulanması güvenli bir etki olmalıdır.
    • Kullanıcıların doğrudan kabuk erişimine sahip olup olmayacağından emin değiliz, ancak yazılımları sistemimizde potansiyel olarak doğrudan kabuk erişimi kadar iyi çalışacaktır (elbette kısıtlı Linux kullanıcı adları altında).
    • Yazılımlarının güvenlik uğruna potansiyel olarak kötü amaçlı olabileceğini varsayalım.

Hedefime ulaşmak için çeşitli teknolojiler / kombinasyonlar duydum, ama her birinin sonuçlarından emin değilim.

  • Symantec'in bu eski makalesine göre kombinasyonda güvenlik sorunları olsa da, eski bir ServerFault gönderisi NFS ve NIS'yi önerdi . Makale NIS + 'ya geçmeyi önermekle birlikte, eski olduğu için bu Wikipedia makalesinde Sun'ın NIS +' dan uzak bir eğilimi öneren ifadeler yer almaktadır. Önerilen yedek duyduğum başka bir şeydir ...
  • LDAP. LDAP, kullanıcı bilgilerini ağdaki merkezi bir yere kaydetmek için kullanılabilecek gibi görünüyor. NFS 'dolaşım ana klasörü' gereksinimini karşılamak için hala kullanılmalıdır, ancak bunların referanslarının birlikte kullanıldığını görüyorum. Symantec makalesi, hem NIS hem de NFS'deki güvenlik sorunlarını gösterdiğinden, NFS'nin yerini alacak bir yazılım var mı yoksa makalenin kilitlenmesi için önerilerine dikkat etmeli miyim? Ben LDAP eğilimi gösteren ediyorum bizim mimarisi, RabbitMQ, bir başka temel parça LDAP için eklentisi bir kimlik doğrulama / yetkilendirme çünkü. RabbitMQ, sistemdeki kullanıcılar tarafından kısıtlı bir şekilde erişilebilir olacaktır, bu yüzden mümkünse güvenlik sistemlerini birbirine bağlamak istiyorum.
  • Kerberos duyduğum bir başka güvenli kimlik doğrulama protokolü. Birkaç yıl önce bir kriptografi dersinde biraz öğrendim ama çok fazla hatırlamıyorum. Çevrimiçi olarak LDAP ile çeşitli şekillerde birleştirilebileceğine dair öneriler gördüm . Bu gerekli mi? Kerberos olmadan LDAP'nin güvenlik riskleri nelerdir? Kerberos'un Carnegie Mellon Üniversitesi tarafından geliştirilen başka bir yazılımda kullanıldığını da hatırlıyorum ...
  • Andrew Dosya Sistemi veya AFS. OpenAFS, kurulumu biraz karmaşık gibi görünse de kullanılabilir. Üniversitemde, AFS her iki gereksinimi de sağlıyor ... Herhangi bir makineye giriş yapabilirim ve "AFS klasörüm" her zaman kullanılabilir (en azından bir AFS jetonu aldığımda).

Hangi yola bakmam gerektiğine dair önerilerin yanı sıra, özellikle yararlı olan herhangi bir rehber var mı? Kalın metnin işaret ettiği gibi, LDAP en iyi seçim gibi görünüyor, ancak özellikle güvenlikle ilgili uygulama ayrıntılarıyla (Keberos? NFS?) İlgileniyorum.

Yanıtlar:


7

Kimlik doğrulama, yetkilendirme ve dizin bilgileri

Bu sorunuza tam bir cevap değil, ancak NIS vs. LDAP vs. Kerberos hakkındaki sorularınızı yanıtlamaya yardımcı olabileceğini düşündüm.

İle başlayın , bu arasındaki farkın iyi bir genel bakış sağlayan, kimlik doğrulama ve yetkilendirme tartışma için bu tür anlamak önemlidir.

Kerberos, dediğin gibi, sadece bir kimlik doğrulama protokolü. Bir dizi kimlik bilgisi (ör. Bir kullanıcı adı ve şifre) verildiğinde, bunların geçerli olup olmadıklarını size bildirir. Tüm yaptığı bu.

Buna karşılık, hem NIS hem de LDAP dizin hizmetleridir. Bir istemcinin kullanıcılar hakkındaki bilgiler için sorgulamasına izin verir (ana dizininiz nedir? Kullanıcı kimliğiniz nedir?). Her ikisi de değişen derecelerde sorunlara sahip kimlik doğrulama kaynakları olarak kullanılabilir.

NIS sizin için tek başına herhangi bir kimlik doğrulaması gerçekleştirmez. Bunun yerine, istemci makinelere bir parola karması sunar ve yerel sisteminiz gerçek kimlik doğrulama adımını yerel hesaplarda olduğu gibi gerçekleştirir. Buradaki sorun, NIS istemcilerinizden birinde hesabı olan herkesin tüm parola karmalarını alıp boş zamanlarında onlara kaba kuvvet saldırısı yapabilmesidir.

Kimlik doğrulama adımı gerçekten sunucuda gerçekleştirildiğinden LDAP biraz daha güvenlidir. LDAP oturumlarınızı SSL veya TLS ile şifrelediğinizden emin olmanız gerekir, aksi takdirde parola, paket koklamaya karşı savunmasız olduğu kabloda açık metin olarak gösterilir.

Kimlik doğrulama için Kerberos'u ve ardından yetkilendirme için NIS veya LDAP'yi (genellikle "grup üyeliği" anlamına gelir) ve dizin bilgilerini kullanmak çok yaygındır. NIS, şifre karmalarını kaldırdıktan sonra (kimlik doğrulamanızı Kerberos'a taşıyarak) LDAP'den gerçekten daha az güvenli olmadığını ve herhangi bir modern Linux dağıtımında "kutudan çıkma" avantajı olduğunu iddia ediyorum.

Öte yandan, LDAP genellikle çok daha genişletilebilir, çok sayıda kullanıcınız (veya diğer dizin nesneleri) varsa, daha iyi ölçeklenir, zengin sorgular sağlar ve genellikle daha yönetilebilir. LDAP ayrıca çeşitli uygulamalarda yerel olarak desteklenirken, NIS'in çekirdek işletim sistemi ile istenmeyen bir tuhaf ensest ilişkisi vardır.

Sıfırdan bir şeyler inşa ediyorsanız, kimlik doğrulama için Kerberos ve dizin hizmetiniz için LDAP öneririm.

Dosya sistemleri

NFS'nin büyük bir avantajı var: zaten var, yaygın olarak konuşlandırılmış ve genellikle kararlıdır. NFS'nin iki ana dezavantajı vardır:

  • Paralel i / o için iyi ölçeklenmez. Aynı dosya sistemine isabet eden çok sayıda makineniz varsa, tek NFS sunucunuzun sürdürülmesi zor olabilir. Bu nedenle daha büyük kümeler, paralel paralel g / Ç'yi desteklemek üzere tasarlanmış bir küme dosya sistemi (Luster, GlusterFS, GPFS, GFS vb.) Kullanır.

  • Kötü bir güvenlik modeli var. Genel olarak, NFS güvenlik kararları tamamen sayısal kullanıcı kimliğinize dayanır. NFS dosya sistemini bağlayabilen bir sistemde kökünüz varsa, tüm dosyalara erişebilirsiniz - çünkü her zaman uygun kullanıcı kimliğine sahip bir yerel kullanıcı oluşturabilirsiniz. Bu kesinlikle doğru değil , çünkü hem NFSv3 hem de NFSv4, Kerberos kimlik doğrulaması için çeşitli destek düzeylerine sahip, ancak bunu kullanan herhangi biriyle henüz tanışmadım ... böylece milajınız değişebilir.

Küçük dağıtımlar için, çoğu kişi sınırlamalarına rağmen NFS'yi kullanır.

Çeşitli başka çözümler de vardır - yukarıda bahsettiğim küme dosya sistemleri, AFS ve diğerleri - ancak bunların çoğu, seçtiğiniz herhangi bir dağıtımda çalışabilmeleri için sizin tarafınızdan bazı çalışmalar yapılmasını gerektirecektir. Son zamanlarda GlusterFS hakkında iyi şeyler duydum, bu yüzden ilk baktığım yer olabilecek bir NFS alternatifi arıyorsanız.


Bu şeyleri temizlediğiniz için teşekkürler. Aslında yetkilendirmeye karşı kimlik doğrulamasında iyi bir temelim var; Her yazılımın yeteneklerinden emin değilim. Depolama kısmı da önemlidir; / LDAP güvenlik modelinin NFS ile nasıl bağlandığını biliyor musunuz?
Brian

Cevabı NFS hakkında bazı bilgilerle güncelledim.
larsks

Bu durumda, tek bir NFS sunucusuyla sınırlı olmak için hiçbir neden göremiyorum, ancak bir tane yeterli olabilir ve daha sonra eklenebilir. help.ubuntu.com/community/AutofsLDAP
84104

Bu AutofsLDAP rehberinin yanı sıra diğerlerini de denedim. Sonuçlarım farklı olduğu için ya kötü yazılmış ya da güncel değil ve belirli bir noktanın ötesine geçemiyorum. :(
Brian

Uygun ayrıntılarla yeni bir soru açmak isteyebilirsiniz.
larsks

0

Bu kısmi bir cevaptır.

NIS / NIS +
NIS kullanmayın. Nis şemasında LDAP kullanın.

OpenLDAP (diğer adıyla Ubuntu üzerinde)
Uygun ACL'leri ve SSF'yi (güvenlik gücü faktörleri) ayarladığınızdan emin olun.
Dikkatli değilseniz şifreleri açık bir şekilde göndermek çok kolaydır.
http://www.openldap.org/doc/

NFS
NFS şifreli değil.
Bazı hile ile ssl içine sarılabilir.
Kerberos olmadan auth için ip_addr dayanır.
Kerberos ile SASL'nin her şeyi şifrelemek için kullanılması mümkündür .

Kerberos
LDAP kimlik doğrulaması için SASL doğrudan kimlik doğrulaması için OpenLDAP gerektirir. (Zor değil.)
DNS girişlerini kullanmalıdır. (Gerekli değil, ama çok yararlı).
Ssh tuşları yerine GSSAPI kullanılabilir. (Birlikte bulunabilir.)
KDC makineleri istemci makinelerinizden ayrı olmalıdır.


DES ile şifrelenmiş OpenAFS . (Güvenli sayılmaz.)
Kerberos veya kendi eski kimlik doğrulayıcısı gerekir.
Kendi dosya sistemi ACL'leri var.

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.