Ubuntu 12.04 이후 왜 / dev / urandom이 루트 만 읽을 수 있으며 어떻게“수정”할 수 있습니까?


10

많은 서버에서 우분투 10.04 템플릿으로 작업했습니다. 12.04로 변경 한 후 지금 격리 된 문제가 있습니다.

/ dev / urandom 장치는 루트에서만 액세스 할 수 있습니다.

이로 인해 적어도 PHP에서 SSL 엔진 (예 : file_get_contents (https : // ...)이 실패했습니다.

또한 레드 마인을 끊었습니다.

chmod 644 후에는 정상적으로 작동하지만 재부팅시 유지되지 않습니다.

그래서 내 질문.

  1. 왜 이런거야? 보안 위험이 없습니다 ... 왜냐하면 ... 임의의 데이터를 훔치고 싶습니까?

  2. 어떻게 "수정"할 수 있습니까? 서버는 하나의 응용 프로그램에서만 격리되어 사용되므로 openvz를 사용합니다. 나는 런레벨 스크립트와 같은 것에 대해 생각하지만 어떻게 효율적으로합니까? dpkg 또는 apt를 가진 Maby?

  3. vor / dev / shm도 마찬가지입니다. 이 경우 나는 왜 액세스 할 수 없는지를 완전히 이해하지만 / dev / urandom을 수정하는 것과 같은 방식으로 "수정"할 수 있다고 가정합니다.


ls -l /dev/urandom권한을 변경하기 전에 무엇을 표시합니까? 당신은 사용자 정의나요 어떤 /etc/udev/rules.d 또는 /lib/udev/rules.d파일을?
David Schwartz

root@idle:~# ls -l /dev/urandom crw------- 1 root root 1, 9 May 22 14:15 /dev/urandom-아무것도 설정하지 않았습니다.이 서버는 일반 버진 서버이며 아직 apt-get 업데이트가 실행되지 않았습니다.
슈리 칸

3
문서는 특별히 권한이 있어야합니다 말한다 0644. 문제는-왜 그렇지 않습니까?!
David Schwartz

1
FWIW, 새로 설치된 Precise에서 / dev / urandom은 0666입니다. 설치 중에 유일한 역할 옵션으로 "openssh server"를 선택했습니다. 아마도 당신의 설정에있는 어떤 패키지는 멍청한 짓을합니다.
cjc

동의한다. 내 udev 규칙도 있어야한다고 말합니다. 가상화와 관련이 있다고 생각합니다.
슈리 칸

답변:


3

udev를 과도하게 읽으면 임의의 풀을 비워 예측 가능한 임의의 숫자를 얻을 수 있습니다. 아마도 이것이 모든 사람이 / dev / urandom을 읽을 수없는 이유 일 것입니다. (Graeme Donaldson이 옳기 때문에 삭제됨)

여전히 권한을 변경하려면 init 스크립트를 엉망으로 만드는 대신 / dev / urandom에서 모드 설정을 담당하는 udev 규칙을 살펴보십시오.

데비안에서는 유죄 규칙을 쉽게 찾을 수 있습니다.

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

귀하의 경우, MODE는 확실히 0666이 아닙니다.

원하는 경우 udev 구성 규칙에 따라 변경하십시오.

참고 : http://lists.centos.org/pipermail/centos/2009-July/079134.html 은 udev 변경에 도움이 될 수 있습니다.

기본적으로 grep 결과처럼 보이는 규칙을 만들어야합니다. 단, 올바른 모드가 설정되어 있고 /etc/udev/rules.d/에 규칙 파일로 추가하십시오 (우분투와 데비안의 가능한 차이점에 유의하십시오) !)


/ dev / urandom을 루트 만 읽을 수있는 경우 OpenSSH 및 OpenSSL, GnuTLS 및 기타 암호화 라이브러리와 연결된 소프트웨어는 루트로 실행하거나 루트로 시작한 다음 권한을 삭제해야합니다. 어쨌든 그것은 훨씬 나쁘게 들립니다 .
제랄드 빗

3
/ dev / urandom은 엔트로피 풀에 의존하지 않습니다. / dev / random에서 읽기만하면 엔트로피 풀이 고갈됩니다.
ThatGraemeGuy 2016 년

제럴드 : sshd는 루트로 시작합니다. 예를 들어, 포트 22를 바인드하고 로그인 한 사용자에게 suid하려면
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 구성 오류가 아닌 버그처럼 보이지만 새로운 openvz 설치 템플릿에서 수정되었습니다!
슈리 칸

@ThatGraemeGuy 나는 파티에 늦었다는 것을 알고 있지만 완전히 정확하지는 않습니다. 엔트로피 추정치가 낮을 때 /dev/random 차단 하고, 엔트로피 추정치가 낮 /dev/urandom더라도 의사 난수 를 계속 생성합니다. 즉, 엔트로피 풀의 전체 개념은 어떻게 든 "임의로 실행"하는 것은 오해의 소지가 있으며 의미가 없습니다 .
Stephen Touset

1

당신이 그것을 고칠 수있는 방법에 관해서는, 임시 반창고는

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

내가 시도했지만 작동하지 않았다. 이제 chmod 명령을 /etc/rc0.d/S30urandom의 맨 아래에 추가했습니다 ... 작동했습니다
Shurrican

권한을 포함하여 /etc/rc.local이 우분투에서 제대로 제공되지 않는 문제가 있습니다 (실행 파일로 표시되어야 함). 여기 참조 : bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/882254
미셸-SLM

유망 해 보였지만 도움이되지 않습니다. 또한 rc.local이 실행되지 않는 것 같습니다. 간단한 파일을 tmp에 쓰려고 시도했지만 작동하지 않았습니다. 권한이 정확합니다. 나는 루트로만 실행하고, 나머지는 읽고 777로 시도했다 ...
Shurrican

2
솔루션은 우분투 전용이므로 AskUbuntu는 아마도이 시점에서 더 좋을 것입니다. 이 시스템 V 초기화 스크립트에서했던 것처럼 내가 행복하게 글리치없이 systemd 및 /etc/rc.d/rc.local 일 단지 작품을 사용하고 있습니다 : /
미셸-SLM

/etc/rc.local파일을 편집해야 합니다. 필자의 경우 (우분투 16.04) 파일은 종료 0으로 끝났습니다. 따라서 줄을 추가하면 실제로 작동하지 않습니다.
Alexis Wilke

1

실제로 우분투 12.04 openvz 템플릿은 이제 공개되어 있으며 shm 장치와 마찬가지로 uraondm에서도 권한을 수정했습니다.


1

udevtrigger가 시작되지 않은 문제점. /etc/init.d/udevtrigger restart... 로 다시 시작 하고 문제가 해결되면 /etc/init/udevtrigger.conf 파일을 변경하십시오.

-     and not-container)
+     )

0

RHEL에서 : /etc/security/console.perms.d/에 권한 무시로 보안 규칙 추가

우분투에서 비슷해야합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.