SSH 세션에서 발생하는 모든 것을 어떻게 기록합니까?

SSH 세션에서 발생하는 모든 것을 어떻게 기록합니까?

질문: Linux 또는 AIX 시스템에서 SSH를 통해 발생하는 상황을 어떻게 기록합니까? 예를 들어, 사용자가 로그인하거나 일부 명령을 실행하거나 자동화된 도구가 ssh를 통해 작업을 수행하거나 누군가가 "ssh root@server commandhere" 명령을 실행합니까?

답변1

sudo명령에는 세션을 감사한 다음 재생할 수 있는 기능이 있습니다. 대부분의 사람들은 sudo명령을 실행하는 데 익숙하지만 root사용자가 자신에게만 명령을 실행하도록 허용하는 간단한 규칙을 정의할 수 있습니다 sudo(즉, 사용자가 할 수 없는 일은 없습니다!).

사용하여sudosh사용자의 로그인 셸로 모든 내용( , 등)을 강제로 기록할 stdinstdout있습니다 stderr. 대화형 및 비대화형 쉘 모두에서 작동하며 vim.

sudoreplay그런 다음 이 명령을 사용하여 세션 기록을 볼 수 있습니다. 심지어 대화형 프로그램(예: vim.

세션 감사 로깅을 활성화하는 것은 sudo쉽습니다.

에 추가하세요/etc/sudoers.d/sudosh

Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults!/sbin/reboot !log_output

사용자가 직접 수행할 수 있도록 하려면 sudo다음과 같은 줄을 파일에 추가하세요 /etc/sudoers.d/sudosh.osterman.

osterman ALL=(osterman) ALL

osterman그런 다음 사용자 세션을 강제로 기록하려면(예를 들어) 다음을 실행합니다.

chsh -s /usr/bin/sudosh osterman

다운로드sudosh 여기. 이미 설치되어 있다고 가정합니다 sudo.

답변2

kshAIX는 각 사용자의 homedir에 생성되는 기본 쉘에 대해 이 기능을 제공합니다 ..sh_history

나는 항상 쉘 변수를 추가하는 것을 좋아합니다(예: EXTENDED_HISTORY=ON내보내기)./etc/profile

history -t이제 기록을 사용하거나 볼 수 있습니다 fc -t.

기록 파일은 대화형 셸이 시작될 때만 생성되므로 스크립트의 명령이 거기에 기록되는지 완전히 확신할 수 없습니다.

이 로깅이 정말로 필요하다면 더 확인해 보시기 바랍니다.IBM 감사 및 회계 레드북아니면 비슷한 도구를 사용하세요인계철선.

답변3

PaSSHport가 이 질문에 답합니다. 오픈 소스이며 OpenSSH를 통해 SSH 액세스를 관리합니다.

사용자가 연결하거나 "ssh root@server commandhere"와 같은 명령을 직접 시작하면 스크립트 명령/로깅 명령이 시작됩니다. 따라서 나중에 "최고 관리자"는 로그를 확인하고 각 명령과 그 결과(스크립트를 통해 수행된 경우)를 확인할 수 있습니다.

이 소프트웨어는 아주 새로운 것이지만 이미 대규모 환경에서 사용되고 있습니다.

관련 정보