SSH 세션에서 사용자가 무엇을 하고 있는지 확인하는 방법

SSH 세션에서 사용자가 무엇을 하고 있는지 확인하는 방법

나는 루트로 서버에 로그인하고 작업을 실행했는데 w, 이를 통해 사용자가 파일을 편집하는 것을 볼 수 있었습니다.

someuser  pts/5    10.117.0.53      14:03    3:25   1.20s  1.14s vi somefile.py

그런 다음 연결을 끊었다가 나중에 루트로 다시 연결했습니다. 다시 해봤는데 w이번엔 뭔가 다른 모습을 보여줬네요.

someuser  pts/5    10.117.0.53      14:03    5:20   0.20s  0.02s sshd: someuser [priv]

다른 필드에서 이 사용자가 동일한 사용자라는 것을 알 수 있지만 이번에는 그들이 수행하는 작업이 숨겨져 있습니다.

왜 숨겨졌나요? 그들이 무엇을 하고 있는지 어떻게 알 수 있나요?

답변1

사용자가 를 사용하는 경우 bash다음을 추가할 수 있습니다 /etc/bash.bashrc.

readonly PROMPT_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'

그러면 모든 사용자 명령이 시스템 로그에 기록됩니다.

잠긴 중앙 syslog 서버로 로그가 전달되도록 구성하겠습니다 syslog. 그러면 해커 공격이나 악의적인 sysadmin이 발생하더라도 증거를 조작할 수 없습니다.

답변2

시스템에서 auditd가 활성화된 경우 감사 로그를 보고 사용자의 명령 활동을 이해할 수 있습니다. 이는 시스템에서 다른 사용자의 작업으로 인해 발생할 수 있는 문제를 법의학적으로 해결하려고 할 때 시스템 관리자가 자주 사용하는 유용한 리소스입니다.

답변3

사용자 기록 파일 보기와 같은 간단한 작업을 시도해 볼 수 있습니다. 이는 사용자의 쉘이 bash.

cat /home/someuser/.bash_history

관련 정보