특정 경로 내의 파일이나 폴더에 대한 특정 사용자의 액세스를 감사하는 방법

특정 경로 내의 파일이나 폴더에 대한 특정 사용자의 액세스를 감사하는 방법

구성에 대한 정보를 읽었 auditd지만 수행 방법을 알 수 없습니다.

  • 사용자별 시스템 호출 로깅
  • 특정 파일에 대한 모든 사용자 액세스 기록

그러나 내가 알 수 없는 것은 /home폴더 구조의 모든 파일(예: 폴더 구조 내의 모든 하위 폴더 및 파일)에 대한 특정 사용자 ID의 액세스(읽기/쓰기)만 기록 하도록 감사 데몬을 설정하는 방법입니다. 그것) ).

따라서 사용자 ID가 2053인 "bob" 사용자가 있는 경우 해당 사용자가 파일 시스템에서 열려거나 읽으려고 하는 모든 파일을 알고 있습니다. 나는 시스템 서비스나 다른 사용자가 이 파일에 액세스하는 데 관심이 없습니다.

보너스 질문: 전체 파일 시스템 계층에 대해 이러한 종류의 감사를 어떻게든 설정할 수 있습니까? 어떤 이유로 감사에서는 내가 아는 한 이를 허용하지 않습니다.

답변1

나는 다음과 같이 시작할 것입니다 :

# auditctl -a exit,always -F arch=x86_64 -S open -F auid=1000 -k track-guido

이는 모든 파일 시스템에서 사용자 uid=1000에 대한 모든 파일 열기 작업을 추적합니다. 그래픽 세션을 사용하는 사용자에게 이 작업을 실행하면 다음이 생성됩니다.더미다음과 같은 로그(불필요한 것 같습니다):

# ausearch -i -k track-guido
---- (chrome opening /etc/hosts )
type=PROCTITLE msg=audit(03/05/2015 19:49:14.990:257528) : proctitle=/opt/google/chrome/chrome  
type=PATH msg=audit(03/05/2015 19:49:14.990:257528) : item=0 name=/etc/hosts inode=917951 dev=08:02 mode=file,644 ouid=root ogid=root rdev=00:00 obj=system_u:object_r:net_conf_t:s0 nametype=NORMAL 
type=CWD msg=audit(03/05/2015 19:49:14.990:257528) :  cwd=/home/guido 
type=SYSCALL msg=audit(03/05/2015 19:49:14.990:257528) : arch=x86_64 syscall=open success=yes exit=164 a0=0x7f843c7682fe a1=O_RDONLY|O_CLOEXEC a2=0x1b6 a3=0x7f84411c070c items=1 ppid=1665 pid=3224 auid=guido uid=guido gid=guido euid=guido suid=guido fsuid=guido egid=guido sgid=guido fsgid=guido tty=(none) ses=1 comm=WorkerPool/3224 exe=/opt/google/chrome/chrome subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=track-guido 
---- (gnome-shell opening /proc/self/stat)
type=PROCTITLE msg=audit(03/05/2015 19:49:15.041:257529) : proctitle=/usr/bin/gnome-shell 
type=PATH msg=audit(03/05/2015 19:49:15.041:257529) : item=0 name=/proc/self/stat inode=21375 dev=00:03 mode=file,444 ouid=guido ogid=guido rdev=00:00 obj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 nametype=NORMAL 
type=CWD msg=audit(03/05/2015 19:49:15.041:257529) :  cwd=/home/guido 
type=SYSCALL msg=audit(03/05/2015 19:49:15.041:257529) : arch=x86_64 syscall=open success=yes exit=42 a0=0x7f7b7b7a5f4a a1=O_RDONLY a2=0x7fff4ce2aaa0 a3=0x1 items=1 ppid=1371 pid=1665 auid=guido uid=guido gid=guido euid=guido suid=guido fsuid=guido egid=guido sgid=guido fsgid=guido tty=(none) ses=1 comm=gnome-shell exe=/usr/bin/gnome-shell subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=track-guido 

규칙을 구체화하고 디렉토리 트리에 대한 제어권을 가지려면 다음과 같습니다.

# auditctl -w /home/guido/Development/git/ -F auid=1000 -p rwxa -k track-guido-development

어디:

-F auid=     filter on actual uid
-p rwxa      track Read, Write, eXecute, Attributes

(원하는 만큼 -F를 결합할 수 있습니다.)

다음과 같은 출력을 제공합니다.

# ausearch -i -k track-guido-development
----
type=PROCTITLE msg=audit(03/05/2015 22:04:40.893:365951) : proctitle=vim /home/guido/Development/git/eduFXserver.git/pom.xml 
type=PATH msg=audit(03/05/2015 22:04:40.893:365951) : item=0 name=/home/guido/Development/git/eduFXserver.git/.pom.xml.swp inode=11146444 dev=08:05 mode=file,600 ouid=guido ogid=guido rdev=00:00 obj=unconfined_u:object_r:user_home_t:s0 nametype=NORMAL 
type=CWD msg=audit(03/05/2015 22:04:40.893:365951) :  cwd=/home/guido 
type=SYSCALL msg=audit(03/05/2015 22:04:40.893:365951) : arch=x86_64 syscall=getxattr success=yes exit=37 a0=0x241e6d0 a1=0x7fc8479afcee a2=0x241e720 a3=0xff items=1 ppid=784 pid=9231 auid=guido uid=guido gid=guido euid=guido suid=guido fsuid=guido egid=guido sgid=guido fsgid=guido tty=pts3 ses=1 comm=vim exe=/usr/bin/vim subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=track-guido-development 
----
type=PROCTITLE msg=audit(03/05/2015 22:04:40.893:365953) : proctitle=vim /home/guido/Development/git/eduFXserver.git/pom.xml 
type=PATH msg=audit(03/05/2015 22:04:40.893:365953) : item=0 name=/home/guido/Development/git/eduFXserver.git/.pom.xml.swp inode=11146444 dev=08:05 mode=file,600 ouid=guido ogid=guido rdev=00:00 obj=unconfined_u:object_r:user_home_t:s0 nametype=NORMAL 
type=CWD msg=audit(03/05/2015 22:04:40.893:365953) :  cwd=/home/guido 
type=SYSCALL msg=audit(03/05/2015 22:04:40.893:365953) : arch=x86_64 syscall=getxattr success=yes exit=37 a0=0x241e6d0 a1=0x7fc8479afcee a2=0x241e720 a3=0xff items=1 ppid=784 pid=9231 auid=guido uid=guido gid=guido euid=guido suid=guido fsuid=guido egid=guido sgid=guido fsgid=guido tty=pts3 ses=1 comm=vim exe=/usr/bin/vim subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=track-guido-development 
----

여전히 불필요한 내용이 많이 포함되어 있지만 훨씬 더 좋습니다. 규칙 중 하나로 인해 시스템이 응답하지 않는 경우 다음을 수행할 수 있습니다.

# auditctl -R /etc/audit/audit.rules

기본(비어 있는) 규칙으로 재설정되는 패닉 모드입니다.

관련 정보