SSH anahtarları için merkezi yönetim sistemi?


27

SSH girişlerinin anahtar tabanlı yönetimine geçmek istiyoruz ve dünya genelindeki erişim anahtarlarını merkezi olarak yönetmemize izin verecek herhangi bir anahtar yönetim sistemi olup olmadığını merak ediyoruz.

Sistem ideal olarak müşteri başına anahtar verilmesine ve gerektiğinde bunları iptal ederek sunucu makine anahtarlarını anında güncellemesine izin vermelidir.

Ticari ya da açık kaynaklı böyle bir sistemi bilen var mı?

NOT: Açıklığa kavuşturmak için, oldukça fazla miktarda bulut sunucusu (EC2 benzeri) ve az miktarda hizmet kullanıcısı için temel yönetime ihtiyacımız var. Aşağıda LDAP + yamasının önerdiği yol, bunun yolunda olabileceğini düşünüyorum.


7
"Özel anahtarlar ve bulut" un "içki iç ve araba kullan" gibi olduğunu düşünen sadece ben miyim? Her ikisi de ayrı ayrı eğlenir ama asla birlikte olmaz.
mailq

1
"Bulut" muhtemelen yanlış bir kelimedir - istedikleri şey merkezi bir kimlik doğrulama ve dünya çapında tutarlılık gibi geliyor.
voretaq7

Merhaba. Kesinlikle - aradığımız şey bu.
SyRenity

Bazı müşterilerim hibrit ortamlarda bu sorunla mücadele ediyorum. OPenLDAP veya merkezi örneği bir bulut dağıtımında nerede tutacağınız sorusu da var? Her şeyi webmin'i bir anahtar yönetim aracı olarak kullanıyorum ve anahtarları düğümlerle senkronize etmek için bir şef yemek kitabı kullanıyorum.
Tom H

Eğer (bkz aradığınızı Userify kapakları serverfault.com/questions/647797/... )
Jamieson Becker

Yanıtlar:


8

Bunu yapmanın birçok yolu var. LDAP anahtar deposuna birkaç kez değinildi ve ben de yaptım ve çalıştığı kadar çalıştı. LDAP kendi öğrenim merakını da beraberinde getiriyor.

Kimlik doğrulama yöneticileri gibi basit şeyler için minimum dış ağ bağımlılığı olan basit, güçlü sunucuların hayranıyım, bu yüzden çok daha güçlü bir SSH anahtar dağıtım stratejisine yaslandım - konfigürasyon yönetim sistemiyle ilgileniyorum. Herkesin ortak anahtarı, yapılandırma yönetim sisteminde tutulur ve kişinin giriş yapabilmesi için ihtiyaç duyduğu her yerde, anahtarları eklenir. Yapılandırma sistemi ayrıca belirtilmeyen anahtarları kaldırmayı da bilir; bu nedenle, birisi ayrıldığında veya anahtar değiştiğinde, anahtar yapılandırmasını kaldırmanın basit bir meselesidir ve sonraki yapılandırma sistemi çalıştırıldığında anahtar kaldırılır.


Bu yaklaşım kesinlikle iyi bir yaklaşım ve Womble'ın işaret ettiği gibi, LDAP kapalıyken sunucuların çalışır durumda ve çalışır durumda (ve erişilebilir) olması avantajına sahip - LDAP destekli her sistem (söylemeliyim gerekir ) anahtarları Womble'ın tarif ettiği şekilde dışarı itilen en az bir kullanıcı. Dezavantajı, kullanıcıları yetkilendirmek için bir yapılandırma çalıştırması yapmanız gerektiğidir. Yalnızca birkaç yetkili kullanıcıyla "acil durum hesabı" için sorun değil. Çok sayıda hesap için daha büyük sorun :)
voretaq7

1
Zaten kütle config çalışmalarını tetiklemek için bir yolun olması gerekiyor, bu yüzden bir hesap değişikliği için bunu yapmak çok zor olmamalı.
womble

Maalesef, ne yazık ki iş ihtiyaçları / zihniyetleri yok: Paranoya birçok yerde (mayın dahil), yapılandırmanın
zorlanabileceği

1
Yani sadece bir gün boyunca bir yapılandırma zorla koyamazsınız çünkü bir iş günü için şeyler kırık bırakmak için mutluyuz? Sadece yaygın olması, aptal olmadığı anlamına gelmez.
womble

2
Merhaba. Yani bunun için kukla kullanmak iyi bir fikir mi?
SyRenity

23

Anahtar çiftleri kullanıcı tarafından üretilmelidir.

Kullanıcı özel yarısını korur - asla görmemelisiniz. Birisinin özel anahtarını okuyabileceğiniz / kullanabileceğiniz bir formda kullanıyorsanız, güvenliği yanlış yapıyorsunuz demektir.

