Neden SSH üzerinden root girişi yapmak o kadar kötü ki herkes devre dışı bırakılmasını tavsiye ediyor?


83

İnternetteki herkes SSH üzerinden kök girişini devre dışı bırakmayı tavsiye ediyor , çünkü sistemde kötü bir uygulama ve bir güvenlik açığı var ama kimse bunun neden böyle olduğunu açıklamıyor.

Kök girişini etkinleştirmede bu kadar tehlikeli olan şey (özellikle de devre dışı bırakılmış şifre girişi ile)?

Parola doğrulamasına izin verilmesi durumunda X sembolü kullanıcı adı ile Y sembolü şifresi veya kök kullanıcı adı ve X + Y sembolü şifresi arasındaki güvenlik açısından fark nedir?


2
Çoğu sistemde kök kullanıcı sahibi olmak kendi başına kötüdür, söz konusu kullanıcı için SSH girişini etkinleştirerek yalnız bırakın!
Suman

1
Ssh üzerinden kök girişi ehealth-aussie.blogspot.com/2012/01/… için gereklidir . Her şey bir uzlaşmadır.
emory

2
Umm ... bu soruyu güvenliğe taşıyalım mı? O zamandan beri güvenlikten daha çok eğilimlidir * nix sistemleri.
Braiam

Kök devre dışı bırakmak için idari bir neden var. Ticari sunucularda daima erişimi kişi tarafından kontrol etmek istersiniz. Kök asla bir insan değildir. Bazı kullanıcıların root erişimine izin verseniz bile, onları kendi kullanıcıları üzerinden giriş yapmaya zorlamalısınız ve daha sonra su -veya sudo -ionların gerçek girişlerini kaydedilebilsin. Bu, bir bireye tüm erişimin iptal edilmesini çok daha basit hale getirir, böylece kök şifresi olsa bile onunla hiçbir şey yapamazlar.
Philip Couling,

Yanıtlar:


62

Neden SSH üzerinden kök kötü

Bilgisayarınızda SSH üzerinden oturum açmaya çalışan birçok bot var. Bu botlar aşağıdaki şekilde çalışır.

Gibi bir şey yürütürler ssh root@$IPve sonra "root" veya "password123" gibi standart şifreleri denerler. Bunu, doğru şifreyi bulana kadar mümkün olduğu kadar yaparlar. Dünya çapında erişilebilir bir sunucuda, günlük dosyalarınızda çok sayıda günlük girişi görebilirsiniz. Dakikada 20 veya daha fazla gidebilirim.

Saldırganların şansı (veya yeterli zamanı) olduğunda ve bir şifre bulduğunda, kök erişimine sahip olurlardı ve bu başın belada olduğunu gösterir.

Ancak, SSH üzerinden oturum açmak için root erişimine izin vermediğinizde, bot ilk önce bir kullanıcı adı ve ardından eşleşen şifreyi tahmin etmelidir. Diyelim ki makul şifreler listesinde Ngirdiler var ve makul kullanıcılar listesinin büyük girdiler olduğunu söyleyelim M. Botun N*Mtest etmek için bir giriş seti vardır , bu yüzden bot için sadece bir büyüklük setinin bulunduğu kök durumla karşılaştırıldığında biraz zorlaşır N.

Bazı kimseler bu Mekin güvenlik açısından gerçek bir kazanç olmadığını söyleyecek ve bunun sadece küçük bir güvenlik geliştirmesi olduğuna katılıyorum. Ancak bunu daha çok kendileri için güvenli olmayan bu küçük asma kilitler olarak görüyorum, ancak birçok insanı kolay erişime engelliyor. Elbette bu, sadece makinenizin tor veya apache gibi başka standart kullanıcı isimleri yoksa geçerlidir.

Köke izin vermemenin en iyi nedeni, kökün makinede standart bir kullanıcının yapabileceğinden çok daha fazla hasar vermesidir. Böylece, aptalca bir şansla parolanızı bulurlarsa, standart bir kullanıcı hesabıyla tüm sistem kaybedilir, ancak o kullanıcının dosyalarını (hala çok kötü olan) yönetebilirsiniz.

Yorumlarda normal bir kullanıcının kullanım hakkına sahip olabileceği sudove bu kullanıcının şifresinin tahmin edilebileceği tahmin edildiğinde sistemin de tamamen kaybedildiği belirtildi.

