Paylaşılan bir kullanıcı olarak giriş yapmak kötü bir alışkanlık mıdır?


35

Bir makinede oturum açmak isteyen kişi başına yeni bir Ubuntu kullanıcısı oluşturmak yerine, sistem yöneticileri her kullanıcının ssh anahtarını .ssh/authorized_keysve herkesin ssh( örneğin ) ubuntu@hostveya makineye eklediği kuruluşlarda çalıştım ec2-user@host. (Bu arada, bunu laboratuar ortamında paylaşılan Mac minislerde de uyguladım.) Bu kabul edilmiş bir uygulama mı yoksa bir anti-kalıp mı?

Söz konusu ana bilgisayarlar çoğunlukla test için kullanılır, ancak genellikle kullanıcı başına yapılandırma gerektiren ve şu anda genel bir git kullanılarak yapılan git işlemlerini oluşturma ve itme gibi belirli bir kullanıcı tarafından yapıldığı gibi izlenen eylemler de vardır. kullanıcı.


23
Birçok kişi poli-aşk ilişkileri sorun var, diğerleri bunu mutlaka bir paylaşmak için "kötü bir alışkanlık" olduğunu sanmıyorum yani ... ah, Nevermind, kullanıcı anlamına geliyordu gayet onları idare hesabı .
UmutsuzN00b

