1. 로그파일의 종류
리눅스에서 로그파일은 일반적으로 /var/log에 기록이 된다.
파일명
|
기능
|
boot.log
|
부팅 및 각종 서비스 시작 및 중지에 대한 기록
|
cron.log
|
크론 활동 관련 기록
|
dmesg
|
시스템 부팅 관련 기록
|
lastlog
|
사용자의 마지막 로그인 시간 기록 (last 명령 이용 확인)
|
maillog
|
메일 서비스 관련 기록
|
messages
|
커널 에러, 리부팅 메시지, 로그인 실패 등 시스템 콘솔에서 출력된 결과를 기록하고 syslog에 의하여 생성된 메시지도 기록
|
secure
|
로그인 인증 및 보안 관련 주요 로그
|
wtmp
|
사용자 로그인, 로그아웃 시간, 시스템 종료 시간등 기록
(last 명령 이용 확인)
|
xferlog
|
ftp 접근 관련 기록
|
utmp
|
현재 로그인한 사용자에 대한 상태 기록
(w, who 등 이용 확인) 레드햇에서는 /var/run/wtmp에 있음
|
.history
|
사용자 홈디렉토리에 있으며 사용자가 쉘상에서 작업한 것을 기록
|
사용자에 따라 sulog, pacct 등이 있을 수 있으며 이외에도 여러 인터넷 서비스에 따라 로그기록을 한다. 또한 일반 텍스트 형태의 파일만 있는 것이 아니라 utmp, utmp 등 바이너리 형태로 로그 기록을 하는 경우도 있다. 로그파일은 시스템에서 발생했던 상황을 모두 기록으로 남기기 때문에 문제가 발생하였을 때 출발점이 될 수 있으며 크래킹 여부를 판단할 수 있는 중요한 근거가 된다.
utmp 파일은 현재 시스템에 로그인한 사용자에 대한 정보를 가지고 있으며 사용자 이름, 터미널 장치 이름, 원격 로그인시 원격 호스트 이름, 사용자가 로그인한 시간 등을 기록한다. 일반 텍스트 파일이 아니기 때문에 who, w 등을 이용하여 내용을 살펴볼 수 있다.
$ w
11:40pm up 18:25, 3 users, load average: 0.05, 0.05, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
taejun pts/2 211.55.2.161 10:43am 1.00s 0.14s ? -
taejun pts/5 211.52.1.151 10:53am 17:11 0.08s 0.08s -bash
wtmp 파일은 사용자의 로그인과 로그아웃 정보를 모두 가지고 있으며 시스템의 부팅이나 재부팅에 대한 내용도 포함을 하고 있는 중요한 파일이다. last를 이용하여 확인을 할 수 있다.
lastlog 파일은 사용자가 가장 최근에 로그인을 한 기록을 남기며 시스템에 다시 로그인을 할때마다 갱신이 된다. lastlog 프로그램을 이용하여 확인할 수 있다.
# lastlog
Username Port From Latest
root tty1 Sun Jul 15 02:54:21 +0900 2001
bin **Never logged in**
daemon **Never logged in**
mail **Never logged in**
nobody **Never logged in**
mylove pts/1 211.50.6.251 Sun Jul 15 14:40:53 +0900 2001
mysql **Never logged in**
named **Never logged in**
그런데 크래커가 바보가 아니라면 당연히 크래킹을 해놓고도 그 기록을 계속 남기지는 않을 것이다. 정상적인 로그인 절차를 거칠 경우 사용자의 접속 내역은 utmp, wtmp, lastlog에 기록을 하게 되지만 백도어나 rootkit 등이 설치되어 있을 경우에는 그 사실을 모를 수가 있다. 시스템 accounting 기능(**주2**) 을 이용하면 시스템에서 어떠한 프로그램이 얼마만큼 자원을 차지하고 있는지 알 수 있을 뿐만 아니라 로그인한 사용자가 어떤 프로그램을 실행했는지에 대해서 알 수 있는 단서가 된다. 그렇지만 리눅스에서 기본적으로 설치되어 있는 패키지는 아니며 별도로 설정을 해야 한다.
history 파일은 각 사용자가 접속하여 어떠한 명령을 수록했는지 기록하고 있다. 히스토리 파일을 이용하여 공격자의 행위를 파악할 수 있다.
secure 파일은 위에서 설명을 했던대로 보안과 관련한 로그를 기록하며 telnet, ftp, pop등 인중을 필요로 하는 네트워크 서비스에 대한 기록을 남긴다. 메일서버, 웹서버, 네임서버 등도 응용프로그램 차원에서 개별 로그를 남기며 특정한 서비스에 문제가 생겼을 경우 먼저 로그기록부터 확인을 하여 문제점을 찾고 그 대책을 찾아야 할 것이다.
여기서 걸리는 문제는 계속 쌓여만 가는 로그파일을 계속 주기적으로 모니터링할 수 없다는 것이다. 이런 경우에는 아주 간단하게 자신이 주로 살펴볼 필요가 있는 로그파일에 대하여 grep으로 뽑아내거나 전문적인 로그 관련 유틸리티를 활용할 필요가 있다. 이에 대해서는 swatch 나 logcheck 등을 활용하기 바란다.