루트에 sudod / sudoed 원래 사용자 이름으로 모든 루트 활동을 기록


11

SSH (루트 로그인)가 비활성화되었지만 사용자가 실행 sudo -i하거나 su -루트가 될 수있을 때 누가 로그에서 루트 역할을하는지 추적하는 기본 방법은 무엇입니까 ? 원래의 사용자 이름으로 모든 명령을 따르고 싶습니다. RHEL 6 또는 Linux rsyslog 등

답변:


7

가장 강력한 방법이 감사되는 것 같습니다.

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

감사는 기본적으로 모든 시스템 호출을 가로 채고 규칙 집합과 비교하여 확인합니다. 따라서 /etc/audit/audit.rules파일에는 다음과 같은 것이 있습니다.

# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION

마지막 규칙은 기본이 아닌 유일한 규칙입니다.

이 접근법의 주요 단점 (및 대안을 찾는 동안이 질문을 찾은 이유)은 원시 로그 파일이 매우 암호화되어 원시 로그 파일에서 쿼리 프로그램을 실행 한 후에 만 ​​도움이된다는 것입니다. ausearch

해당 규칙에 대한 예제 쿼리는 다음과 같습니다.

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

상식 솔루션은 아마도 원시 감사 로그를 쿼리 한 다음 로깅 솔루션으로 전달하는 크론을 만드는 것입니다.


감사를 대체하고 원시 이벤트의 상관 관계를 찾는 것을 찾고 있다면 github.com/slackhq/go-audit
freb

3

Red Hat 배포판에서는 일반적으로 /var/log/secure로그를 사용하여 누가 sudoFedora / CentOS / RHEL 시스템에 로그인하거나 사용하고 있는지 식별 합니다.

스도 예
$ sudo -Es

로그 결과 :

9 월 1 일 19:32:51 greeneggs sudo : saml : TTY = pts / 2; PWD = / 홈 / saml; USER = 루트; 명령 = / bin / bash

$ su -

로그 결과 :

9 월 1 일 19:34:49 greeneggs su : pam_unix (su-l : session) : saml (uid = 1000)에 의해 사용자 루트에 대한 세션이 열립니다.


3

협력하는 사용자가있는 경우 루트 사용자가 입력 한 모든 것을 syslog에 기록하도록 rootsh를 설정할 수 있습니다.

http://linux.die.net/man/1/rootsh

rootsh rpm은 EPEL로 제공됩니다.

RHEL6의 sudo 버전은 모든 sudo 세션마다 파일에 stdout을 기록 할 수 있습니다. sudo_plugins 매뉴얼 페이지를 살펴보십시오.

이러한 접근 방식 중 어느 것도 완전히 방탄되지는 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.