시스템사용자들에 대한 최근 접속정보를 확인하라.
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,611 조회
- 0 추천
- 목록
본문
시스템사용자들에 대한 최근 접속정보를 확인하라.
우리는 앞에서 last라는 것을 이용하여 시스템 접속정보를 확인하는 방법을 배웠다.
앞에서 배웠던 last는 모든 사용자의 모든 정보를 보여주지만, 우리에게 필요한 접속정보는 각 사용자들이 언제 마지막으로 접속하였는가에 대한 각 사용자들의 최근 접속정보를 확인하는 방법이 필요할 것이다.
이런 정보는 lastlog라는 명령어로 확인할 수 있다.
즉, 시스템관리자라면 출력되는 정보만을 확인하는 것도 필수적으로 확인해야 할 사항이지만 “이 정보가 어떤 환경에서 출력되었고 또한 그 결과를 어떤 의미로 해석해야 하는가?”라는 단계까지 분석할 수 있어야만 유능한 시스템관리자라고 할 수 있다.
결론적으로 다음과 같이 정리할 수 있다.
/etc/passwd파일에 정의되어 있는 모든 사용자들의 마지막 접속정보를 확인하는 명령어가lastlog이다.
그리고 다음 사항을 반드시 꼭(강조 또 강조) 기억해 두기 바란다.
앞에서 배웠던 last명령어가 /var/log/wtmp파일을 참조하여 사용자들의 접속정보를 출력하는 것과 같이 이번절에서 설명하는 lastlog는 /var/log/lastlog파일의 정보에 저장된 정보를 참조하여 각 계정사용자들의 최근 접속정보를 출력한다.
/var/log/wtmp파일과 /var/log/lastlog파일은 바이너리파일로 되어있기 때문에 cat이나 vi등의 일반적인 방법으로는 확인할 수 없다.
따라서 /var/log/wtmp파일은 last명령어로 확인하고 /var/log/lastlog파일은 lastlog명령어로 그 내용을 확인한다.
아울러 한가지 더 알아두어야 할 것은 /var/log/lastlog파일에 저장되는 형식은 /usr/include/lastlog.h 파일에 정의된 포맷(format)으로 저장된다는 점이다.
/usr/include/lastlog.h 파일을 잠깐 살펴보면 다음과 같다.
[root@sulinux ~]#cat /usr/include/lastlog.h /* This header file is used in 4.3BSD to define `struct lastlog', which we define in <bits/utmp.h>. */
#include <utmp.h> [root@sulinux ~]# [root@sulinux ~]#ls -l /usr/include/utmp.h -rw-r--r-- 1 root root 3334 7월 10 2008 /usr/include/utmp.h [root@sulinux ~]# |
결론적으로 /var/log/lastlog파일에 저장되는 포맷(format)은 /usr/include/utmp.h파일에 지정된 포맷을 사용한다는 것을 알 수 있다.
관심있는 분들이라면 /usr/include/utmp.h파일의 내용을 한번쯤 살펴보기 바란다.
자, 이제 다음 lastlog에 대한 예를 보도록 하자.
[root@sulinux ~]#lastlog 사용자명 포트 ~로부터 최근정보 root :0 금 3월 6 05:09:55 +0900 2009 bin **한번도 로그인한 적이 없습니다** daemon **한번도 로그인한 적이 없습니다** adm **한번도 로그인한 적이 없습니다** lp **한번도 로그인한 적이 없습니다** sync **한번도 로그인한 적이 없습니다** shutdown **한번도 로그인한 적이 없습니다** halt **한번도 로그인한 적이 없습니다** mail **한번도 로그인한 적이 없습니다** news **한번도 로그인한 적이 없습니다** uucp **한번도 로그인한 적이 없습니다** operator **한번도 로그인한 적이 없습니다** games **한번도 로그인한 적이 없습니다** gopher **한번도 로그인한 적이 없습니다** ftp **한번도 로그인한 적이 없습니다** nobody **한번도 로그인한 적이 없습니다** rpm **한번도 로그인한 적이 없습니다** dbus **한번도 로그인한 적이 없습니다** avahi **한번도 로그인한 적이 없습니다** ntp **한번도 로그인한 적이 없습니다** mailnull **한번도 로그인한 적이 없습니다** smmsp **한번도 로그인한 적이 없습니다** nscd **한번도 로그인한 적이 없습니다** vcsa **한번도 로그인한 적이 없습니다** rpc **한번도 로그인한 적이 없습니다** rpcuser **한번도 로그인한 적이 없습니다** named **한번도 로그인한 적이 없습니다** sshd **한번도 로그인한 적이 없습니다** pcap **한번도 로그인한 적이 없습니다** distcache **한번도 로그인한 적이 없습니다** haldaemon **한번도 로그인한 적이 없습니다** xfs **한번도 로그인한 적이 없습니다** gdm **한번도 로그인한 적이 없습니다** sspark pts/1 192.168.0.150 일 2월 15 22:42:27 +0900 2009 sulinux pts/2 192.168.0.156 금 3월 6 06:32:55 +0900 2009 [root@sulinux ~]# |
**Never logged in**" 또는 “**한번도 로그인한 적이 없습니다**”는 해당계정이 생성 이후 부터 지금까지 한번도 시스템에 접속한 적이 없다는 것을 의미한다.
위와 같이 시스템의 모든 사용자에 대한 마지막 시스템접속정보를 확인할 수 있다.
그리고 다음과 같이 보다 유용한 정보를 확인할 수 있다.
① “lastlog -u 사용자ID”
해당 사용자에 대한 마지막 접속정보만을 확인
② “lastlog -b N”
지정한 N일 이전에 접속한 마지막 접속정보만을 확인
③ “lastlog -t 일자”
최근 명일 전부터 현재까지의 마지막 접속정보만을 확인
④ “lastlog -u 사용자ID -b N”
지정한 N일 이전에 접속한 해당 사용자의 마지막 접속정보만을 확인
다음 예를 보자. 즉, 다음은 ssaprk사용자의 대한 접속정보 가운데 최근 5일 이전부터 현재까지 언제 마지막으로 접속하였는가를 확인하는 예이다.
[root@sulinux ~]#lastlog -u sspark -b 5 사용자명 포트 ~로부터 최근정보 sspark pts/1 192.168.0.150 일 2월 17 22:42:27 +0900 2010 [root@sulinux ~]# |
그리고 다음은 최근 10일 전부터 현재까지의 접속한 기록들 가운데 마지막 접속기록들만 확인한 예이다.
[root@sulinux ~]#lastlog -t 10 사용자명 포트 ~로부터 최근정보 root :0 금 3월 5 05:09:55 +0900 2010 sspark pts/2 192.168.0.156 금 3월 5 06:38:16 +0900 2010 sulinux pts/2 192.168.0.156 금 3월 5 06:32:55 +0900 2010 [root@sulinux ~]# |
지금까지의 설명내용으로도 알 수 있듯이 lastlog는 보안감사에 매우 유익한 도구가 된다.
관련자료
-
이전
-
다음