누가 언제 접속했는가? 사용자 접속정보 확인하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 5,486 조회
- 0 추천
- 목록
본문
누가 언제 접속했는가? 사용자 접속정보 확인하기
우리가 직접관리하고 있는 리눅스시스템에 어떤 사용자들이 접속하였는가를 확인할 수 있어야 한다.
서버용으로 사용되는 시스템이기 때문에 어떤 사용자가 로그인하였는지 반드시 주기적으로 확인 및 점검해야 한다.
즉, 시스템 접속정보를 확인해야한다는 것이다.
이 작업은 last라는 명령어로 확인할 수 있다.
즉, 각 계정사용자들의 로그인 정보를 보여주는 명령어이다.
흔히 시스템관리자는 시스템의 모든 계정사용자별로 서버에 접속한 시간과 IP주소등을 주기적으로 확인해야 한다.
또한 특정 계정사용자의 접속정보만을 확인해야 할 때에도 마찬가지이다.
다음예를 보면 알겠지만 last는
다양한 방법으로 사용자들의 로그인 정보를 조사한다.
또한 이 명령어는 서버의 재부팅정보를 확인하는데 사용되기도 한다.
즉, last로 확인할 수 있는 시스템관련 정보들은 다음과 같은 것들이 있다.
. 접속계정명
. 접속장치명
. 접속한 IP주소 정보 : 접속한IP주소
. 접속시간 정보 : 접속하여 서버에 머문 시간
. 접속기간 정보 : 접속한 시간의 요일,월, 일, 시간 - 기타
. 시스템 재부팅 정보
결론적으로 위와 같은 정보들을 확인하기 위하여 last명령어를 사용한다.
참고사항으로는 /var/log/wtmp파일에는 모든 계정사용자들의 접속정보와 부팅정보가 저장되어 있다.
last명령어는 모든 계정들의 접속정보가 기록되어있는 /var/log/wtmp파일을 참조하여 출력결과를 보여준다.
만약 여러분의 서버에
/var/log/wtmp파일이 존재하지 않는다면 "touch
/var/log/wtmp"라는 명령어로 만들어주기 바란다.
리눅스는 /var/log/wtmp파일이 존재할 경우에만 접속정보를 기록하기 때문이다.
자, 그럼 이제 실제 예를 보도록 하자. 다음 예는 현재 필자의 시스템에서 아무런 옵션없이last만을 실행한 결과이다.
[root@sulinux ~]#last root pts/1 :0.0 Fri Mar 6 05:10 still logged in root pts/1 :0.0 Fri Mar 6 05:10 - 05:10 (00:00) root :0 Fri Mar 6 05:09 still logged in root :0 Fri Mar 6 05:09 - 05:09 (00:00) root pts/0 192.168.0.156 Fri Mar 6 01:36 still logged in reboot system boot 2.6.18-92.SUL2.f Fri Mar 6 01:10 (04:24) root pts/1 192.168.0.156 Thu Mar 5 08:45 - down (00:26) root pts/0 192.168.0.156 Thu Mar 5 07:55 - 09:12 (01:16) reboot system boot 2.6.18-92.SUL2.f Thu Mar 5 07:54 (01:17) root pts/0 192.168.0.151 Tue Mar 3 07:57 - down (03:32) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:56 (03:34) root pts/0 192.168.0.151 Tue Mar 3 07:54 - down (00:00) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:53 (00:01) root pts/2 192.168.0.151 Tue Mar 3 07:51 - down (00:01) root pts/1 192.168.0.151 Tue Mar 3 07:48 - down (00:03) root pts/0 :0.0 Tue Mar 3 07:47 - down (00:04) root :0 Tue Mar 3 07:47 - down (00:05) root :0 Tue Mar 3 07:47 - 07:47 (00:00) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:42 (00:09) root :0 Mon Mar 2 13:45 - down (00:18) root :0 Mon Mar 2 13:45 - 13:45 (00:00) root pts/4 192.168.0.151 Mon Mar 2 13:37 - down (00:26) root pts/3 192.168.0.151 Mon Mar 2 13:34 - down (00:30) root pts/2 192.168.0.151 Mon Mar 2 13:33 - down (00:30) |
즉, 위의 결과는 시스템의 모든 사용자들의 로그인정보 즉, 접속정보이다.
위의 결과를 보면 시스템이 재부팅되었던 정보(reboot행), 즉 시스템재부팅 횟수와 시각등을 확인할 수 있으며 시스템에 한번 이상 로그인 했던 모든 계정사용자들의 로그인정보를 확인 할 수 있다.
이러한 정보들은 서버 해킹등의 심각한 상황에서 계정사용자들이 어디에서, 언제 서버로 로그인하여, 얼마나 머물렀었는가를 확인하기 위한 매우 중요한 정보들을 담고 있다.
위의 예는 시스템의 모든 사용자들에 대한 접속정보를 확인한 것이라면 이번에는 각 사용자 개별적으로 접속정보를 확인한 예를 보자. 즉, “last 사용자”형식으로 실행하면 해당 사용자에 대한 로그인 접속정보만을 출력한다.
실제 예를 보면 다음과 같다.
[root@sulinux ~]#last sspark sspark pts/1 192.168.0.150 Sun Feb 15 22:42 - 02:00 (03:18) sspark pts/1 192.168.0.245 Fri Feb 13 07:51 - 08:04 (00:13)
wtmp begins Mon Feb 9 18:14:24 2009 [root@sulinux ~]# |
즉, 위의 결과를 보면 sspark이라는 사용자는 총 2회에 걸쳐서 시스템에 로그인 했음을 알 수 있다.
물론 위의 결과에서 접속했던 IP주소와 시각 등 매우 중요한 정보들도 함께 확인할 수 있다.
그리고 "last -t YYYYMMDDHHMMSS"형식으로 last를 실행하면 특정일 이전에 시스템에 접속한 사용자들에 대한 접속정보만을 확인할 수 있다.
다음 예를 보자.
[root@sulinux ~]#last -t 20110115010101 root pts/1 :0.0 Fri Mar 6 05:10 still logged in root pts/1 :0.0 Fri Mar 6 05:10 - 05:10 (00:00) root :0 Fri Mar 6 05:09 still logged in root :0 Fri Mar 6 05:09 - 05:09 (00:00) root pts/0 192.168.0.156 Fri Mar 6 01:36 still logged in reboot system boot 2.6.18-92.SUL2.f Fri Mar 6 01:10 (05:07) root pts/1 192.168.0.156 Thu Mar 5 08:45 - down (00:26) root pts/0 192.168.0.156 Thu Mar 5 07:55 - 09:12 (01:16) reboot system boot 2.6.18-92.SUL2.f Thu Mar 5 07:54 (01:17) root pts/0 192.168.0.151 Tue Mar 3 07:57 - down (03:32) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:56 (03:34) root pts/0 192.168.0.151 Tue Mar 3 07:54 - down (00:00) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:53 (00:01) root pts/2 192.168.0.151 Tue Mar 3 07:51 - down (00:01) root pts/1 192.168.0.151 Tue Mar 3 07:48 - down (00:03) |
즉, 위의 예는 2011년 01월 15일 01시 01분 01초 이전에 시스템에 접속한 사용자들에 대한 접속정보만을 확인한 것이다.
시스템 보안감사에 매우 유용하게 사용될 수 있으므로 꼭 기억해 두기 바란다.
이번에는 시스템이 재부팅되었던 정보만을 확인해 보도록 하자. last명령어로 재부팅한 정보를 확인한다는 것이 좀 생소하게 들릴지 모르지만 “last reboot”이라고 하면 시스템 재시작했던 기록만을 보여주게 된다.
다음 예를 보자.
[root@sulinux ~]#last reboot reboot system boot 2.6.18-92.SUL2.f Fri Mar 6 01:10 (05:11) reboot system boot 2.6.18-92.SUL2.f Thu Mar 5 07:54 (01:17) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:56 (03:34) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:53 (00:01) reboot system boot 2.6.18-92.SUL2.f Tue Mar 3 07:42 (00:09) reboot system boot 2.6.18-92.SUL2.f Mon Mar 2 10:31 (03:32) reboot system boot 2.6.18-92.SUL2.f Sat Feb 28 16:11 (00:15) reboot system boot 2.6.18-92.SUL2.f Fri Feb 27 15:19 (1+00:51) reboot system boot 2.6.18-92.SUL2.f Fri Feb 27 14:47 (00:03) reboot system boot 2.6.18-92.SUL2.f Fri Feb 27 14:29 (00:17) |
위의 결과는 시스템 재부팅기록만을 확인한 것이다.
일반적으로 실제 서비스에 사용되고 있는 시스템이라면 특별한 사유가 없다면 1년에 약 2~3번 정도 시스템점검등을 위하여 재부팅을 한다.
만약 위의 경우예와 같이 짧은 기간 내에reboot된 정보가 많다면 시스템 재부팅이 자주되었다는 의미가 되는데 이것은 관리자가 아닌 다른 사유로 인하여 재부팅되었을 가능성이 있다고 볼 수 있다.
즉, 위의 결과를 참고하여 시스템 점검을 해보아야 한다 .
이외에도 다음과 같은 유용한 방법으로 last명령어를 실행할 수 있다.
① "last -n 원하는행의수" 또는 “last -원하는행의수”
last의 결과 중 지정한 행의 수만큼만 확인하기(예: last -5 root, last -10 sspark)
② “last -R”
last의 결과 중 IP주소 정보만을 제외한 나머지 정보만 확인하기
③ “last -a”
last의 결과 중 IP주소를 해당 행의 마지막열에 표시하기
④ “last -d”
last의 결과 중 외부 접속정보만을 확인하기
관련자료
-
이전
-
다음