사용자가 루트 사용자에게 sudoing하는 것을 방지

사용자가 루트 사용자에게 sudoing하는 것을 방지

내 시스템 사용자가 루트 계정으로 어떤 방식으로든 sudo 작업을 수행하는 것을 방지할 수 있는 방법을 찾고 있습니다.

SSH를 통해 루트에 로그인하는 것이 아니라 특히 sudoing( sudo -s )( sudo su ) 등을 통해 루트에 로그인하는 것을 의미합니다.

어떤 제안이 있으십니까?

(sudoers 파일은 특정 명령을 화이트리스트에 추가해야 합니다)

감사해요!

그것이 바로 내가 예방하고 싶은 것입니다. 사용자가 "sudo -s"를 사용하면 "루트" 사용자를 사용할 수 없습니다.

답변1

명령 필드에서 "ALL" 키워드를 사용하여 sudoers 사양을 정의하면 특정 명령이나 명령 집합의 실행을 효과적으로 방지할 수 없습니다. 이것sudoers 매뉴얼이를 간단하게 설명하면 다음과 같습니다.

'!'에 대한 제한 연산자

ALL에서 "빼기"를 위해 "!" 연산자를 사용하는 것은 일반적으로 효과가 없습니다. 사용자는 원하는 명령을 다른 이름으로 복사한 다음 해당 명령을 실행하여 이 문제를 쉽게 피할 수 있습니다. 예를 들어:

bill ALL = ALL, !SU, !SHELLS

Bill이 SU 또는 SHELLS에 나열된 명령을 실행하는 것을 실제로 막을 수 있는 방법은 없습니다. 왜냐하면 그는 단순히 명령을 다른 이름으로 복사하거나 편집기 또는 다른 프로그램의 셸 이스케이프를 사용할 수 있기 때문입니다. 따라서 그러한 제한은 기껏해야 권고 사항으로 간주되어야 합니다(그리고 정책에 의해 강화되어야 함).

일반적으로 사용자가 sudo ALL을 사용하는 경우 사용자 사양의 "!" 요소에 관계없이 루트 셸을 제공하는 자체 프로그램을 만드는 것(또는 자체적인 셸 복사본을 만드는 것)을 막을 수 없습니다.

위 상황을 피하는 유일한 방법은 사용자가 실행할 수 있는 허용된 명령 목록(화이트리스트)을 갖는 것입니다.

답변2

sudoers 파일에 특정 명령을 허용 목록에 추가하지 않는 한 항상 루트로 실행할 수 있는 방법이 있기 때문에 이는 불가능합니다.

루트 로그인 셸을 완전히 비활성화해도 괜찮다면 다음을 수행하세요.사용자 셸 비활성화.

물론 모든 sudo 사용자는 이 작업을 실행 취소할 수 있습니다.

답변3

그룹에서 사용자를 제거 sudo하고 새 그룹(예: )을 만듭니다 restricted.

그런 다음 다음을 추가합니다 /etc/sudoers(또는 아래 파일에 추가하는 것이 더 좋습니다 )./etc/sudoers.d

%restricted ALL=NOPASSWD: /usr/bin/command1,/etc/init.d/command2 restart

이 그룹의 사용자는 이러한 명령만 실행할 수 있습니다.

답변4

나는 똑같은 것을 찾고 있었기 때문에 여기에 내가 시도하고 일한 것이 있습니다.

이름이 지정된 그룹을 만든 admin다음 admin해당 그룹을 다음에 추가했습니다.etc/sudoers

## Allows people in group wheel to run all commands
admin ALL=(ALL)ALL, !SHELLS, !SU
%wheel  ALL=(ALL)       ALL

# usermod -aG admin u3
# usermod -aG wheel u3

# su - u3

[u3@localhost ~]$ yum install something
Loaded plugins: product-id, search-disabled-repos, subscription-manager
You need to be root to perform this command.

[u3@localhost ~]$ sudo yum install something
Loaded plugins: product-id, search-disabled-repos, subscription-manager

따라서 사용자는 u3그룹에 추가된 이후 루트 권한을 갖게 되지만 wheel루트 쉘을 얻지 못하므로 시스템 관리자는 u3sudo/root 권한으로 수행된 작업을 알 수 있습니다.

관련 정보