Genel yarısı size (ne tür bir mekanizma ile olursa olsun: Web formu, e-posta, bana bir CD'ye ver) istediğiniz şekilde merkezileştirilmek üzere verilir. Bazı yerler ortak anahtarları LDAP’de saklar. Diğerleri authorized_keysdağıtım sistemlerini kullanarak dosyaları dışarı iter .


Ortamımda kabuk erişimine ihtiyaç duyan kullanıcılar bana genel anahtarlarını veriyor. Bu anahtarlar LDAP sistemimize eklenir ve sshdher kullanıcının LDAP Genel Anahtar düzeltme eki ile kimliğini doğrulaması için listelenen ortak anahtarlara / anahtarlara başvurur .
Birisinin ek bir anahtar eklemesi veya mevcut bir anahtarı iptal etmesi gerektiğinde yöneticiye bildirir ve biz ilgileniriz. Sonunda ölçeklenirken, insanların kendi ortak anahtarlarını döndürmelerini sağlayan bir sistem uygulayacağım.

Sitelerimizin her birinde, ustamızla LDAP çoğaltmasıyla senkronize edilen ve verileri her yerde tutarlı (ve erişilebilir) tutan bir çift LDAP sunucusu vardır.


Açıkladığım her şey açık kaynak kodlu bir yazılımla yapılabilir. Aynı şeyi yapan ticari ürünler de var.
Mevcut seçenekleri daha ayrıntılı araştırmanız ve hangisinin ortamınıza en uygun olduğuna karar vermeniz gerekir. Başka (daha spesifik) sorularınız varsa, muhtemelen daha faydalı olabiliriz.


Yani, temel olarak, LDAP altyapısını, LDAP ile çalışacak yamalı OpenSSH'yi kullanmanızı öneriyor musunuz? Bu üretimde ne kadar iyi ölçekleniyor? Çok sayıda makineyi destekleyebilir mi? Sadece az miktarda servis kullanıcısını desteklememiz gerekir.
SyRenity

1
@SyRenity: LDAP çoğaltmayı ve kümelemeyi destekler, böylece çok iyi ölçeklenir
Hubert

@SyRenity Teorik olarak sınırsız sayıda yerde sınırsız sayıda makineyi destekleyebilirsiniz ("Gerçekten Büyük Active Directory dağıtımı" deyin - AD temelde bazı şık aksesuarlarla LDAP'dir). Hizmet kullanıcıları için önerim, onları ortamınızda standartlaştırmak /etc/passwdve standartlaştırılmış /etc/groupdosyaları ve dosyaları dışarıya çekmek (makinelerin normal şekilde çalışmasını sağlar ve LDAP mevcut olmasa bile ilgili hizmetlerin başlatılmasını / çalıştırılmasını sağlar)
voretaq7

@ voretaq7 Yani servis kullanıcıları konfigürasyon yönetimi ile LDAP'den ayrı olarak yönetilecek?
SyRenity

@SyRenity evet - ve LDAP kapalıysa bunları kullanan servisler için daha da önemlisi mevcut . Hataları planla yoksa felaketlerle karşılaşırsın.
voretaq7

9

Anahtarlıklar her yerde değil, her kullanıcının bilgisayarında üretilmelidir. Özel anahtarlar bir nedenden dolayı böyle adlandırılır.

Bu, kullanıcıların ortak anahtarlarının bir tür merkezi merkezi deposu için bir kullanım durumu görebildiğimi söyledi. Bir seçenek, açık anahtarların OpenLDAP'ta saklanması olabilir - OpenSSH'nin son sürümleri anahtarları LDAP dışından okuyabilir.


2
LDAP Genel Anahtarı şu anda OpenSSH ana hattında mı? Yalnızca LPK yamasını biliyorum (ki bunun için kefil olabilirim - harika çalışıyor). Özel anahtarları özel tutmak için ayrıca +1.
voretaq7

@ voretaq7 Sanırım ana hatta birleştirildiğini duydum, ancak henüz kendimi doğrulamadım. Ev dizinlerini NFS üzerinden paylaşıyoruz, bu bizim için kilit dağıtımımıza dikkat ediyor.
AÇAA

+1 ben bunu bilmiyordum. Bu bana bir sürü bela kazandıracak. Şimdi bakmam gereken şeyler listemde.
Tom H


1

Userify [1] (çalıştığım yer), Universal Key Manager [2], SSH Key Box [3] gibi birçok büyük ticari ve açık kaynaklı çözüm var. Bu, ihtiyaçlarınızın ne olduğuna ve ne olduğunuza bağlı Merkezi olmayan işlemlerde yönetimi merkezileştiren bir şey aramak (bu nedenle, sunucularınız oturum açmak için merkezi bir otoriteye güvenmiyorlar ... bu durumda, sunucularınızdan herhangi birine giriş yapamayabilirsiniz. LDAP sunucusu kapalı!)

  1. https://userify.com

  2. https://www.ssh.com/products/universal-ssh-key-manager/

  3. https://www.sshkeybox.com

Ayrıca bu Eğimli tartışma konusuna bakın:

https://www.slant.co/topics/8010/~managers-for-ssh-keys

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.