Awww, birisi clickbait başlığını düzenledi .. :(
Burgi

Yanıtlar:


42

Evet kötü bir alışkanlık. Kötü niyetli kimsenin çevrede olmadığı (veya olamayacağı) ve hiç kimsenin hata yapmadığı temel varsayımına dayanır. Paylaşılan bir hesaba sahip olmak, hesap verebilirlik olmadan ve herhangi bir sınırlama olmadan olayların gerçekleşmesini önemsiz kılar - bir şeyi kıran bir kullanıcı herkes için onu kırar.

Bu kullanıcı paylaşım düzeninin nedeni sadece yeni hesapların yaratılmasının ve yapılandırmanın paylaşılmasının idari maliyetini azaltmaksa, belki de yöneticiler biraz zaman, Ansible , Chef , Puppet veya Salt gibi kullanıcı yaratma gibi şeyler yapan bir otomasyon sistemine yatırım yapmalıdır. Birden fazla makinedeki hesaplar son derece basit.


4
Kötü bile değil ve aynı zamanda yetersiz bile değil. Ne zaman hiçbir şey yapamayacağım işi yapar, ben de bu hesapta yapılmıştır hatırlanan şey olurdu kabul edemeyiz.
djechlin

Güvenli veri ilkeleri: Bütünlük Gizlilik İlkesi Kullanılabilirlik Hesap Verebilirliği. Kelime
DeveloperWeeks

7

Buna başlamak beni şok etmiyor ve çok güvenli bir ortamda çalışıyorum. Herkesin kendi kullanıcısı ve makinesi ve ssh anahtarı vardır ve gerektiğinde bir günlük geçişi aracılığıyla ssh, bir sunucu üzerinde çalışmak için root veya başka bir kullanıcı olarak ssh ederiz. Yaptığımız her şey ssh anahtarının sahibi tarafından yapıldığı günlüğe kaydedilir, bu nedenle hesap verebilirlik tamamdır.

Alternatif ne olurdu? Kökten değil, bir çok kullanıcı belli bir kullanıcı olarak yapılmalıdır. Sudo? Bu, çok sınırlı bazı görevler için uygun, ancak makineyi sysadmining için değil.

Bununla birlikte, son paragrafınızdan emin değilim, birisinin genel bir kullanıcı için gitmeye zorlayabileceği anlamına mı geliyorsunuz? Bu hesap verebilirliği bozar ve hesap verebilirliği bozmak kötüdür. Giriş yaptığımız makineden git yapıyoruz ve ssh anahtarımız ile git'e doğrulıyoruz ...

Doğrulama, yetkilendirme ve muhasebe (AAA) klasik ifadedir: ssh anahtarınızla doğrulanırsınız, genel kullanıcının yapabileceği her şeyi yapmaya yetkilidirsiniz, çünkü anahtarınız yetkili_keylerdedir ve ne yapmanız gerektiğini hesaplamanız gerekir. gerçek sonra incelenebilir.


3
Yani genel kullanıcı, git repo'yu değiştirmeye yetkili bir çeşit kimlik doğrulamasına (ssh key?) Sahiptir. Bu gerçekten iyi değil. Sadece bu taahhüdün sorumluluğunu kırdığı için değil, aynı zamanda herhangi bir kişi bu anahtarı kopyalayıp başka bir yerden kullanabileceği için. Bu tür bir sorun yaşadığımda, kodu veya farklılığı yerel makineme kopyalarım ve oradan taahhüt ederim.
Yasa

2
sudoBir makinenin genel yönetimi için neden tam olarak kabul edilebilir değil ?
Blacklight Shining

4
"Son derece güvenli bir ortamda" root olarak ssh?
xaa

@BlacklightShining Herhangi bir şey yapabilmek zorundaysanız (doğranmış, chmod rasgele dosyaları, sunucuları kurun, dosya sistemlerini kurun, kullanıcı olarak sshing yapıp sudo bash yaparak kazanılan hiçbir şey yoktur.) ve / veya her şeyi ssh'd ssh anahtarının sahibi olan uzaktaki bir sunucuya kaydediniz.
Yasa29

1
@ xaa Evet yaparım ve bununla ilgili bir sorun göremiyorum. Yazdığım her şey diğer makinelere kaydediliyor. "Kök olarak çalışmayın", makine, yapmak isteyebileceğiniz her şeyin kök olmanızı gerektirdiği bir sunucu olduğunda tamamen yararsızdır.
Yasa 29,

3

Sistemin kullanım durumuna açıkça bağlıdır. Zaman zaman test etmek için sistem ise, benim için iyi. Bizim de böyle sistemlerimiz var. Şirketin herhangi bir kimlik yönetimi (LDAP, IPA) yoksa, rasgele sistemde herhangi bir uzaktan kumanda olmadan yeni bir kullanıcı oluşturmak oldukça zordur.

Ancak, birinin hata yaptığı durumlarda tüm şirketi çalışamayacak hale getirdiği günlük işler için iyi bir fikir değildir.


Tam olarak, bir dizin servisine sahip değilseniz veya bulunamıyorsa, binlerce hesap oluşturmak ve yönetmek pratik değildir.
Jim B,

LDAP kullanmasanız bile, SSH erişimine (veya Windows'ta Powershell'e) sahip olma olasılığınız hala yüksektir. Tüm bu hesaplar için (aynı zamanda şifreleri paylaşmıyorsanız) ve bir sürü başka ayar için ana makinenizde onay_artları dosyasını yönetmek için bir yönteme ihtiyacınız olacak. Neden bir tür konfigürasyon yönetimi kullanmadığınızı merak etmeliyim (örn. Kukla, Şef, Ansible) Eğer bu kadar çok kullanıcı veya sunucunuz varsa. Bu yükü ortadan kaldırır ve karşılığında kontrol, hesap verebilirlik ve denetlenebilirlik sunar.
Martijn Heemels

3

Tüm bu cevaplar, başlı başına önemli ve gerçek bir mesele olan hesap verebilirlik endişesini ele alır, ancak paylaşılan bir hesap kullanmak, diğer kullanıcılara çok da ince olmayan saldırılar sağlar:

Saldırganın ssh, girilen şifreyi PATHkaydeden ve paylaşılan kullanıcı için koyduğu kötü amaçlı bir komut dosyası oluşturduğunu düşünün (bu kolayca yapılır). Şimdi bu makineye paylaşılan kullanıcıyla oturum açan ve sshbaşka bir yere karar veren bir sonraki kişinin (bu kez kişisel, paylaşılmayan bir hesabıyla) kötü bir sürpriz olabilir.

Temel olarak, bilgisayarda paylaşılan bir hesap kullanmak halka açık yüzme havuzunda ayak banyosundan içmek gibidir.


1

Genel olarak, bir hesabı paylaşmak aşağıdaki nedenlerden dolayı kötü bir fikirdir:

  1. Bu kullanıcı için yapılan her ayar giriş yapan herkesi etkiler. (Promt, aliases, ...)
    1. Kimin ne yaptığını bulma olasılığını kaybedersiniz (hesap verebilirlik)
    2. Hesabın yapılandırmasındaki bir hata (örneğin yanlışlıkla ssh kayının silinmesi), bu kullanıcı hesabını kullanan herkesi etkiler (bu örnekte kilitlenir).

Ve kesinlikle daha da olumsuz yanları olduğundan eminim ... Ama daha fazla içine almak istemiyorum.

Mesele şu ki, tüm yöneticilerin erişebilmesi gereken belirli bir kullanıcı hesabı altında yürütülen bir servisi yönetmek için bir hesabı paylaşmanız gerekebilir.

Böyle bir kurulumda, bu hesabı giriş yapmak için paylaşma olanağına sahipsiniz (yukarıdaki kararlar için bunu yapmamayı tercih ederim) ya da ayrı ayrı giriş yapın ve kullanıcıyı paylaşılan hesaba geçirin (bunu öneririm).

Denetim araçları hala kimin aynı şeyi paylaştığını fakat aynı hesabı paylaştığını izlemenizi sağlar.

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.