강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

누가 언제 접속했는가? 사용자 접속정보 확인하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

누가 언제 접속했는가? 사용자 접속정보 확인하기

 

 

 

 

 

우리가 직접관리하고 있는 리눅스시스템에 어떤 사용자들이 접속하였는가를 확인할 수 있어야 한다.

 

 

 

 

 

 

 서버용으로 사용되는 시스템이기 때문에 어떤 사용자가 로그인하였는지 반드시 주기적으로 확인 및 점검해야 한다.

 

 

 

 

 

 

 , 시스템 접속정보를 확인해야한다는 것이다.

 

 

 

 

 

 이 작업은 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의 결과 중 외부 접속정보만을 확인하기

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  98 명