답변:
가장 강력한 방법이 감사되는 것 같습니다.
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
상식 솔루션은 아마도 원시 감사 로그를 쿼리 한 다음 로깅 솔루션으로 전달하는 크론을 만드는 것입니다.
Red Hat 배포판에서는 일반적으로 /var/log/secure
로그를 사용하여 누가 sudo
Fedora / 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)에 의해 사용자 루트에 대한 세션이 열립니다.
협력하는 사용자가있는 경우 루트 사용자가 입력 한 모든 것을 syslog에 기록하도록 rootsh를 설정할 수 있습니다.
http://linux.die.net/man/1/rootsh
rootsh rpm은 EPEL로 제공됩니다.
RHEL6의 sudo 버전은 모든 sudo 세션마다 파일에 stdout을 기록 할 수 있습니다. sudo_plugins 매뉴얼 페이지를 살펴보십시오.
이러한 접근 방식 중 어느 것도 완전히 방탄되지는 않습니다.