chmod 640 /etc/passwd /etc/group을 실행하는 것이 안전합니까?

chmod 640 /etc/passwd /etc/group을 실행하는 것이 안전합니까?

사용자가 다른 시스템 사용자를 보지 못하도록 하고 싶습니다. hidepid=2 마운트 옵션을 사용하여 프로세스가 /proc를 나열하지 못하도록 차단하여 다른 사용자의 홈 디렉토리가 나열되는 것을 방지했지만 "getent passwd" 또는 "cat /etc/passwd"를 수행하여 사용자의 위치를 ​​계속 확인할 수 있습니다. .

"chmod 640 /etc/passwd /etc/group"은 안전합니까? 무엇이 깨질 수 있나요? Ubuntu 20.04 또는 22.04를 실행합니다.

답변1

귀하의 의견을 토대로:

이는 많은 웹사이트를 호스팅하는 웹 서버입니다. 사용자 이름/그룹 이름에는 서버에서 실행되는 웹사이트를 식별할 수 있는 이름이 포함되어 있습니다. 즉, 사용자 이름은 "example.com" 또는 "example.tld"일 수 있습니다(또는 이와 유사하며 전체 도메인 이름을 알아낼 수 있음). 이러한 사이트는 유사한 소프트웨어를 실행하므로 특정 취약점으로 인해 한 사이트가 해킹당하는 경우 공격자는 서버에서 실행되는 사이트를 열거하고 동일한 취약점으로 감염시킬 수 있습니다. 단순히 도메인을 나열하는 기능을 숨기면 공격자가 더 어려워지고 웹사이트 소유자가 업데이트할 시간을 더 많이 확보할 수 있습니다.

나는 당신이 원하는 것은 모호함을 통해 일종의 (나쁜) 보안을 제공하는 것이라고 말하고 싶습니다.

공격자가 웹 사이트를 손상시키면 루트 셸에 대한 액세스 권한을 얻을 가능성이 높으므로 1) 전체 서버가 손상되고 2) 권한 있는 액세스 권한을 얻은 경우 어쨌든 전체 사용자 목록에 액세스할 수 있게 됩니다.

결론은 시스템 구성 파일에 대한 권한을 제한하는 것은 항상 나쁜 생각이라는 것입니다. 무엇이 (그리고 언제) 깨질지 결코 알 수 없습니다.

답변2

지금까지 이것들은 모두 깨졌습니다.

  • "ls -l" - uids/gids 표시 - 별거 아닙니다(적어도 나에게는!)

  • OpenSSH의 ssh 명령 - 즉:

$ ssh [email protected] -v
No user exists for uid 1166
$ echo $?
255

심지어 연결을 시도하지도 않습니다!

해결 방법이 있습니다. dropbear(dbclient)와 같은 대체 SSH 클라이언트를 사용하세요.

$ dbclient [email protected]
dbclient: Warning: failed to identify current user. Trying anyway.
(...connection succeeds...)
  • 전복(ssh 사용):
$ svn st -u
No user exists for uid 1166
svn: E170013: Unable to connect to a repository at URL ...

해결 방법 - /etc/subversion/config, [tunnels] 섹션을 편집하고 OpenSSH의 ssh 대신 dropbear의 dbclient를 사용하십시오.

# ssh = $SVN_SSH ssh -q -o ControlMaster=no --
ssh = $SVN_SSH dbclient -q -o ControlMaster=no --
  • OpenSSH와 함께 ssh를 사용하는 다른 소프트웨어 - 유사한 해결 방법이 도움이 될 것입니다.

답변3

/etc/passwd/etc/group다 권한이 있습니다

-rw-r--r--. 1 root root

이는 소유자 = 루트이고 그룹이 루트임을 의미합니다.

따라서 chmod 644월드 가독성을 제거하면 시스템이 중단됩니다. 루트 그룹에 있지 않아야 하지만 (명백한 이유로 인해) 루트 그룹에 없는 모든 프로세스나 서비스는 루트 그룹에서 제거할 수 없습니다. 루트 그룹의 해당 파일에 대한 정보 읽기UID그리고지드아마도 가장 큰 두 가지 일 것입니다. 전체 Linux 운영 체제는 uid와 gid에서 실행되며, 어떤 계정에 무엇이 있는지... 실제로 걱정해야 할 보안 구멍은 아닙니다.

https://stackoverflow.com/questions/9887247/what-are-ideal-etc-passwd-file-permissions

  • 최신 UNIX 시스템의 민감한 데이터는 /etc/shadow 파일에 저장됩니다.
  • /etc/passwd의 내용은 다음과 같습니다.민감한 데이터.

하지만 어떤 관점에서는 좋은 질문이라고 생각합니다. 사용자가 단순히 체크인하는 것을 금지할 이유가 있다면 이런 방식으로 사용자의 정보를 얻는 것도 /etc/passwd방지하고 싶지 않을까요 ?ls -l 그러한 LDAP 계정이 나타나지 않는 곳에 LDAP를 사용하는 잠재적인 솔루션이 있습니까 /etc/passwd? *

관련 정보