Özetle, bir saldırganın hangi kullanıcının şifresini alacağı önemli olmadığını söyleyebilirim. Bir şifre buldukları zaman sisteme artık güvenemezsiniz. Saldırgan, bu kullanıcının haklarını komut yürütmek sudoiçin kullanabilir, saldırgan sisteminizde bir zayıflıktan da yararlanabilir ve kök ayrıcalıkları kazanabilir. Bir saldırgan sisteminize erişebiliyorsa, artık ona güvenemezsiniz.

Burada hatırlanması gereken şey, sisteminizde SSH üzerinden oturum açmasına izin verilen her kullanıcının ek bir zayıflık olduğu. Kök devre dışı bırakarak, bir belirgin zayıflığı ortadan kaldırırsınız.

SSH üzerindeki şifreler neden kötü

Şifreleri devre dışı bırakma nedeni gerçekten basittir.

  • Kullanıcılar kötü şifreler seçerler!

Parolaları denemek fikri, yalnızca parolalar tahmin edilebilir olduğunda işe yarar. Böylece, bir kullanıcı "pw123" şifresine sahip olduğunda, sisteminiz güvensiz hale gelir. İnsanların seçtiği şifrelerle ilgili bir başka sorun, şifrelerinin asla rastgele olmamasıdır, çünkü bunun hatırlanması zor olacaktır.

Ayrıca, kullanıcıların Facebook’a veya Gmail hesaplarına ve sunucunuza giriş yapmak için kullandıkları şifrelerini tekrar kullanma eğilimindedir. Böylece bir hacker bu kullanıcının Facebook hesap şifresini aldığında sunucunuza girebilir. Kullanıcı kimlik avı yoluyla kolayca kaybedebilir veya Facebook sunucusu saldırıya uğrayabilir.

Ancak, giriş yapmak için bir sertifika kullandığınızda, kullanıcı şifresini seçmez. Sertifika, 1024 Bit'den 4096 Bit'e kadar (~ 128 - 512 karakter şifresi) çok uzun olan rastgele bir dizeye dayanır. Ek olarak, bu sertifika yalnızca sunucunuza giriş yapmak için oradadır ve hiçbir dış hizmetle kullanılmaz.

Bağlantılar

http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html

Bu yazı yorumlardan geliyor ve ben biraz daha belirgin bir pozisyon vermek istedim, çünkü SSH ile giriş yapmaya çalışan botnetler konusunda biraz daha derinlere iniyor, günlük dosyalarının nasıl göründüğünü ve Onları durdurmak için ne yapılabilir. Peter Hansteen tarafından yazılmıştır.


10
İyi bir özeti. Ancak ssh özel anahtarları da çalınabilir.
Faheem Mitha

16
@ Faheem Mitha Evet ama çalınması, botların yaptığı tahmin edilenden farklı. Ayrıca özel anahtarınız yalnızca ellerinizde (veya sabit diskinizde) ve Stack Exchange veya Google gibi üçüncü tarafların elinde değildir.
Raphael Ahrens,

2
+1. Bu cevap aslında basitçe kaynamış olabilir N*M > N. Çoğu * nix ana bilgisayarının bir rootkullanıcısı olduğundan, kökün doğrudan uzaktaki bir ana bilgisayardan oturum açmasına izin verirseniz, test matrisinin boyutu denenecek şifre sayısıdır; doğrudan kök girişlerine izin vermeme durumunda, olası kombinasyonların sayısı test etmek istediğiniz kullanıcı adı sayısıyla çarpılır (ve geçerli kullanıcı adlarını test edeceğinizin garantisi de yoktur!).
CVn

3
@ MichaelKjörling Kullanıcı adının saklanmasının zor olmadığını, çünkü normalde kullanıcı adının sır olmadığını ve muhtemelen kimseden oraya ulaşmasını isteyebileceğimi eklerim. Ancak Botlara ve basit denemelere karşı yardımcı olur.
Raphael Ahrens,

2
@Herkesi, eğer kullanıcı adı X sembollerine ve Y şifresine sahipse , denemek için # of X length words* # of Y length wordsolası kombinasyonlar vardır . Kullanıcı adı sabittir (örneğin root) fakat şifre X + Y semboller uzunsa, # of X+Y length wordsolası şifreler vardır. Ve # of X+Y length words=# of X length words * # of Y length words
skarap

10

Bunlar, doğrudan kök girişine izin verilmemesi için nedenlerden bazıları olabilir.

  • Bruteforce girişimleri. Doğrudan kök oturum açma başarılı bruteforce saldırısında daha fazla hasara neden olabilir.
  • "Parolasız" SSH tuşlarında yapılan yanlış yapılandırma (insan hatası olur), makinenizi internete maruz bırakabilir

