Şirketimde, tüm makinelerde tutarlı bir hesap kümesine sahip olmak için LDAP kullanıyoruz ve ardından authorized_keys
tüm kullanıcılara tüm sunuculara dosya dağıtmak için bir yapılandırma yönetimi aracı kullanıyoruz (bizim durumumuzda şu anda cfengine) . Anahtar dosyalarının kendisi (diğer sistem yapılandırma bilgileriyle birlikte) bir git havuzunda tutulur, böylece anahtarların ne zaman gelip gittiğini görebiliriz. cfengine ayrıca sudoers
, LDAP dizinindeki kullanıcıları ve grupları kullanarak, her ana bilgisayarda neyin root olarak çalıştırılacağını kontrol eden bir dosyayı da dağıtır .
Üretim sunucularımızda parola doğrulaması tamamen devre dışı olduğundan, SSH anahtar yetkilendirme zorunludur. Politika, kaybolan / çalınan bir dizüstü bilgisayarın etkisini azaltmak için her bir dizüstü bilgisayar / masaüstü / ne olursa olsun ayrı bir anahtar kullanılmasını ve tüm anahtarlarda bir parola kullanılmasını teşvik eder.
Ayrıca üretim ağındaki ana makinelere erişmek için kullanılan ve bu ağın etrafında çok kısıtlayıcı güvenlik duvarı kurallarına sahip olmamızı sağlayan bir ana bilgisayar sunucumuz var. Çoğu mühendis bu şeffaflığı sağlamak için bazı özel SSH yapılandırmalarına sahiptir:
Host prod-*.example.com
User jsmith
ForwardAgent yes
ProxyCommand ssh -q bastion.example.com "nc %h %p"
Yeni bir anahtar eklemek veya eski olanı kaldırmak bu düzende biraz tören gerektirir. Yeni bir anahtar eklemek için denetim izini bırakan ve herkes tarafından görülebilen bir işlem olması arzu edilir. Bununla birlikte, genel gider nedeniyle, insanların bazen artık ihtiyaç duyulmadığında eski bir anahtarı çıkarmayı ihmal ettiğini ve bir çalışanın şirketten ayrıldığı zaman temizlikten başka gerçek bir yolu olmadığını düşünüyorum. Aynı zamanda yeni bir mühendise binerken ek bir sürtünme yaratır, çünkü yeni bir anahtar üretmeleri gerekir ve tamamen üretken olmadan önce tüm ev sahiplerine gönderilmesini isterler.
Bununla birlikte, en büyük yarar, her kullanıcı için ayrı bir kullanıcı adına sahip olmaktır; bu, ihtiyaç duyduğumuzda daha ayrıntılı erişim kontrolü yapmayı kolaylaştırır ve her kullanıcıya, denetim günlüklerinde görünen ve her birini izlemeye çalışırken gerçekten yararlı olabilecek bir kimlik verir. üretim sorunu bir sysadmin eylemine geri döndü.
"İyi bilinen" SSH anahtarları alternatif bir erişim yolu olarak kullanılabildiğinden, bu kurulum altında üretim sahiplerine karşı önlem alan otomatik sistemlere sahip olmak oldukça zordur. Şimdiye kadar bu otomatik sistemlerin kullanıcı hesaplarını sadece işlerini yapmak için ihtiyaç duydukları minimum erişime sahip olduk ve kötü niyetli bir kullanıcının (zaten üretim erişimi olan bir mühendis olmalı) aynı işlemleri yapabileceklerini kabul ettik. anonim olarak uygulamanın anahtarını kullanarak.