Security/Forensics

[Linux] 시스템 로그 분석

bonggang 2019. 9. 13. 09:58

리눅스는 /var/log 디렉토리에서 시스템의 모든 로그를 기록 및 관리하며 일반적으로 텍스트 형식으로 저장된다.

시스템의 /etc/syslog.conf 파일에서 대부분의 시스템 로그파일들의 위치를 지정하며 간단한 문서 편집기나 cat 또는 less 명령어를 통해 내용을 확인할 수 있다. 그러나 일부 로그 파일(btmp, wtmp, ...)은 텍스트 형식이 아니다.

 

로그 파일은 시스템의 행위를 기록하기 때문에 일정 주기로 정리해주어야한다. 그렇지 않다면 로그 파일이 파일 시스템을 모두 차지하는 웃지못할 상황이 발생할 수 있다.

 

대표적인 로그

/dev/console

- 커널에 관련된 내용이 시스템콘솔에 출력된다. messages 내용과 일치하지는 않지만 시스템에 관련된 중요한 내용들에 대한 로그를 관리자에게 알리고자 함이 목적이며 출력을 파일로 저장하는 것이 아니라 장치명(/dev/console)을 사용하여 콘솔로 로그를 생성한다.

- timestamp, 호스트명, 커널 메시지 내용 등이 기록되어있다.

 

/var/log/messages

- 주로 접속 시 인증에 관한 것과 메일에 관한 내용, 시스템에 관한 변경사항 등 시스템에 관한 전반적인 로그를 기록하는 파일이다. 시스템 관리자에 의해서 가장 소중하게 다뤄지며 보안 사고 발생 시 가장 먼저 분석을 해야하는 파일 중 하나이다.

- timestamp, 호스트명, 데몬명, 메시지 내용 등이 기록되며

운영체제에서 보내주는 실시간 로그를 관리하며 대체로 콘솔에 실시간으로 표시된다.

- syslogd가 생성한다.

 

/var/log/secure

- 시스템 접속에 관한 로그파일로, 언제 누가 어디서 어떻게 접속 했는지에 대한 로그를 기록한다. 불법침입이 의심될 때 반드시 이 로그파일을 확인해야 한다. 보통 timestamp, 호스트명, 응용프로그램명(pid), 메시지 내용 등이 기록된다.

 

/var/log/maillog

- sendmail이나 pop 등의 실행에 관한 기록으로 메일을 주고받을 때 이 로그파일에 기록된다.

 

/var/log/cron

- 시스템의 정기적인 작업에 대한 로그를 기록한다. /etc/ 밑의 파일 중 cron.hourly, cron.daily, cron.weekly, cron.monthly 파일들은 각각 시간별, 일별, 주별, 월별로 정기적으로 운영체제에서 자동으로 작업해야 할 것에 대한 작업을 저장하고 있으며 지정한 일시에 실행이 되고 작업 후 /var/log/cron 파일에 기록된다.

- crond 데몬 로그파일

- timestamp, 호스트명, 데몬명(pid), 메시지 내용 등이 기록된다.

 

/var/log/boot.log

- 리눅스가 부팅될 때 생성하는 모든 메시지를 기록한다. 부팅 시 에러를 살펴보기 위해 참조한다.

 

/var/dmesg

- 시스템이 부팅할 때 출력되었던 메시지를 로그로 기록한다.

 

/var/log/wtmp

- 사용자들의 로그인-아웃 정보를 바이너리 형태로 기록한다. 사용자들의 로그인, 로그아웃 히스토리를 모두 누적형태로 저장하며 시스템의 셧다운, 부팅 히스토리까지 포함한다. 이런 이유로 해킹 피해 시스템 분석 시 중요한 요소 중 하나이다.

 

var/log/utmp

- 시스템에 현재 로그인한 사용자들에 대한 상태를 바이너리 형태로 기록한다. 기본적으로 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인 시간 등이 기록 된다.

 

var/log/btmp

-로그인 시도 5번 이상 실패한 로그 기록을 확인 가능하다. 계정명, 접속 콘솔/터미널 유무, IP 시간 정보 등이 출력되며 바이너리 형태로 저장된다.

 

var/log/httpd/access_log

- 아파치 웹서버의 로그들을 기록한다. 웹사이트에 접속했던 사람들이 각 파이들을 요청했던 기록을 저장하며 방문자의 IP 또는 도메인 네임, 방문자가 파일을 요청한 시간, 웹서버에 요청한 처리 내용(GET, PUT, HEAD), 방문자가 요구한 파일 이름, 파일 크기, 처리결과 등의 데이터를 기록한다.

 

var/log/httpd/error_log

- 아파치 웹서버의 에러들을 저장한다. 대표적인 에러는 요청한 페이지가 없을 때, 링크가 잘못됐을 때 정도가 있다.

 

 

 

 

참고 자료


http://blog.naver.com/PostView.nhn?blogId=kdi0373&logNo=220522832069&parentCategoryNo=&categoryNo=19&viewDate=&isShowPopularPosts=true&from=search

 

https://hyperv.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%A1%9C%EA%B7%B8Log-%EB%B6%84%EC%84%9D