Ancak bu buzdağının sadece TAVSİYESİ. Gibi diğer kısıtlamaları ve yapılandırmaları yapılandırmanız gerekir:

  • Varsayılan bağlantı noktasını değiştirin (22)
  • Güçlü Parolalar ve Parola
  • Ana Bilgisayar Tabanlı Kimlik Doğrulamayı Devre Dışı Bırak
  • İzin verilen kullanıcıların bir listesini oluşturun
  • Boşta Kalma Zaman Aşımını Yapılandırma
  • SSHv2 protokolünü zorla
  • Boş Şifreleri Devre Dışı Bırak
  • Bruteforce'a karşı bir ölçü olarak fail2ban kullanın
  • Her şeyi kaydet
  • SSH Anahtarlarını Yapılandırın ve sadece .ssh / approved_keys adresindeki ortak anahtarlara güvenin

5
"Doğrudan root girişi başarılı bir bruteforce saldırısında daha fazla hasara yol açabilir." Varsayılan sudoayarlarla karşılaştırılmadıysa, gerçekten değil . Asıl katil, herhangi bir ana bilgisayarda geçerli olduğuna güvenebileceğiniz herhangi bir kullanıcı adınız olmadığında çarpan etkisidir.
CVn

@ MichaelKjörling - Evet, tabi ki karışık sudo PermitRoot kadar zararlı olabilir;)


1
Limanı değiştirmek aslında kendi içinde birçok senaryoda zararlı. Ve bu gizlilik de güvenlikten başka bir şey değildir.
0xC0000022L

Kaba kuvvet saldırıları sadece SSH için değil, makinedeki herhangi bir şey için de bir sorun olduğundan, fail2ban'dan bahsettiği için +1. Bir makineyi pratik amaçlar için "ele geçirmek" için herhangi bir yere kök veya sistem izni almanıza gerek yoktur (özel verilere erişin, dosya dökümü olarak kullanın, kimlik avı için kullanın vb.).
Eric Grange

8

Kök kullanıcı adı ve X + Y sembol şifresinin kriptografik olarak en azından bir X sembol kullanıcı adı + Y sembol şifresi kadar güvenli olduğu konusunda haklısın. Aslında daha da güvenli, çünkü insanların isimlerinin tahmin edilmesi kolay (botlar sadece john, mike, bill, vb. Deneyebilirler. Btw: kökleri denemek yerine birçoğu böyle yapar). Hedefe yönelik bir saldırı olsaydı, özellikle de şansınız kalmaz, çünkü birisi bir şirketin sunucusunu kırmak isterse, sysadmin'in adını (nickini) bulmak sorun olmaz.

Saldırganın sysadmin ssh girişleri için kullandığı hesaba erişir erişmez (ve ardından görevlerini kullanır suveya sudoyapar), o kullanıcının sysadmin yazdığı sırada sysadmin yazdığında saldırganın kök parolasını gönderecek bir programla etkileyebilir. saati.

Bu var herhangi (veya olmalıdır) bakış güvenlik açısından kötü uygulamalar dikkate kök girişlerinde türü. "Normal" kullanıcı girişi -> su / sudo zinciri bir denetim izi ekler. Basit İngilizce: Kimin ne yaptığını bulmak mümkün kılar.

Özel bir durum, yalnızca bir kişinin kök erişimine sahip olan olabilir. Bu durumda ek "normal" kullanıcı kullanmak fazla bir değer katmaz (en azından bu değeri hiç göremedim). Ama yine de - yine de sistemde basit bir kullanıcıya sahip olmanız gerekiyor (idari olmayan işler için, wget çalıştırma, vs. ;-)).


4

Kök girişini etkinleştirmede bu kadar tehlikeli olan şey (özellikle de devre dışı bırakılmış şifre girişi ile)?

Saldırganın (bot / botnet / hacker) yalnızca şifreyi tahmin etmesi gerekir ve internete açıksanız sisteminiz üzerinde tam kontrol sahibi olur. Ayrıca, sistem hesaplarından hiçbiri (www-data, proxy vb.) Aynı nedenlerle SSH üzerinden giriş yapamaz.

Parola girişini devre dışı bıraktıysanız (örneğin, genel anahtar kullanarak), özel anahtara sahip olanın sisteminiz üzerinde tam kontrol sahibi olduğunu göz önünde bulundurun. Neden bir kullanıcı ile ortak anahtar kullanmanın aşağıda daha iyi olduğunu görün.

Parola doğrulamasına izin verilmesi durumunda X sembolü kullanıcı adı ile Y sembolü şifresi veya kök kullanıcı adı ve X + Y sembolü şifresi arasındaki güvenlik açısından fark nedir?

