/ Dev / urandom neden sadece Ubuntu 12.04'ten beri kök tarafından okunabilir ve nasıl "düzeltebilirim"?


10

Bir çok sunucuda Ubuntu 10.04 şablonlarıyla çalışırdım. 12.04 olarak değiştirdiğimden beri şimdi izole ettiğim problemlerim var.

/ Dev / urandom aygıtına yalnızca root üzerinden erişilebilir.

Bu, SSL motorlarının, en azından PHP'de, örneğin file_get_contents (https: // ... başarısız olmasına neden oldu).

Ayrıca redmin kırdı.

Bir chmod 644 sonra iyi çalışıyor, ama yeniden başlatma üzerine kalmaz.

Benim sorum.

  1. bu neden? Güvenlik riski görmüyorum çünkü ... yani ... rastgele veriler çalmak ister misin?

  2. Nasıl "düzeltebilirim"? Sunucular izole ve sadece bir uygulama tarafından kullanılır, bu yüzden openvz kullanıyorum. Ben bir çalışma seviyesi komut dosyası gibi bir şey düşünüyorum ... ama nasıl verimli bir şekilde yapabilirim? Dpkg veya apt ile Maby?

  3. Aynı şey vor / dev / shm için de geçerlidir. Bu durumda tamamen neden erişilebilir olmadığını anlıyorum, ama ben / dev / urandom düzeltmek için aynı şekilde "düzeltmek" varsayalım


ls -l /dev/urandomİzinleri değiştirmeden önce ne gösterilir? Herhangi bir dosyayı /etc/udev/rules.dveya /lib/udev/rules.ddosyayı özelleştirdiniz mi?
David Schwartz

root@idle:~# ls -l /dev/urandom crw------- 1 root root 1, 9 May 22 14:15 /dev/urandom- Ben bir şey ayarlamadı, bu düz bir bakire sunucu, hatta apt-get güncelleme henüz koştu.
Shurrican

3
Dokümantasyon özellikle izinleri olması gerektiğini söylüyor 0644. Soru şu - neden değiller ?!
David Schwartz

1
FWIW, yeni kurulan Hassas, / dev / urandom üzerinde 0666 olduğunu. Yükleme sırasında, tek rol seçeneği olarak "openssh sunucusu" seçti. Belki kurulumunuzdaki bazı paketler aptalca bir şey yapar.
cjc

Katılıyorum. benim udev kurallarım da olması gerektiğini söylüyor. sanallaştırma ile ilgili bir şey olduğunu düşünüyorum.
Shurrican

Yanıtlar:


3

Udev'den aşırı okuma ile, rastgele havuzu boşaltarak tahmin edilebilir rastgele sayılar elde edebilirsiniz. Muhtemelen / dev / urandom'un herkes tarafından okunamamasının nedeni budur. (Graeme Donaldson haklı olduğu için silindi)

Yine de izni değiştirmek isterseniz, init komut dosyalarınızı karıştırmak yerine / dev / urandom'da modları ayarlamaktan sorumlu udev kurallarına bakın.

Debian altında suçlu kuralını bulmak kolaydır:

$ dpkg -L udev | xargs grep urandom
/lib/udev/rules.d/91-permissions.rules:KERNEL=="urandom", MODE="0666"

Sizin durumunuzda, MODE kesinlikle 0666 değildir.

İsterseniz udev yapılandırma kurallarına göre değiştirin.

Not: http://lists.centos.org/pipermail/centos/2009-July/079134.html udev'in değiştirilmesine yardımcı olabilir.

