일반 사용자가 passwd 파일을 못보도록 할 방법은 없나요?

오리주둥이의 이미지

예전부터 항상 고민에 빠져있습니다만 리눅스에서 passwd 파일을 일반 사용자가 못보도록 할 방법이 없는가 하는것입니다.
퍼미션을 조정하면 로그인이 안되고, 그룹권한으로 처리를 해볼까 했지만 그것도 방법을 이래저래 생각해봤지만
마땅한 방법이 생각나지를 않더군요.

생각날 때마다 검색을 해보고는 했지만 그와 관련된 글들은 본 적이 없습니다.
물론 서적들도 뒤져봤지만 passwd 와 관련되어 사용자들이 못보게 하는 내용이 있는 서적은 아직 발견을 못했습니다.
freebsd에서는 가능하다는 이야기는 들었습니다만 리눅스에서는 과연 방법이 없는걸까요?

세벌의 이미지

/etc/passwd 파일에 암호를 넣지 않고
/etc/shadow 에 암흐를 넣는...
원하는 답이 아닐지도...

http://sebul.sarang.net/

오리주둥이의 이미지

답변 감사합니다. 암호는 당연히 shadow 로 들어갑니다. ^^
문제는 암호의 문제라기 보다는 서버 자체에 어느 계정이 있는가를 알게 되는것이 문제니까요.

송효진의 이미지

다른 사용자가 누가 있는지를 숨기시려는거면,
- ssh 불허
- ftp 는 가상계정
- chroot 환경의 웹서버
정도 하시면 될 것 같습니다.

웹서버의 /home 을 못뒤지게 까지 하시려면,
0700 으로 돌리는 방법이 있는데,
apache1 mod_become 이 그 역할을 합니다.
apache2 에도 mod_peruser 가 비슷한 역할인 것 같은데 어떻게 하는지 모르겠네요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

오리주둥이의 이미지

ssh를 막는건 현실적으로 불가능 할 것 같습니다.
아무래도 간혹 사용자가 ssh로 작업해야 할 일이 생겨서요.
하지만 그것만 된다고 하면야 굳이 머리 쓸 필요가 없어지겠네요. ㅜ.ㅡ

chroot환경의 웹서버라 하심은 서버자체의 실제 동작관련은 외부에 있고 내부적으로 감싸서 가둬버리고 문제가 생기면 그 안에서만 생기고
실제 서버에는 문제가 안가도록 하는걸 말씀하시는건지요.

chroot으로 만들어보려고 했지만 ( 문서를 통해서 ) 이게 보통 힘든게 아니더라구요.
오래전 문서라 요즘 나오는 배포판은 쉽게 가능한지는 잘 모르겠습니다.
특히 네임서버의 경우는 chroot로 가둬버리니 2차 네임서버가 1차 네임서버의 정보를 캐싱을 못하는 현상도 있었던 기억이 있습니다.
하지만 가장 현명한 방법이라 생각이 듭니다. 꼭 해보고 싶습니다.

말씀하신데로 일단은 apache의 모듈을 이용한 방법을 강구해봐야겠습니다.

큰 도움이 되었습니다.

사족.
/home 의 각 계정은 701로 막아두고 있습니다.

지금 제가 생각하는것은 passwd 파일의 사용자를 보고 /home/ 의 계정을 유추해 볼 수 있다는 점.
그리고 그것을 이용하여 배포판 프로그램이나 게시판을 사용하는 사용자들이 있을것을 예상해 701 퍼미션의 /home/사용자계정/웹서비스용디렉토리/유추가능한 파일명
으로 접근을 하여 읽을 수 없도록 하려는 것 입니다.

이문제로 스트레스를 계속 받다보니 freeBSD로 갈아탈까 하는 고민도 예전부터 가지고 있었습니다.
성능이나 보안이 좋다는 이야기도 많이 들어왔구요. ^^

좋은 정보 거듭 감사드립니다~ ^^

planetarium의 이미지

사용자 계정 이름과 /home 디렉토리의 계정 디렉토리 이름을 다르게 지정하는건 어떤가요?

오리주둥이의 이미지

사용자명:x:555:555::/사용자/디렉토리명:/bin/bash

이게 문제죠. ^^;;;

planetarium의 이미지

아. (...)

오리주둥이의 이미지

말씀하신 부분은 모듈을 만든 당사자도 보안문제로 가급적 사용을 하지 말라고 하는군요. 덜덜~
mod_throttle 을 만든 동일인 이네요.

송효진의 이미지

peruser || become ?????

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

오리주둥이의 이미지

become만 알아봤군요 ㅜ.ㅡ
become은 제작 당사자도 가급적 보안문제로 사용하지 말라고 한다고 합니다.

peruser에 대해서는 검색이 안되던데 차근차근 찾아봐야겠습니다.

