텔넷에서 다른 계정사용자의 홈디렉토리 접근 막기
페이지 정보
작성자 MintState 댓글 0건 조회 17,847회 작성일 08-11-10 13:04본문
텔넷에서 다른 계정사용자의 홈디렉토리 접근 막기
여러 사람들에게 무료 계정을 주면서 텔넷에 접근권한을 주다보니... 다른 계정자들의 디렉토리를 마음껏 훔쳐볼수가 있더군요...
해결하기 위해 이는 root 관리자가 해야할 작업입니다.
보통 사용자 계정은 /home 디렉토리에 생기죠...
이 /home 디렉토리 퍼미션을 우선 711로 설정합니다.
701로 설정할경우 그룹으로 프로젝트를 진행할 경우 문제가 발생할수 있으므로 꼭 711로 설정하여 주시구요.
만약 /home/account 라는 디렉토리가 있으며 이곳의 디렉토리를 웹상에서 표현하면서 텔넷 접속한 사람에게 정보를 노출시키지 않을려면.....
/home/account 디렉토리의 user 소유권을 nobody 로 바꾸어주시구요. group 소유권은 그대로 둡니다....^^(하위 디렉토리는 그대로 둡니다.)
권한은 170 으로 주시면 됩니다....^^
nobody 에게는 실행권한을 주고 account에 소속된 그룹이게는 읽고 쓰고 지우고 실행하는 권한을 주는것입니다...^^
이렇게 하시면 텔넷접속하여서 단순명령으로 이동 또는 파일을 열어보는것을 막을 수 있읍니다. (이렇게 하시면 /home/account 하위디렉토리에 퍼미션이755 되어있는 디렉토리도 접근이 불가능합니다.)
즉 지금까지의 설명을 표현하자면...
[root@akachan /]#chmod 711 home
[root@akachan /]#cd home
[root@akachan /home]#chown nobody:account account
[root@akachan /home]#chmod 170 account
[root@akachan /home]#ls -l account
d--xrwx--- 6 nobody account 4096 May......... account
이 됩니다.
물론 완벽하다는 말은 아닙니다.
텔넷에서 파일의 접근을 막았다는 것이지 웹상에서 php 언어로 접근하는것을 막았다는 것은 아닙니다...^^
php 또한 nobody 로 접근하며 디렉토리의 권한과는 상관없이 파일권한에 읽기 권한이 있으면 복사를 해와버리지요.^^
이걸 막는 방법은 php.ini 파일에서 safe_mode=off 로 되어 있는 부분을 on 으로 바꾸어 주시면 됩니다.
그럼 기본적인 부분은 차단 하였지요...... 하지만 여기서 파일을 열어볼 수 없다?
그건 아니지요 물론 CGI 와 Perl 이 있지요... 말 그대로 CGI 와 Perl 은 불가능한게 없는 언어 입니다...^^
이걸 막는 방법은 아주 없습니다. 왜냐면 리눅스라는게 어셈블리어와 C 언어로 만들어진 언어이기 때문입니다.
C 또는 Perl 로 접근하는 것을 막는 방법은........
아쉽게도 계정 사용자들은 C와 Perl을 사용하지 못하게 하는 방법밖에.... 오직 root 만 사용하게 해야 되겠지요...^^
ps. 답변글입니다... 어떻게 해야 하는 것은... 잘 판단하여서...
오히려 nobody를 적용한다는것이 보안에 문제가 생길수 있겠네요.
제 의견을 말씀드리고자 한다면
/home에 701로 주고 사용자를 발급할시 모든 소유권을 하나의 그룹명으로 지정하여 계정발급시 chmod 701 /home/username 으로 지정하면
그룹퍼미션이 0이라서 접근이 불가능하지요. 물론 서브디렉토리까지말입니다.
/home에 701로 주는것은 ls 와 같이 모든 명령어의 퍼미션을 막는 수단입니다.
어차피 루트를 제외한 모든 사용자는 같은 gid이니깐요.
이렇게 한다면 굳이 safe_mode=on을 할필요가 없겠지요. :)
여러 사람들에게 무료 계정을 주면서 텔넷에 접근권한을 주다보니... 다른 계정자들의 디렉토리를 마음껏 훔쳐볼수가 있더군요...
해결하기 위해 이는 root 관리자가 해야할 작업입니다.
보통 사용자 계정은 /home 디렉토리에 생기죠...
이 /home 디렉토리 퍼미션을 우선 711로 설정합니다.
701로 설정할경우 그룹으로 프로젝트를 진행할 경우 문제가 발생할수 있으므로 꼭 711로 설정하여 주시구요.
만약 /home/account 라는 디렉토리가 있으며 이곳의 디렉토리를 웹상에서 표현하면서 텔넷 접속한 사람에게 정보를 노출시키지 않을려면.....
/home/account 디렉토리의 user 소유권을 nobody 로 바꾸어주시구요. group 소유권은 그대로 둡니다....^^(하위 디렉토리는 그대로 둡니다.)
권한은 170 으로 주시면 됩니다....^^
nobody 에게는 실행권한을 주고 account에 소속된 그룹이게는 읽고 쓰고 지우고 실행하는 권한을 주는것입니다...^^
이렇게 하시면 텔넷접속하여서 단순명령으로 이동 또는 파일을 열어보는것을 막을 수 있읍니다. (이렇게 하시면 /home/account 하위디렉토리에 퍼미션이755 되어있는 디렉토리도 접근이 불가능합니다.)
즉 지금까지의 설명을 표현하자면...
[root@akachan /]#chmod 711 home
[root@akachan /]#cd home
[root@akachan /home]#chown nobody:account account
[root@akachan /home]#chmod 170 account
[root@akachan /home]#ls -l account
d--xrwx--- 6 nobody account 4096 May......... account
이 됩니다.
물론 완벽하다는 말은 아닙니다.
텔넷에서 파일의 접근을 막았다는 것이지 웹상에서 php 언어로 접근하는것을 막았다는 것은 아닙니다...^^
php 또한 nobody 로 접근하며 디렉토리의 권한과는 상관없이 파일권한에 읽기 권한이 있으면 복사를 해와버리지요.^^
이걸 막는 방법은 php.ini 파일에서 safe_mode=off 로 되어 있는 부분을 on 으로 바꾸어 주시면 됩니다.
그럼 기본적인 부분은 차단 하였지요...... 하지만 여기서 파일을 열어볼 수 없다?
그건 아니지요 물론 CGI 와 Perl 이 있지요... 말 그대로 CGI 와 Perl 은 불가능한게 없는 언어 입니다...^^
이걸 막는 방법은 아주 없습니다. 왜냐면 리눅스라는게 어셈블리어와 C 언어로 만들어진 언어이기 때문입니다.
C 또는 Perl 로 접근하는 것을 막는 방법은........
아쉽게도 계정 사용자들은 C와 Perl을 사용하지 못하게 하는 방법밖에.... 오직 root 만 사용하게 해야 되겠지요...^^
ps. 답변글입니다... 어떻게 해야 하는 것은... 잘 판단하여서...
오히려 nobody를 적용한다는것이 보안에 문제가 생길수 있겠네요.
제 의견을 말씀드리고자 한다면
/home에 701로 주고 사용자를 발급할시 모든 소유권을 하나의 그룹명으로 지정하여 계정발급시 chmod 701 /home/username 으로 지정하면
그룹퍼미션이 0이라서 접근이 불가능하지요. 물론 서브디렉토리까지말입니다.
/home에 701로 주는것은 ls 와 같이 모든 명령어의 퍼미션을 막는 수단입니다.
어차피 루트를 제외한 모든 사용자는 같은 gid이니깐요.
이렇게 한다면 굳이 safe_mode=on을 할필요가 없겠지요. :)
|
댓글목록
등록된 댓글이 없습니다.