사용자가 실행 한 모든 명령을 어떻게 기록합니까?


32

서버에서 모든 사용자의 활동을 모니터링하고 싶습니다.

사용자가 vim과 같은 일부 편집기에서 쉘 명령을 실행하더라도 로그 파일에서보고 싶습니다.

도구 acct을 확인했지만 전체 명령이 나열되지 않았습니다. (이미 수행 된 일부 옵션을 놓친 경우 수정하십시오).

이 문제를 해결하기 위해 어떤 Linux 도구를 살펴 봐야합니까?


1
. man script (1)
adaptor


답변:


32

로그인을 담당하는 pam 설정에이 줄을 추가하십시오 (redhat 기반 배포판의 시스템 인증)

session    required     pam_tty_audit.so enable=*

수행 된 작업을 찾으려면 사용할 수 있습니다.

ausearch -ts <some_timestamp> -m tty -i

이것은 다음과 같은 출력을 생성합니다.

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

이것의 유일한 단점은 읽기가 조금 어려울 수 있지만 이론적으로 전체 세션을 기록하는 데 사용될 수 있기 때문에 대부분의 제안 된 솔루션보다 훨씬 낫습니다.

편집 : 아 그리고 당신은 더 도움이 될 수있는 목록을 생성하기 위해 아우 레 포트를 사용할 수 있습니다.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

자세한 내용에 감사드립니다. Ubuntu 10.04 LTS를 사용하고 있습니다. / lib / security / 폴더를 확인하면 모듈이 없지만 해당 모듈에 대한 매뉴얼 페이지가 있습니다. 이 버그를 발견 했다고 생각합니다. bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 해당 모듈을 설치할 수있는 다른 방법이 있습니까?
Supratik

버그 보고서는 수정 및 업데이트가 배포되었음을 나타냅니다.
Matthew Ife

@Mlfe PAM 소스 코드를 컴파일하고 .so 파일을 / lib / security /에 복사하여 작동했습니다. 다시 감사합니다.
Supratik

1
@CameronKerr : 비밀번호 문제가 수정되었습니다 : redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
위의 작업을 auditd위해서는 데몬을 먼저 활성화해야합니다 (기본적으로 CentOS 6.7 설치에서는 아니 었습니다). 데몬을 시작하려면 service auditd start을 사용하고이 변경 사항을 영구적으로 (재부팅 한 후) 유지하려면 chkconfig auditd on Source : access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…access.redhat.com/documentation/en-US/ Red_Hat_Enterprise_Linux /…
jonny


2

snoopy를 사용할 수 있습니다 .

간단한 명령 로깅 라이브러리이며 적절한 감사 솔루션이 아닙니다 (쉽게 우회 됨). 공개 : 저는 현재 스누피 관리자입니다.


2

덜 알려진 트릭이지만 가장 멋진 방법은의 기본 제공 감사 기능을 사용하는 것입니다 sudo. Sudo sudoreplay는 세션을 쉽게 재생할 수 있는 명령 과 함께 제공됩니다 . vim세션을 중계 할 수도 있습니다 (제안한대로).

몇 가지 간단한 단계로 사용하는 방법은 다음과 같습니다.

  1. sudosh시스템에 설치 하십시오. 이것은 sudo명령을 중심 으로 사용자를 만드는 쉘 래퍼 sudo(not not root)이며 시스템 로그인 쉘로 사용될 수 있습니다.
  2. sudo로깅을 활성화 하십시오. 편집 /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. 다음 명령을 /etc/shells사용하여 로그인을 허용하십시오. /usr/bin/sudosh

    : 사용자가 다른 쉘을 사용하여 로그인하지 못하게하려면에서 다른 쉘을 제거하십시오 /etc/shells.

  4. foobar을 사용 하도록 사용자 를 업데이트하십시오 sudosh. chsh -s /usr/bin/sudosh foobar

자세한 내용은 https://github.com/cloudposse/sudosh/를 참조하십시오.


1

여기 마술 솔루션이 있습니다 : http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum 설치 psacct (redhat)
  • sudo apt-get 설치 acct

사용자 명령 / 연결 등에 대한 통계를 표시합니다.

지정된 사용자가 호출 한 모든 명령을 나열합니다 ...

명령 이름으로 계정 로그를 검색하십시오. $ lastcomm rm $ lastcomm passwd

자세한 내용은 위의 링크를 방문하십시오.


3
질문에서 'acct 그것은 완전한 명령을 나열하지 않습니다'.
Putnik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.