root
may not be directly reachable on the netroot
account는 telnet
, rsh
, 그리고 rlogin
을
통해서 다른 컴퓨터들로부터 직접 접근할 수 없어야 한다.
이유:
그렇지 않으면 root
account는 net
상에서의 crack
의 도움으로 쉽게 깨
어질 수 있다. 잠정적인 agressor는 우선 침입하기 위해서 일반적인 사용자로써 로그인하게
된다. 두 가지가 더 행해져야 한다.첫 번째로 crack은 시스템 상에 설치되어져야 하고, 두
번째로 내부로부터의 공격(attack)은 빨리 검출되어져야 한다. (Crack
은 password testing
과 cracking을 위한 프로그램이다.)
그것이 발생되었다고 하더라도, telnet의 password는 이더넷 상에서 적어도 한번은 디코드
된다. 상응하는 네트워크 프로그램을 사용해서 이더넷에 있는 다른 시스템들은 그러한 데이
터를 TCP/IP
패키지로부터 다소 쉽게 필터 할 수 있다.
이러한 보안 단계는 또한 NFS exported partitions에서도 유효하다. : /etc/exports
에 있는
옵션 root_squash
를 항상 명백하게 설정하라. 그것에 관한 보다 자세한 정보는 매뉴얼 페
이지 exports
에서 찾을 수 있다.
만약 로컬 터미널 이외에 root
를 여전히 허용한다면, 매뉴얼 페이지 login
(5) (Call: man 5
login
)를 참조하기 바란다.
.
root
의 쉘 변수 PATH
는 변수의 앞이나 뒤에 '.
'를 포함하면 안 된다. 점 '.'
는 방금 사용된 디렉토리의 abreviation이고 그 안에 쉘 스크립트와 프로그램이 포함되어
있다. 그러한 프로그램들은 그 앞에 ./
를 삽입해서 명백히 구별되어져야 한다.
Reason:
예를 들어서 일반적인 사용자가 이름 ls
를 포함하는 스크립트를 생성하면,
#!/bin/sh cd / rm -rf *
/tmp
혹은 그의 HOMEroot
는 그 자신을 완전히 시스템에 무의식적으
로 삭제할 수 있다..
가 쉘 변수 PATH
의 뒤에 반드시 있어야 할뿐만이 아니라, 에러를 입
력하고 로컬 프로그램을 무의식적으로 호출하는 것으로부터 여전히 안전하지 않다.(예를 들
어, ls
대신에 la
) 이러한 위험은 trojan horse라고 묘사되어진다.
root
root
로써 작업하는 것을 피해야만 한다. 그렇지 않으면, 시스템에 있는 중
요한 작업들이 자신에 의해서 실행되어져야만 한다.
Reason:
에러의 위험은 상당히 크고 root
는 모든 것을 할 수 있다. 정말 모든 것을 할 수
있다. 원하지 않는 것이라 할지라도 말이다. 이러한 조건 아래에서 원하지 않았던 명령들은
결과적으로 경고 없이 실행되어진다.
클라이언트로부터의 original quate는 경고로 나타난다. :
... now an accident happened to me, because I've worked as root. With the hope of getting any sound, I have typed "ls > /dev/hdb2" instead of "/dev/dsp" by mistake - unfortunately, /dev/hb2 is my root partition.Remark: /dev/hb2는 그의 root 파티션이었다. 그러나 고의적인 기쁨과 함께 깊은 연민을 가진다. ;-)