내 컴퓨터의 활동을 모니터링합니다.


16

그래서 최근에 누군가가 동의하지 않고 내 컴퓨터를 사용하고 폴더를 탐색하는 등을 발견했습니다 ...

모든 비밀번호를 바로 변경할 수는 있지만, 침입자가 찾고있는 것이 궁금합니다. 그래서 함정을 설치하고 싶습니다 (악한 미소).

내 컴퓨터의 활동을 모니터링하는 소프트웨어는 무엇입니까? 화면 캡처가 여기에서 작동한다는 것을 알고 있습니다. 차라리 로그 파일을 사용하고 싶습니다.

예를 들면 다음과 같습니다.

/var/log/activity.log

[2010 년 8 월 1 일 20:23] / usr / bin / thunar 액세스 / multimedia / cctv-records /
[2010 년 8 월 1 일 20:25] / usr / bin / mplayer 액세스 /multimedia/cctv-records/00232.avi
[8 월 3 일 2010 02:34] / usr / bin / thunderbird가 실행되었습니다
[2010 년 8 월 3 일 03:33] 12.32.132.123에서 들어오는 ssh 세션

내가 기록하고 싶은 활동은 다음과 같습니다.

  • 파일 시스템의 파일 및 폴더에 액세스
  • 명령 실행 (콘솔에서 또는 기타)
  • 사용자 세션 (로그인, ssh 세션 및 실패한 시도)

/var/log/auth.log는 세 번째 글 머리 기호를 포함해야합니다. 다른 사람들은 조금 덜 사소해질 것입니다.
Cascabel