Temel olarak grep sonucuna benzeyen bir kural oluşturmanız gerekir, ancak bunun doğru bir mod ayarlanmış olması ve /etc/udev/rules.d/ içinde bir kural olarak eklemeniz gerekir (Ubuntu ve Debian'daki olası farklılıklara dikkat edin) !)


/ Dev / urandom yalnızca root tarafından okunabiliyorsa OpenSSH ve OpenSSL, GnuTLS ve diğer şifreleme kitaplıklarına bağlanan yazılımın root olarak çalışması veya root olarak başlatılması ve ardından ayrıcalıkların bırakılması gerekir. Her nasılsa bu çok daha kötü geliyor .
Gerald Combs

3
/ dev / urandom entropi havuzuna güvenmez. Sadece / dev / random'dan gelen okumalar entropi havuzunun tükenmesine neden olur.
ThatGraemeGuy

Gerald: sshd kök olarak başlar. Örneğin, 22 numaralı bağlantı noktasını bağlamak ve oturum açmış olan kullanıcıya, vb.
Göstermek için

kök @ redmine: ~ # dpkg -L udev | xargs grep urandom /lib/udev/rules.d/50-udev-default.rules:KERNEL=="null|zero|full|random|urandom ", MODE =" 0666 "kök @ redmine: ~ # ls -lha / dev / urandom crw ------- 1 root root 1, 9 Jul 2 12:39 / dev / urandom gerçekten yanlış bir konfigürasyon değil bir hata gibi görünüyor, ancak yeni openvz kurulum şablonunda düzeltildi!
Shurrican

@ThatGraemeGuy Partiye geç kaldığımı anlıyorum, ama bu tamamen doğru değil. entropi tahmini düşük olduğunda /dev/random bloklar , entropi tahmini düşük /dev/urandomolsa bile psödondom sayıları üretmeye devam eder. Bununla birlikte, entropi havuzunun tüm konsepti bir şekilde "rastlantısallık azalıyor" yanıltıcı ve anlamsızdır .
Stephen Touset

1

Nasıl düzeltebileceğinize gelince, geçici bir bant yardımı sadece

cat "chmod 666 /dev/urandom" >> /etc/rc.local

denedim ama işe yaramadı. şimdi chmod komutunu sadece /etc/rc0.d/S30urandom'un altına ekledim
Shurrican

/Etc/rc.local dosyasının Ubuntu üzerinde düzgün bir şekilde kaynaklanmamasına neden olabilecek bazı sorunlar vardır - izni de (yürütülebilir olarak işaretlenmesi gerekir). buraya bakın: bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/882254
michel-slm

umut verici görünüyordu ama yardımcı olmuyor. Ayrıca rc.local idam gibi görünmüyor, ben tmp için basit bir dosya yazmaya çalıştım ama bu da işe yaramadı. izinler doğrudur. i sadece kök için yürütmek, dinlenme okumak ve ayrıca 777 ile çalıştı ...
Shurrican

2
çözüm muhtemelen Ubuntu'ya özgü olduğundan, AskUbuntu muhtemelen bu noktada daha iyi bir bahis. Ben mutlulukla systemd kullanıyorum ve /etc/rc.d/rc.local sadece systemV initscripts altında olduğu gibi bir aksaklık olmadan çalışır: /
michel-slm 15

/etc/rc.localDosyayı düzenlemeniz gerektiğini unutmayın . Benim durumumda (Ubuntu 16.04), dosya çıkış 0 ile sona erdi, bu yüzden sadece bir satır eklerseniz, gerçekten işe yaramaz.
Alexis Wilke

1

aslında ubuntu 12.04 openvz şablonu şimdi herkese açık ve shm cihazında olduğu gibi uraondm'da da izinleri düzeltti


1

Udevtrigger'in başlatılmadığı sorun. /etc/init.d/udevtrigger restart... ile yeniden başlatmayı deneyin ve sorunu benim için olduğu gibi çözerse ... /etc/init/udevtrigger.conf dosyasını değiştirin:

-     and not-container)
+     )

0

RHEL'de: /etc/security/console.perms.d/ içinde izin geçersiz kılmalara sahip güvenlik kuralları ekleyin

Ubuntu'da benzer olmalı

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.