내 Linux 시스템에 로그인한 모든 사용자의 기록을 보기 위해 Linux red-hat 6.x 시스템에 패키지 감사를 설치했습니다.
yum install audit
설치 후 감사 서비스를 다시 시작합니다.
service auditd start
사용자 기록을 보기 위해 audir.log 파일을 추적합니다.
tail -f /var/log/audit/audit.log
하지만 이 로그에서는 사용자 IP와 그가 내 Linux 시스템에 로그인했을 때만 볼 수 있습니다.
사용자가 실행한 Linux 명령 기록은 표시되지 않습니다.감사 로그
왜 우리가 리눅스 명령의 기록을 볼 수 없는지 제안할 수 있는 사람이 있습니까?감사 로그?
의 예감사 로그
type=USER_START msg=audit(1422876162.936:152): user pid=28114 uid=0 auid=0 ses=74236 msg='op=PAM:session_open acct="root" exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=ssh res=s'
type=USER_LOGIN msg=audit(1422876162.940:153): user pid=28116 uid=0 auid=0 ses=74236 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=/dev/pts/1 res=success'
type=USER_START msg=audit(1422876162.940:154): user pid=28116 uid=0 auid=0 ses=74236 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=/dev/pts/1 res=success'
type=CRYPTO_KEY_USER msg=audit(1422876162.940:155): user pid=28116 uid=0 auid=0 ses=74236 msg='op=destroy kind=server fp=99:c8:56:79:64:17:0b:67:b5:6c:e9:36:22:8a:b1:88 direction=? spid=28116 suid=0 '
type=CRYPTO_KEY_USER msg=audit(1422876162.940:156): user pid=28116 uid=0 auid=0 ses=74236 msg='op=destroy kind=server fp=6f:b9:bf:4f:84:1f:58:e5:d2:1c:94:1f:11:8e:26:61 direction=? spid=28116 suid=0 '
type=CRED_REFR msg=audit(1422876162.940:157): user pid=28116 uid=0 auid=0 ses=74236 msg='op=PAM:setcred acct="root" exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=ssh res=success'
- 참고: 이 도구로 각 사용자의 기록에 대한 감사를 완료할 수 없는 경우 해당 작업을 수행할 수 있는 다른 도구를 찾는 데 도움을 주십시오.
답변1
일부 외부 도구를 사용하는 것보다 약간 더 많은 노력이 필요할 수 있지만 last
대신 utmpdump
이러한 파일을 사용하여 필요한 모든 원격 로그인 정보를 제공하십시오(읽기http://xmodulo.com/monitor-user-login-history-centos-utmpdump.html이러한 파일에 대한 자세한 내용은 다음을 참조하세요.
/var/log/wtmp
/var/log/btmp
/var/run/utmp
위에서 언급한 것처럼 사용자 셸 명령 내역을 직접 처리할 수 있습니다.
답변2
auth.log
추가 패키지 없이도 이미 로그인 데이터를 사용할 수 있는 것 아닌가요 ?
command-history
이는 셸 문제입니다. 이를 기록하려면 셸(시스템의 모든 셸)에 각 입력 줄을 기록할 수 있는 기능을 제공해야 합니다(그러나 사용자가 실제로 기록을 피하고 싶다면 언제든지 방법을 찾을 수 있습니다). 이는 쉘뿐만 아니라 모든 애플리케이션이 원하는 명령을 분기하고 실행할 수 있기 때문입니다. 따라서 유일한 확실한 방법은 시스템에서 시작된 모든 프로세스를 기록하는 것입니다(아래 두 번째 링크 참조). 그러나 이는 원칙적으로 누군가가 호출할 수 있고 명령줄로만 볼 수 있는 echo "malicious command" | bash
새 프로세스 생성을 필요로 하지 않는 쉘에서 수행되는 모든 작업(모든 쉘 내장 기능)을 제외합니다. bash
따라서 쉘 로깅과 실행 로깅 모두 실행 가능한 접근 방식이 될 수 있습니다.
관련된 링크들:
https://stackoverflow.com/questions/15698590/how-to-capture-all-the-commands-typed-in-unix-linux-by-any-user 사용자가 실행한 명령의 로그 파일
답변3
프로세스 계정을 사용할 수도 있습니다. Fedora에서 psacct 서비스를 찾아 활성화합니다.
그런 다음 다음을 실행하여 사용자가 수행한 작업/현재 수행 중인 작업을 확인할 수 있습니다.
sa (list of all commands)
lastcomm bash (who ran bash)
lastcomm vpathak (what was run by vpathak)
이것은 일부 쉘 기록과 함께 좋은 개요를 제공할 것입니다.
로그인 출처와 사용된 키를 더 잘 이해하기 위해 침입 시도에 대한 자세한 단계별 조사를 볼 수도 있습니다.http://vpathak.tumblr.com/post/121343814158/fedora-audit-log-with-love-from-Russia