@jefromi 내 auth.log는 sudo 및 su 명령 시도 만 기록합니다 ... 로그인하지 않습니다 :(
Stefan

답변:


8

inotify액세스 된 파일을 모니터링 하기 위해 커널 내부 메커니즘 을 사용할 수 있습니다.

먼저 inotify커널에서 켜져 있는지 확인해야 합니다.

pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y

다음으로 할 일은 install inotify-tools입니다. 프로젝트 페이지 에서 찾을 수있는 다양한 배포판에 대한 지침 은 모든 주요 배포판의 저장소에 있어야합니다.

그 후에 inotify가 작동 할 준비가되었습니다.

inotifywait /dirs/to/watch -mrq

( m= 하나의 이벤트 후에 종료하지 않음, r= 재귀, q= 조용한)

예를 들어-이후 출력 ls /home/pbm

pbm@tauri ~ $ inotifywait /bin /home/pbm -mq 
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR 
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR 
/bin/ CLOSE_NOWRITE,CLOSE ls

중요한 것은 감시 할 디렉토리를 올바르게 설정하는 것입니다.

  • 보지 않는 /재귀 - 읽기 / 쓰기의 많은 거기에있다 /dev/proc
  • 재귀 적으로 홈 디렉토리를 보지 마십시오. 앱을 사용할 때 응용 프로그램 구성 디렉토리 및 브라우저 프로파일 디렉토리에 대한 많은 읽기 / 쓰기가 있습니다

에서 /proc/sys/fs/inotify/max_user_watches쇼가 얼마나 많은 파일을 동시에 감시 할 수있는 구성 옵션이 있습니다. 기본값 (젠투의 경우)은 그리 높지 않으므로 감시자를 설정 /home/하면 한계를 초과 할 수 있습니다. echo(루트 액세스 필요)를 사용하여 제한을 늘릴 수 있습니다.

echo 524288 > /proc/sys/fs/inotify/max_user_watches

그러나 그 전에 그 변화의 결과에 대해 읽어야 합니다.

당신에게 흥미로운 옵션 :

  • -d = 데몬 모드
  • -o file = 파일로 출력
  • --format = 사용자 지정 형식, 자세한 정보 man inotifywait
  • -e EVENT= 어떤 이벤트 모니터링해야합니다 (예를 들어 access, modify등, 더 많은 정보 man)

데비안에서 시스템을 재설정 할 때 마지막으로 설정을 유지하려면을 수행 할 수 있습니다 echo 524288 >> /etc/sysctl.conf && service procps restart. 젠투와 동등한 것은 무엇입니까?
tshepang

나는 당신이 의미하는 것입니다 echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf. 젠투에서는 같은 방법을 사용할 수 있지만 init 스크립트에 sysctl.conf의해 제공됩니다 /etc/init.d/bootmisc.
pbm

1
실제로는 /etc/init.d/sysctl입니다.
OneOfOne

7

다른 사람이 당신에게 있습니까? 그가 물리적으로 접근 할 수 있거나 루트로 접근 할 수 있다면, 그는 자신의 흔적을 모두 지우고 심지어 당신 을 감시하기 위해 버그를 심을 수도 있습니다 . 반면에, 일부 흔적은 지워야하는 고통이며 모든 것을 생각하기가 어렵습니다.

다양한 일들이 이미 일반적으로, 시스템 로그에 기록됩니다 /var/log(일부 시스템과 같은 다른 위치를 사용 /var/logs하거나 /var/adm). 일반적인 구성에서는 모든 로그인과 마운트가 기록됩니다. 로그가 지워지는 것이 걱정되는 경우 원격 로깅을 설정할 수 있습니다 (이 작업을 수행하는 방법은 syslog 구현에 따라 다르지만 일반적으로 발신자 및 수신자의 구성 파일에서 변경하는 한두 줄입니다).

사용자 또는 배포에서이 기능을 비활성화하지 않은 경우 모든 파일에는 파일을 읽을 때마다 업데이트되는 액세스 시간 ( "atime")이 있습니다. 파일 시스템이 noatime또는 relatime옵션으로 마운트 된 경우 atime은 업데이트되지 않습니다. atime은으로 가짜 touch -a일 수 있지만 ctime을 업데이트하므로 추적이 남습니다. 루트조차도이 추적을 직접 제거 할 수 없으므로 파일 시스템 코드를 무시해야합니다.

다양한 프로그램에는 세션 기록이 있습니다. 침입자가 기억하는 경우 쉽게 제거하거나 위조 할 수 있습니다. Bash ~/.bash_history는 브라우저가 프로파일 디렉토리에 많은 것을 쓰는 경향이 있습니다. 당신은 또한에 오류 또는 경고를 말하는 찾을 수 있습니다 ~/.xsession-errors또는 /var/log/Xorg.0.log다른 시스템에 의존하는 위치입니다.

많은 유니 세에는 프로세스 회계 기능이 있습니다. 예를 들어 GNU 계정 유틸리티 매뉴얼 , FreeBSD 핸드북 에있는 항목 또는 Linux 하우투 또는 Solaris 안내서를 참조하십시오 . 활성화되면 사용자가 언제 어떤 프로세스를 시작했는지 기록 execve합니다 ( 통화 기록 ). 프로세스가 액세스하는 파일과 같이 기록하지 않는 흥미로운 정보가 많이 있습니다.

파일 시스템에 대한 모든 액세스를 모니터하려는 경우 logsfs를 통해 파일 시스템을 제공 할 수 있습니다 . 그 남자가보고 싶다고 생각하는 것은 매우 쉽습니다.

보다 포괄적 인 로깅 프로그램이 있지만 추가 커널 지원이 필요할 수 있습니다. Solaris, FreeBSD, NetBSD 및 Mac OS X에는 dtrace가 있습니다 (Linux 포트가 진행 중이지만 사용 가능한 단계에 도달했는지는 알 수 없습니다). ptrace시스템 호출에 대한 인터페이스 ( 예 : straceLinux) 를 통해 특정 프로세스를 추적 할 수도 있습니다 . 눈에 띄게 느려질 수 있습니다.

¹ 위키 백과에없는 것? 아냐, 미친 얘기 야


1

Fail2banDenyHØsts를 살펴보십시오 .


1
Fail2ban은 액세스 로그를보고 특정 작업 (예 : IP 금지)을 수행하지만 이러한 종류의 액세스 로그는 생성하지 않습니다. DenyHosts는 TCP 래퍼를 사용하여 IP를 다시 금지합니다. 이는 OP와 관련이 없습니다.
Barthelemy

1

이것은 정확히 당신이 찾고있는 것이 아니지만 일부 앱은 최근에 액세스 한 파일 목록을 유지합니다. 또한 그놈은 그 목록을 유지하는데,이 목록은 패널에서 액세스 할 수 있습니다.

또 다른 수정은 그놈 Activity Journal 을 사용하는 것입니다. 마지막으로 확인했지만 CLI 활동 기록을 유지하지 않았으며 파일 관련 활동 (읽기, 편집)에만 관심이 있었고 다른 활동은 무시했습니다.

/var/log많은 프로그램이 로그를 저장하는 디렉토리 내부를 볼 수도 있습니다 .


1

공격자 측에 충분한 탐색이 있다고 가정하면 script -qft $USER-$$ 2> $USER-$$-time해당 로그인 스크립트에 던져서 자신의 터미널 상호 작용을 모니터링하고 적절한 스크립트 재생 명령으로 재생할 수 있습니다.

파일 수준 액세스를 모니터링하려면 strace -fe opensshd에 적절한 로깅을 첨부하고 로그인 세션을 필터링 하는 것이 좋습니다 (또는 아마도이 작업을 수행하는 것이 좋습니다.) 경고 : 현대 시스템에서 작업을 수행 하면 많은 파일을 만지기 때문에 엄청난 출력 특정 파일 만 모니터링하려면 감사 및 지원 인프라를 살펴보십시오 .

다른 답변에 따라 syslog에서 세션 및 로그인 시도를 수집 할 수 있습니다.

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