academic의 이미지

너무 민감하신 것 같다는 생각은 듭니다...

저 같으면... 뚤린다면 /etc/passwd 파일에 있는 계정 정보 때문은 아니라고 생각할 것 같습니다.

/etc/passwd 파일의 정보만 문제라면...

NIS를 쓰면 어떨까요? 계정 정보가 /etc/passwd 파일엔 별로 없을테니

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

오리주둥이의 이미지

네 답변 감사합니다.
달아주신 글 보고 NIS에 대해서 조금 검색을 해보았습니다.
차근차근 보지는 못했고 굵게 읽어본 바로는 하나의 ID로 여러 사용자가 사용하는것이라는 내용인데 맞는지는 모르겠습니다.
주말에 NIS에 대해서 정독을 할 까 합니다.

그리고 NIS에 대한 보안문제에 관한 글들도 눈에 좀 띄더군요.
좋은 정보 감사드리고 열심히 찾아보겠습니다.

아, 말씀하신데로 실제로 내부의 사용자가 계정정보를 가지고 뚫은경우는 못들어보긴 했는데
뚫린 사용자의 계정의 id와 pass 를 이용해 접속을 해서 passwd를 읽고 유추해서 다른 사용자의 db를 날렸다는 이야기를
들은적이 있습니다.

솔직히 .. 종종 느끼는거지만 빈틈없이 막는다고 막을 수 없다는 것을 느낍니다.
열려있는 포트는 말그대로 open의 상태이기 때문에 높은 담이라도 누군가는 작정을 하고 금단의 지역까지 들어가려고 한다는게
문제라고 봅니다.
그래서 민감하긴 하지만 그래도 가급적 더 막을 수 있는것은 막을 방법이 없을까? 하는 생각을 많이 합니다. ^^

요즘은 살짝 '어느 수준 이상의 막기' 에 대한 회의를 느끼기도 합니다 ㅡ.ㅡ;

세이군의 이미지

NIS 약자가 여러가지로 쓰이고 있는데
ID 관리 방면의 NIS는 이런 용도입니다.

N대의 시스템이 있고 M명의 사용자가 있을 때 마스터서버에 M명의 사용자를 만들고 N대의 시스템을 마스터서버에 등록된 사용자 ID를 이용해서 로그인/개인별 작업을 할 수 있게 하는 시스템입니다.

1 ID Multi User가 아니라 Multi 서버 단일 ID 체계입니다. 이 시스템은 사용자 홈디렉토리 관리때문에 항상 NFS가 따라다닙니다.

a287848의 이미지

id 랑 똑같은password로 ssh 로긴을 시도하게 스크립트를 짜보았더니...

로긴율이 무려 33% 에 달하더군요.

제가 아닌 다른 사람이 관리 하는 서버에서 실제로 겪은 일입니다.

Dig it.

Dig it.

imyejin의 이미지

공용 시스템을 관리할 때는 너무 약한 패스워드는 등록 자체가 되지 않도록 해야 합니다.

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

오리주둥이의 이미지

완료말머리는 여러분들께서 주신 여러가지 방법을 사용해보고 최종적으로 붙일 예정입니다.
주옥같은 글들에 많은 도움을 받았습니다.

모든분들께 감사드립니다. ^^

ymir의 이미지

위에 나온 NIS 나 chroot 정도면 충분히 가능할 것으로 보이네요.

추가적으로 SecureOS 나 solaris 와 같이 rbac 이 적용된 OS 도 괜찮을 것 같습니다.
다만 일반적으로 passwd 파일은 로그인은(사용자 식별)은 물론 uid 와 uname 을 매칭시키기 위해..
많은 appl. 에서 접근을 하기 때문에, 그걸 일반 사용자로부터 차단을 한다면..
시스템 사용하기가 힘들어집니다. (허용해 줄 프로세스를 선정하는 것도 일이라서...)

만약 brute force 와 같은 보안 문제가 염려되는 케이스라면..
계정 및 암호 관리, 서비스 접속 관리 등이 가능한 서버 보안 제품들을 찾아 보는 것도 좋을 것 같습니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

오리주둥이의 이미지

네.
안그래도 서버를 새로 구매하는데 chroot으로 막아볼까 합니다.
리눅스용 고스트가 있다고 해서 처음 설정을 백업받아놓거나 백업서버에 옮겨놓고 chroot을 돌려보려구요. ^^;

프로세스에 관한 차단은 해보지 않았지만 쌩노가다로 사용자가 사용못하게 명령어들의 소유권은 바꿨습니다.
죽다가 살아났습니다 ㅡ.ㅡ;

말씀하신 서버보안 제품들이 있는건 오늘 처음 알았습니다. ( IDS 같은것 말고 말씀하신 부분에 대한 )
검색해보고 찾아봐야겠네요. 감사합니다~ ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.