서버에서 모든 사용자의 활동을 모니터링하고 싶습니다.
사용자가 vim과 같은 일부 편집기에서 쉘 명령을 실행하더라도 로그 파일에서보고 싶습니다.
도구 acct을 확인했지만 전체 명령이 나열되지 않았습니다. (이미 수행 된 일부 옵션을 놓친 경우 수정하십시오).
이 문제를 해결하기 위해 어떤 Linux 도구를 살펴 봐야합니까?
서버에서 모든 사용자의 활동을 모니터링하고 싶습니다.
사용자가 vim과 같은 일부 편집기에서 쉘 명령을 실행하더라도 로그 파일에서보고 싶습니다.
도구 acct을 확인했지만 전체 명령이 나열되지 않았습니다. (이미 수행 된 일부 옵션을 놓친 경우 수정하십시오).
이 문제를 해결하기 위해 어떤 Linux 도구를 살펴 봐야합니까?
답변:
로그인을 담당하는 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>
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 /…
문제에 대한 최상의 솔루션은 Linux의 내장 감사 시스템입니다. 사용 man 8 auditd
하거나 자세한 내용은이 페이지를 확인하십시오 http://linux.die.net/man/8/auditd .
또한 이 학습서 를 확인할 수 있습니다. 질문의 범위를 약간 벗어난 반면 감사 시스템의 작동 방식을 보여줍니다.
덜 알려진 트릭이지만 가장 멋진 방법은의 기본 제공 감사 기능을 사용하는 것입니다 sudo
. Sudo sudoreplay
는 세션을 쉽게 재생할 수 있는 명령 과 함께 제공됩니다 . vim
세션을 중계 할 수도 있습니다 (제안한대로).
몇 가지 간단한 단계로 사용하는 방법은 다음과 같습니다.
sudosh
시스템에 설치 하십시오. 이것은 sudo
명령을 중심 으로 사용자를 만드는 쉘 래퍼 sudo
(not not root
)이며 시스템 로그인 쉘로 사용될 수 있습니다.sudo
로깅을 활성화 하십시오. 편집 /etc/sudoers.d/sudosh
:
Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults!/sbin/reboot !log_output
다음 명령을 /etc/shells
사용하여 로그인을 허용하십시오.
/usr/bin/sudosh
팁 : 사용자가 다른 쉘을 사용하여 로그인하지 못하게하려면에서 다른 쉘을 제거하십시오 /etc/shells
.
쉘 foobar
을 사용 하도록 사용자 를 업데이트하십시오 sudosh
.
chsh -s /usr/bin/sudosh foobar
자세한 내용은 https://github.com/cloudposse/sudosh/를 참조하십시오.
여기 마술 솔루션이 있습니다 : http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html
사용자 명령 / 연결 등에 대한 통계를 표시합니다.
지정된 사용자가 호출 한 모든 명령을 나열합니다 ...
명령 이름으로 계정 로그를 검색하십시오. $ lastcomm rm $ lastcomm passwd
자세한 내용은 위의 링크를 방문하십시오.