Tại sao / dev / urandom chỉ có thể đọc được bằng root kể từ Ubuntu 12.04 và làm cách nào tôi có thể sửa lỗi này?


10

Tôi đã từng làm việc với các mẫu Ubuntu 10.04 trên rất nhiều máy chủ. Kể từ khi thay đổi thành 12.04, tôi gặp vấn đề mà giờ đây tôi đã bị cô lập.

Thiết bị / dev / urandom chỉ có thể truy cập vào root.

Điều này khiến các công cụ SSL, ít nhất là trong PHP, ví dụ file_get_contents (https: // ... không thành công.

Nó cũng đã phá vỡ redmine.

Sau chmod 644, nó hoạt động tốt, nhưng nó không tồn tại khi khởi động lại.

Vì vậy, câu hỏi của tôi.

  1. tại sao lại thế này Tôi thấy không có rủi ro bảo mật bởi vì ... ý tôi là .. muốn đánh cắp một số dữ liệu ngẫu nhiên?

  2. Làm thế nào tôi có thể sửa chữa nó? Các máy chủ được phân lập và sử dụng chỉ bởi một ứng dụng, đó là lý do tại sao tôi sử dụng openvz. Tôi nghĩ về một cái gì đó giống như một kịch bản runlevel hoặc như vậy ... nhưng làm thế nào để tôi làm nó hiệu quả? Maby với dpkg hay apt?

  3. Cùng đi vor / dev / shm. trong trường hợp này tôi hoàn toàn hiểu tại sao nó không thể truy cập được, nhưng tôi cho rằng tôi có thể "sửa" nó giống như cách sửa / dev / urandom


Điều gì ls -l /dev/urandomthể hiện trước khi bạn thay đổi quyền? Bạn đã tùy chỉnh bất kỳ /etc/udev/rules.d hoặc /lib/udev/rules.dtập tin?
David Schwartz

root@idle:~# ls -l /dev/urandom crw------- 1 root root 1, 9 May 22 14:15 /dev/urandom- tôi không thiết lập bất cứ điều gì, đây là một máy chủ thuần túy, thậm chí chưa cập nhật apt-get.
Shurrican

3
Các tài liệu cụ thể nói rằng các quyền nên được 0644. Câu hỏi là - tại sao họ không?!
David Schwartz

1
FWIW, trên Chính xác mới được cài đặt của tôi, / dev / urandom là 0666. Trong quá trình cài đặt, tôi đã chọn "máy chủ openssh" làm tùy chọn vai trò duy nhất. Có lẽ một số gói trong thiết lập của bạn làm một cái gì đó ngớ ngẩn.
cjc

tôi đồng ý. quy tắc udev của tôi cũng nói nó nên được. Tôi nghĩ rằng nó có một cái gì đó để làm với ảo hóa.
Shurrican

Câu trả lời:


3

Với việc đọc quá nhiều từ udev, bạn có thể rút cạn nhóm ngẫu nhiên, dẫn đến số ngẫu nhiên có thể dự đoán được. Có lẽ đây là lý do tại sao / dev / urandom không có sẵn để đọc cho mọi người. (đã xóa vì Graeme Donaldson đúng)

Trong trường hợp bạn vẫn muốn thay đổi quyền, hãy xem các quy tắc udev chịu trách nhiệm thiết lập chế độ trên / dev / urandom, thay vì làm rối các tập lệnh init của bạn.

Trong Debian, thật dễ dàng để tìm ra quy tắc có tội:

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

Trong trường hợp của bạn, MODE chắc chắn không phải là 0666.

Thay đổi nó theo quy tắc cấu hình udev, nếu bạn muốn.

Lưu ý: http://lists.centos.org/pipermail/centos/2009-July/079134.html có thể giúp thay đổi udev.

Về cơ bản, bạn sẽ cần tạo một quy tắc trông giống như kết quả grep, ngoại trừ đó là có một chế độ chính xác và thêm nó dưới dạng một quy tắc trong /etc/udev/rules.d/ (lưu ý đến sự khác biệt có thể có trong Ubuntu và Debian !)


Nếu / dev / urandom chỉ có thể đọc được bằng root thì OpenSSH và phần mềm liên kết với OpenSSL, GnuTLS và các thư viện mã hóa khác sẽ phải chạy bằng root hoặc khởi động như root rồi bỏ quyền. Bằng cách nào đó nghe có vẻ tồi tệ hơn nhiều .
Gerald Combs

3
/ dev / urandom không dựa vào nhóm entropy. Chỉ đọc từ / dev / ngẫu nhiên gây ra sự cạn kiệt của nhóm entropy.
ThatGraemeGuy

Gerald: sshd bắt đầu như root. Ví dụ: để liên kết cổng 22 và để kiện người dùng đã đăng nhập, v.v.
asdmin

root @ redmine: ~ # dpkg -L udev | xargs grep urandom /lib/udev/rules.d/50-udev-default.rules:KERNEL=="null|zero|full|random|urandom ", MODE =" 0666 "root @ redmine: ~ # ls -lha / dev / urandom crw ------- 1 root root 1, 9 Jul 2 12:39 / dev / urandom nó thực sự trông không có cấu hình sai mà là một lỗi, tuy nhiên nó đã được sửa trong mẫu cài đặt openvz mới!
Shurrican

@ThatGraemeGuy Tôi nhận ra mình đến bữa tiệc muộn, nhưng điều đó không hoàn toàn chính xác. /dev/random chặn khi ước tính entropy thấp, trong khi /dev/urandomtiếp tục tạo ra số giả ngẫu nhiên ngay cả khi ước tính entropy thấp. Điều đó nói rằng, toàn bộ khái niệm của nhóm entropy bằng cách nào đó "hết ngẫu nhiên" là sai lệch và vô nghĩa .
Stephen Touset

1

Đối với cách bạn có thể khắc phục nó, một hỗ trợ ban nhạc tạm thời sẽ chỉ là

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

rằng tôi đã cố gắng nhưng không làm việc. bây giờ tôi đã thêm lệnh chmod vào cuối /etc/rc0.d/S30urandom ... đã hoạt động
The Shurrican

Có một số vấn đề có thể khiến /etc/rc.local không được tìm nguồn gốc chính xác trên Ubuntu - bao gồm cả sự cho phép của nó (nó phải được đánh dấu là có thể thực thi được). xem tại đây: bug.launchpad.net/ubfox/+source/sysvinit/+orms/882254
michel-slm

Nhìn có triển vọng nhưng không giúp được gì. Ngoài ra, RC.local dường như không được thực thi, tôi đã cố gắng viết một tập tin đơn giản vào tmp nhưng điều đó cũng không hoạt động. các quyền là chính xác. tôi đã cố gắng thực hiện chỉ với root, phần còn lại đọc và cả 777 ...
Shurrican

2
vì giải pháp này có khả năng dành riêng cho Ubuntu, AskUbfox có lẽ là lựa chọn tốt hơn vào thời điểm này. Tôi đang sử dụng systemd một cách hạnh phúc và /etc/rc.d/rc.local chỉ hoạt động mà không gặp trục trặc như đã làm trong phần mô tả systemV: /
michel-slm

Lưu ý rằng bạn nên chỉnh sửa /etc/rc.localtập tin. Trong trường hợp của tôi (Ubuntu 16.04), tệp đã kết thúc bằng exit 0, vì vậy nếu bạn chỉ nối thêm một dòng, nó thực sự sẽ không hoạt động.
Alexis Wilke

1

Trên thực tế, mẫu openvz ub Ubuntu 12.04 hiện đang công khai và họ đã sửa các quyền cũng như trên uraondm như trên thiết bị shm


1

Vấn đề mà udevtrigger chưa được bắt đầu. Hãy thử khởi động lại với /etc/init.d/udevtrigger restart... và nếu nó giải quyết được vấn đề như đối với tôi ... thì hãy thay đổi tệp /etc/init/udevtrigger.conf:

-     and not-container)
+     )

0

Trong RHEL: thêm quy tắc bảo mật với quyền ghi đè trong /etc/security/console.perms.d/

phải tương tự trong Ubuntu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.