권한 상승으로 루트 직접 방지

권한 상승으로 루트 직접 방지

나는 이것이 집의 StackExchange 측에 대한 나의 첫 번째 게시물이 될 것이라고 생각합니다. 그러나 이전에 구현된 것을 보았지만 실제로 구현 방법을 모르기 때문에 구성할 수 있어야 한다는 것을 알고 있습니다.

내가 하려는 것은 RedHat 7/8 또는 파생 버전입니다. 사용자가 다음과 같은 권한 에스컬레이션을 수행하도록 하려면 어떻게 해야 합니까?

<user> -> <user>.adm -> root

  • ssh_users 그룹의 IdM 사용자는 네트워크의 어느 곳에서나 서버에 SSH로 연결할 수 있습니다.
  • IdM의 도메인 관리자는 서버에 대한 SSH에 사용할 수 없으며 그룹에 속하지 않습니다.
  • 도메인 관리자인 사용자는 표준 사용자에게 SSH를 통해 연결해야 합니다 sudo su - <user>.adm. 그들은 루트에 직접 도달할 수 없습니다.
  • 루트 액세스 권한도 갖고 있는 도메인 관리자인 사용자는 먼저 다음을 수행해야 sudo su - <user>.adm합니다.sudo su - root
  • 모든 도메인 관리자가 루트 에스컬레이션을 얻을 수 있는 권한을 갖고 있는 것은 아닙니다.

궁극적으로 도메인 관리자는 시스템 유지 관리, 문제 해결 및 교정과 관련된 권한을 가진 시스템 관리자입니다. 시스템 엔지니어는 시스템에 대한 전체 권한을 부여하는 루트를 얻을 수 있는 권한을 갖습니다. 이는 또한 감사 계정에만 <user>.isso루트 사용자 외부의 로그를 삭제할 수 있는 권한이 있는 책임 위임에도 적용됩니다 . 이것이 궁극적으로 이 요구 사항을 막는 것입니다.

내가 정말로 찾고 있는 것은 올바른 방향을 알려줄 수 있는 문서이거나 이러한 유형의 최소 권한 접근 방식을 기능적으로 수행하는 Ansible 역할/플레이북입니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변1

루트 액세스 권한도 갖고 있는 도메인 관리자인 사용자는 먼저 다음을 수행해야 sudo su - <user>.adm합니다.sudo su - root

개념적으로 나는생각하다당신이 원하고 달성해야 하는 것은 다음과 같습니다.

모든 관리자에게는 두 개의 개인 계정이 있습니다.

  1. "일반" 사용자 계정
  2. 관리자 계정

Linux 서버에서 전체 관리자 권한을 얻으려면:

  1. 관리자는 먼저 일반 사용자 계정으로 로그인해야 합니다.<user>

  2. 서버에 로그인하면 개인 관리자 계정에 로그인하여 권한을 승격합니다.<user>.adm

    • sudo su - <user>.adm 은(는) 계정 의 비밀번호를 요청한 <user>다음 루트 권한으로 사용자를 로 대체합니다 <user>.adm.
    • ^^^ 잘못된 접근방식입니다 IMHO
      관리자가 을(를) 사용하도록 해야 합니다 . 이는 관리자가 로 로그인하려면 계정의 비밀번호(계정 비밀번호가 아님 ) su - <user>.adm
      를 입력해야 함을 의미합니다 . <user>.adm<user><user>.adm
      • 그런 다음 관리자가 일반 계정과 동일한 adm 계정 비밀번호를 갖고 있지 않는 한, 손상된 비밀번호만으로는 모든 서버의 루트가 되기에 충분하지 않습니다. 이기다!
      • sudo또한 일반 사용자 계정에는 정책이 필요하지 않습니다 <user>. 이기다!
  3. 개인 관리자 계정으로 로그인하면 root권한이 필요한 모든 작업을 수행할 수 있습니다.

    그러기 위해서는 정책 수립이 필요합니다 sudo. 그것에 대한 정보는 충분합니다.

    내가 선호하는 것은 #includedir /etc/sudoers.d대부분의 최신 /etc/sudoers정책에 포함된 메커니즘( #주석이 없음!)을 사용하고 파일을 삭제하고( .파일 이름에 a가 포함되지 않음) 그런 방식으로 정책을 설정하는 것입니다.

    hbruijn.adm한 가지 옵션은 개인적 으로 다음과 같은 하나의 정책을 갖는 것입니다 /etc/sudoers.d/hbruijn_adm.

    # /etc/sudoers.d/hbruijn_adm 
    # sudo policy that allow HBruijn's admin account to perform all
    # as any user, without prompting for a password
    hbruijn.adm  ALL = NOPASSWD: ALL
    

    또는 Linux 시스템에서 전체 루트 권한을 얻을 수 있는 모든 adm 계정이 특정 그룹에 속해 있는 경우 그룹 기반 정책을 설정하십시오.


이는 관리자가 adm 계정에 직접 로그인하는 것을 추가로 방지한다는 의미입니다.

예를 들어 특정 사용자 또는 패턴과 일치하는 사용자가 로그온하는 것을 방지하기 위해 DenyUsers서버의 지시문 을 사용하여 SSH 원격 액세스를 수행할 수 있습니다./etc/ssh/sshd_config

# /etc/ssh/sshd_config
#here go defaults for all connections/users
PasswordAuthentication no
PubkeyAuthentication no
...
DenyUsers *.adm 

또는 유사한 것을 사용하여 DenyGroups그룹 기반 정책을 설정하십시오.

관련 정보