Ekstra kullanıcı adı şu tarihten beri bir güvenlik katmanı ekleyebilir: a) saldırganın hem çifti hem de kullanıcı adını bilmesi gerekir; b) Saldırganın sisteminizi ihlal etmesi durumunda, saldırgan için bir miktar nüans ekleyen ayrıcalıklı bir hesaba hemen erişimi olmaz.

Bu durumda, genel anahtar ayrıca bir artıdır, çünkü:

  1. Saldırganın ortak anahtarınıza ihtiyacı var
  2. Saldırganın daha yüksek ayrıcalıklar elde etmek için şifreye (veya kimlik doğrulama yöntemine) ihtiyacı var

1
Kullandığım şifrelerin çoğu, yaklaşık 20 rasgele alfanümerik karakterden daha az (set [A-Za-z0-9] artı birkaç özel karakter). Bu tür 20 karakter (40 karakterden 20 karakter uzunluğunda), 10 ^ 32 kombinasyon sırasını verir. 128 bit entropi 10 ^ 38 düzeyindedir. Her şey dikkate alındığında büyük bir fark yok ve SSH sunucusu, istediği gibi herhangi bir fiyat sınırlaması uygulamakta serbest, bu durumda çevrimdışı bir kaba kuvvet saldırısı yapıyormuşsunuz gibi değil. 128 bitlik bir anahtar kadar hatırlanması zor olanlarla yaşayabiliyorsanız, şifrelerde yanlış bir şey yoktur.
CVn

@michael shh ... menzil vermeyin, şimdi hackerlar 20 karakterlik sıradaki gökkuşağı tablolarını kullanmaları gerektiğini biliyorlar mı?
Braiam

6
@Braiam Rainbow tabloları, yalnızca saldırganın çevrimdışı arama yapmak için karma değerlerine erişimi varsa yararlıdır. Burada, saldırganın doğrulamak için yalnızca sunucu yanıtı vardır, bu da muhtemelen sadece birçok denemeyle sınırlı - ve çok daha yavaştır.
Peter,

@Peter yükseldi, hem sözlük hem de karmaşayı karıştırdım, ancak her durumda OP neden zayıf veya boş şifreler kullanmamasını istedi, cadı saçma, ben de saçma durumlarla geldim. Üzgünüm, bu şekilde yorumlanmadım ve FUD olarak alındım.
Braiam

2
Bazı 1.8 * 10 ^ 35 parolaları denemek isterseniz (ve bu, yalnızca 40 kümesinden 18-22 rasgele karakterler aralığı içindir ve kümenin dışındaki hangi karakterleri bilmiyorsunuz [A-Za-z0- 9] Kullanıyorum), neredeyse eğlenceli dedim. Bu yaklaşık 117.1 bit entropi eşdeğeri (2 ^ 117.1 ~ 1.78 * 10 ^ 35) ve @Peter gibi, büyük olasılıkla bir çevrimiçi saldırı gerçekleştirmeniz gerekir . Tüm bu şifrelerin saklanması (sıkıştırmaya başvurmadan) kabaca 3,6 * 10 ^ 36 bayt veya 3 * 10 ^ 24 TiB'ye ihtiyaç duyulur (ve eğer bu rakam birkaç büyüklük sırasına göre yanlışsa, kimin umurunda? ). Anahtar kelime rastgele .
CVn

1

Güvenlik önlemlerini aldığınız sürece tamamen kötü değil. Örnek olarak, CSF'yi (Sunucu Güvenlik Duvarı Yapılandır) yükleyebilir ve izin verilen başarısızlık denemelerinin sayısını ayarlayabilirsiniz, bu nedenle eğer biri denerse 5'in üzerinde başarısızlık denemesi yapalım? Yani en iyi cevaplayıcının ilk kısmı hiç sorun olmayacak. Bu bana birçok kez oldu ve neyse ki tüm tanıtım yapanlar kalıcı olarak engellendi. Bir sunucu için, sunucuyu yöneten tek kişi sizseniz, ancak elbette çok fazla sistem yöneticisi varsa veya bir kuruluşta çalışıyorsanız, elbette kullanmayın. kök, köken. Ayrıca bir masaüstü bilgisayar için, çok fazla yazılım kullandığınızdan beri bir güvenlik riski olduğundan başka bir hesap kullanmak daha iyidir, ancak bir sunucuda t Güvenmediğiniz rastgele bir yazılımı kullanmayın, onları mümkün olduğunca düşük tuttuğunuzdan emin olun. Sonuç olarak, Hayır: Bir sunucuyu doğru yönetmeyi biliyorsanız, gerçekten zararlı değildir.

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.