Kök sahip olmayan komut dosyalarını /etc/init.d içinde tutmak ne kadar güvenlidir?


15

Bir daemon olarak çalışan ve /etc/init.d içinde bir komut dosyası tarafından denetlenen bir uygulama var.
Bazen bu komut dosyalarının başlatma / denetiminin bazı parametrelerini değiştirmeniz ve ardından daemon'u yeniden başlatmamız gerekir. Bu komut dosyaları yalnızca kök kullanıcı için yazma iznine sahiptir, bu nedenle bu komut dosyalarını düzenlerken kök ayrıcalıklarına ihtiyacım var.

Düşündüğüm şey, root olmayan bir kullanıcıyı bu betiklerin sahibi yapmam gerektiğidir. Bu şekilde yalnızca root ve özel bir kullanıcı bu komut dosyalarını düzenleyebilir.

Kök olmayan bazı dosyaların /etc/init.d dizinleri altında tutulması kabul edilebilir mi?
Yoksa sistemin doğal düzenini bozan saçma mı?


1
kötü fikir, yapma.
Ocak'ta ChuckCottrill

Yanıtlar:


17

Hemen akla gelen şey, kısıtlı bir kullanıcının önyüklemede bir şeyleri kök olarak çalıştırabilmesidir ;

  • Diğer hesapların ayrıcalıklarını artırmak istiyor
  • Bir hileli hizmet barındırmak için sunucunuzu kullanmak istiyorum
  • Sunucu yeniden başlatılırsa IRC / Spam botlarını başlatmak istiyorum
  • Bir anne gemisine "Tekrar kalktım" demek için ping atmak ve belki yeni bir yük indirmek
  • İzlerini temizlemek istiyorum
  • ... diğer kötülükler.

Bu, kısıtlı kullanıcınızın bir şekilde ele geçirilmesi durumunda, belki de başka bir hizmet (http / etc) yoluyla mümkündür. Çoğu saldırganlar hızla bir çalışacak lsveya findher şeyin / 'üzerine/etc bu tür olasılıkların var olup olmadığını görmek için koşacaktır, kullandıkları çeşitli dillerde yazılmış mermiler bunu basitleştirir.

Uzaktan sunucu yönetmek ise çoğunlukla SSH üzerinden, hatta olmayacağını çok iyi bir şans var bakın init betiği incelemek sürece, o şey kullanıyor olmalıdır (gerçi açılışta çıktı görmezsiniz çünkü bu bir şeylerin değişip değişmediğini veya sürüm kontrol yazılımı vb.

Kesinlikle bunun olmasını istemezsiniz, root'un gerçekten bu init betiğine sahip olması gerekir. Senaryoyu güncellemek için yeterince uygun olması için geliştirme kullanıcısını sudoers listesine ekleyebilirsiniz, ancak init.d'deki herhangi bir şeye ayrıcalıklı yazma erişimine izin vermemenizi tavsiye ederim.


5
tl; dr : Bunu yaparsanız, root olmayan kullanıcı bir sonraki önyüklemedeki root kadar iyidir. Piyonlanmak için yalvarıyorsunuz.
Warren Young

9

Tim Post tarafından yapılan çok iyi noktalara ek olarak, birden çok kişinin bir sunucuya değişiklik yapabilmesi gereken bir kurulum için, bir tür yapılandırma yönetim sistemi kullanmayı düşünmelisiniz.

Örneğin, kukla, şef veya cfengine kullanıyorsanız, ilgili kullanıcıların dosyaları yerel olarak düzenlemesini sağlayabilir ve ardından yapılandırma yönetimi ile değişiklikleri dışarı aktarabilirsiniz. Bunun nasıl kurulacağı elbette hangi sistemi kullandığınıza bağlı olarak değişecektir, ancak düzgün bir şekilde ayarlandığında, bir yapılandırma dosyasının önceki bir sürümüne geri dönmeyi kolaylaştıran sürümleme yazılımı içerecektir (not: ne zaman , eğer !) birisi hata yaptı. Ayrıca yapılandırmayı ayrı bir test sistemine vb. Kopyalamanızı da kolaylaştıracaktır.


Hem komut dosyalarınızı hem de yapılandırma veri dosyalarınızı bir yapılandırma / sürüm yönetim sisteminde sürümlenmiş olarak tutmak, bir sistemin güvenliğinin ihlal edilip edilemeyeceğini düşünmeden bile mükemmel bir fikirdir.
Ocak'ta ChuckCottrill

Gerçekten de, bunu birkaç büyüklükle ilgili hataları düzeltmek için kullandım, bu da güvenliği aşılmış bir sistemi düzeltmek için kullandım.
Jenny D

Çok teşekkür ederim . Çünkü burada çoğunlukla özel bir kullanıcı sudo oldukça çalışıyor bu yüzden bu uygulamayı kullanır ve bu uzun zamandır ne yapıyordum. AMA ben gerçekten yapılandırmaları için çok ilgili sürüm yönetim sistemi duyuyorum. Sevgili Jenny bana bunu yapmak için herhangi bir reddetme sağlayabilir VEYA HERHANGİ BİR ÖRNEK !! :).
Akaks

1
Tam kukla / şef / cfengine vb yolu ile gitmek istemiyorsanız, şahsen www.perforce.com kullanırsınız. Kuklanın varlığından önceki bir süre içinde ~ 100 sunucu için kullandık ve değerlendirme lisanslarının bir sunucu için yeterli olduğunu belirledik. Ana avantaj, VC'd dosyalarını bir alt yolla sınırlı olmak yerine dosya sistemindeki herhangi bir yere teslim edebilmenizdir. Diğer seçenekler joeyh.name/code/etckeeper veya dosyaları doğru dizine taşımak için komut dosyalarıyla birlikte herhangi bir VC kullanmaktır.
Jenny D
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.