답변:
last
명령을 사용 하여이 정보를 얻을 수 있습니다
# last|head
phemmer ssh 192.168.0.24 Wed Aug 20 21:08 - 21:08 (00:00)
phemmer pts/13 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:07 - 23:07 (00:00)
phemmer pts/15 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer ssh 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer :0 Wed Jul 30 20:06 still logged in
reboot system boot 3.13.2-gentoo Wed Jul 30 20:05 still running
의심 할 여지없이, 세 번째 열에는 SSH 로그인시 원격 IP 주소가 표시됩니다.
last
/var/log/wtmp
파일을 사용 하므로이 방법은 G-Man의 답변과 비슷합니다 (파일 경로를 지정할 필요가 없으므로 조금 더 간단합니다).
배포판 또는 OS에 따라 다릅니다. sshd
각 로그인을 어딘가에 기록하고 다음과 같은 형식으로 관련 IP 주소를 로그인에 포함합니다.
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
그 부분은 일관되지만, 어떻게 가는지는 다양 할 수 있습니다. 에 기반한 시스템 systemd
에서는 다음을 사용하십시오 journalctl
.
journalctl /usr/bin/sshd
sshd
실행 파일 에서 모든 로그 메시지를 나열합니다 . 루트 로그인이나 다른 기준에 대해이 정보를 가져 와서 날짜별로 제한 할 수 있습니다 ( --since
및 --until
참조 man journalctl
).
또는 역사적으로 메시지는 (보통) 어딘가에 로그인됩니다 /var/log
. 일반적으로 sshd
메시지는로 들어가 /var/log/auth.log
지만 정확한 파일은 크게 다를 수 있습니다. 어느 쪽이든
grep sshd /var/log/auth.log
journalctl
버전 과 동등한 출력을 제공합니다 .
명령
who /var/log/wtmp
보여지는 것과 같은 정보를 보여 주어야 who
하지만 시간이 지나면 다시 돌아갑니다.
last
누가 루트로 로그인했는지 감사 하려면 사람들이 ssh
루트로 직접 로그인하여 (루트 암호 또는 인증서 를 사용 하여) 사람들이 사용할 수 없도록해야 /root/.ssh/authorized_keys
합니다. 대신 각 사람에 대해 하나의 계정을 사용 sudo
하여 루트 권한을 얻는 데 사용하십시오. 이 방법으로 적절한 로그에서 로그 파일의 위치는 배포에 따라 다르며 다른 컴퓨터로 메시지를 보내도록 로그 데몬을 구성 할 수도 있습니다 user john ran the command 'sudo rm -rf /'
. 글쎄, 아마도 당신은 로그에서 그 하나의 명령을 쉽게 찾을 수 없을 것입니다.
sudo
힘. 두 사람이 계정을 공유해야하는 실질적인 이유는 없지만 필요한 경우 두 계정을 가질 수 있습니다.
root
계정을 공유하는 것보다 거의 확실히 개선 된 것 입니다.
sudo less /root/.bash_history
, 난 아직이 정보 조회 노력하고, :) 정말 좋은 질문처럼 보인다