내가 담당하는 특정 가상 머신에 대한 루트 액세스 권한을 가진 사람이 여러 명 있습니다. 루트로 로그인하는 데 사용할 IP 주소를 알고 싶습니다.
답변1
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의 답변과 유사합니다(파일 경로를 지정할 필요가 없기 때문에 조금 더 간단합니다).
답변2
이는 배포판이나 운영 체제에 따라 다릅니다. 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
실행 파일의 모든 로그 메시지를 나열합니다 . grep을 통해 루트 로그인이나 기타 기준을 찾아 --since
날짜별로 제한할 수 있습니다 --until
(참고자료 참조 man journalctl
).
또는 역사적으로 메시지는 (일반적으로) 에 기록됩니다 /var/log
. 일반적으로 sshd
메시지는 에 기록되지만 /var/log/auth.log
정확한 파일은 크게 다를 수 있습니다. 그것이 무엇이든:
grep sshd /var/log/auth.log
journalctl
해당 버전과 거의 동일한 출력을 제공합니다 .
답변3
주문하다
who /var/log/wtmp
who
표시된 것과 같은 정보를 표시해야 하지만 시간을 거슬러 올라갑니다.
답변4
간략하게 설명해주신 내용으로 볼 때 로그 모니터링 시스템을 설정해 놓으면 더 좋을 것 같습니다. 로그인을 모니터링하고, 알림을 생성하고, 며칠 동안의 데이터를 비교하고, 차트를 작성하는 데 도움이 됩니다.
하지만 모니터링이 필요한 경우일시적으로last
, 명령을 사용할 수 있습니다 .
last | grep root | grep -v tty | awk '{print $3}'
IPs
그러면 로그인 했거나 로그인 한 루트 사용자 목록이 제공됩니다 Hostnames
.