본문 바로가기
  • 아하하
Linux

리눅스 Log File의 종류

by 쥬쥬파파 2018. 10. 10.

출처:리눅스 로그 파일의 종류 및 로그 파일 분석



1. Log File의 종류

 - 기본적인 로그들은 syslogd에 의해서 제어가 되며, syslogd의 설정파일인 /etc/syslog.conf 파일을 수정함으로써 이 파일들의 저장위치와 저장파일명을 변경 가능하다. 

 - 보안을 위하여 숨김속성(.으로 시작하는 디렉토리)의 디렉토리를 다른곳에 만들어 숨김속성파일(.으로 시작하는 파일)을 만들어서 찾기 힘든 곳에 보관 할 수 있다.

 

로그이름

로그 파일명 

관련 데몬 

설명 

커널 로그 

/dev/console 

kernel 

콘솔에 뿌려지는 로그 

시스템 로그 

/var/log/messages 

syslogd 

리눅스 커널로그 및 주된 로그 

보안 로그 

/var/log/secure 

xinetd 

보안 인증 관련 로그 

메일 로그

/var/log/maillog 

sendmail popper 

메일 로그 

(sendmail에 의한 로그) 

크론 로그 

/var/log/cron 

crond 

crond에 의한 로그 

부팅 로그 

/var/log/boot.log 

kernel 

시스템 부팅시의 로그 

커널 부트 메시지 로그 

/var/dmesg 

kernel 

부팅될 당시의 각종 메시지들 저장

커널 로그 

/var/log/wtmp 

kernel 

시스템 전체 로그인 기록 저장 

커널 로그

/var/log/utmp 

kernel 

현재 로그인 사용자에 대한 기록, 사용자 ip 저장 

FTP 로그 

/var/log/xferlog 

ftpd 

ftp 로그 

웹 로그 

/var/log/httpd/access_log 

httpd 

아파치(웹서버) 로그 저장 

웹 로그

/var/log/httpd/error_log 

httpd 

아파치(웹서버) 에러 저장 

네임서버 로그 /var/log/named.log named 네임서버(DNS) 로그 



2. Log File 분석

 ① 콘솔 로그 (/dev/console)

   - 커널에 관련된 내용을 시스템 콘솔에 뿌려주는 로그이다. 

   - 시스템에 관련된 중요한 내용들(시스템풀, 다운 등)에 대한 로그를 관리자에게 알리고자 함이 목적이다. 

   - 출력을 파일로 저장하는 것이 아니라 장치명(/dev/console)을 사용하여 콘솔로 로그를 뿌려준다. 

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


 ② 시스템 로그 (/var/log/messages)

    - 사용명령어 : dmesg (/var/log/messages를 출력한다.)

    - 주로 접속 시 인증에 관한 것과 메일에 관한 내용, 시스템에 관한 변경사항 등 시스템에 관한 전반적인 로그를 기록하는 파일이다.

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

    - 시스템 관리자에 의해서 가장 소중하게 다루어지는 로그이다. 

    - 보안사고가 발생시에 가장 먼저 분석을 해야하는 파일이다.

    - 메시지 내용은 su 실패에 대한 로그, 특정 데몬이 비활성화된 로그, 부팅 시 발생된 에러 등 다양한 로그들을 포함한다.

    - syslog facility에 의하여 남은 로그로 /etc/syslog.conf의 설정에 따라 남는 정보의 종류가 달라진다. 


  ③ 보안 로그 (/var/log/secure)

    - 모든 접속과 관련하여 언제 어디서 어떤 서비스를 사용했는지 기록한다.

    - timestamp, 호스트명, 응용프로그램명(pid), 메시지 내용이 기록되어있다. 

    - 보통 login, tcp_wrappers, xinetd 관련 로그들이 남는다. 

    - ps -ef라는 옵션 외에도 aux라는 옵션으로 확인 가능하다. 

       ( 예 : ps aux | grep xinetd )

    - 실행중인 xinetd의 PID저장 파일은 /var/run/xinetd.pid 


 ④ 메일 로그 (/var/log/maillog)

   - sendmail이나 pop등의 실행에 관한 기록이다. 

   - 메일을 주고받을 때에 이 로그파일(smtp, pop)에 기록이다

   - 실행중인 sendmail의 PID저장 파일은 /var/run/sendmail.pid

   - timestamp, 호스트명, 데몬명(pid), 메시지 내용 기록 


 ⑤ 크론 로그 (/var/log/cron)

   - 시스템의 정기적인 작업(crond)에 대한 모든 작업한 기록을 보관하고 있는 파일이다.

   - 크론데몬의 crond가 언제 어떤작업을 했는가를 확인 가능히다.

   - crond의 의해서 실행되었던 데몬(프로세스, 응용프로그램 등)들이 기록 되었다.  

   - 실행중인 crond의 PID저장 파일은 /var/run/crond.pid

   - /etc/ 디릭토리 밑에 있는 cron.hourly, crondaily, cron.weekly, cron.monthly 파일들에 기록되어 있는 작업을 실행한 후에 cron 파일에 log를 기록한다. 

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


 ⑥ 부팅로그 (/var/log/boot.log)

   - 시스템의 데몬들이 실행되거나 재시작되었을 때 기록되는 로그 파일이다.

   - 부팅 시의 에러나 조치 사항을 확인할 때 활용이 가능하다. 

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


 ⑦ 커널 부트 메시지 로그 (/var/dmesg)

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

 

 ⑧ /var/log/wtmp

   - 사용 명령어 : last

   - 사용자들의 로그인-로그아웃 정보 기록이다

   - 바이너리 형태이며 지금까지 사용자들의 로그인, 로그아웃 히스토리를 모두 누적형태로 저장된다.

   - 시스템의 셧다운, 부팅 히스토리까지 포함한다.  

   - 해킹 피해 시스템 분석 시 비중있게 다룬다.

옵션

설명 

last [계정명] 

계정명을 입력하면 사용자별 로그 정보를 출력한다.

last -f [파일명] 

지난 파일에 대해서 로그를 점검시 -f 옵션 뒤에 해당 파일명을 입력

last -R 

IP를 제외시킨 로그 정보를 출력한다.

last -a 

로그 정보를 출력할 때 IP를 뒤로 배치해서 출력한다. 

last -d 

외부에서 접속한 정보와 reboot 정보만을 출력한다.


 ⑨ /var/log/utmp

   - 사용자 명령어 : who, w, whodo, uesrs, finger

   - 시스템에 현재 로그인한 사용자들에 대한 상태를 기록한다.

   - 리눅스에서는 /var/run 혹은 /var/adm, 솔라리스에서는 /etc등에 위치하며 바이너리 형태로 저장되어 vi 편집기 등으로 읽을 수 없다.

   - utmp(x) 파일은 기본적으로 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인한 시간 등을 기록 한다. 

   - w 명령어는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot을 제공해 주는 명령어이다.

   - 해킹 피해 시스템 분석 시 비중있게 다룬다.

 

※ wtmp, wtmpx와 파일 포맷은 동일

ump(x)는 현재 시스템에 대한 정보, wtmp(x)는 누적된 정보


 ⑩ /var/log/lastlog

   - 사용 명령어 : lastlog

   - /etc/passwd 파일에 정의되어 있는 모든 계정의 최근 접속 정보를 확인 가능하다.

   - 사용자의 최근 로그인 시간을 사용자 이름, 터미널, IP 주소, 마지막 로그인 시간 출력

   - /var/log/lastlog 파일에 저장되고 바이너리 형태 

옵션

설명

-u / --login 

접속 이름 

-t / --time 

날짜

(현재 시간부터 입력하나 날짜까지 접속자 검색) 

-h / --help 

도움말 

 

 ⑪ FTP 로그 (/var/log/xferlog)

   - ftp나 ncftp 등의 접속이 이루어 졌을 때 이 로그파일에 기록이 된다.

   - ftp를 사용했을 때 이 로그파일에 기록되고, 업로드 파일과 다운로드한 파일들에 대한 자세한 정보가 기록 저정된다.  

 

 ⑫ 웹 로그 (/var/log/httpd/access_log, /var/log/httpd/error_log)

   ▶ Access log

     - 웹사이트에 접속했던 사람들이 각 파일들을 요청했던 실적을 기록해놓은 목록을 저장한다. 

     - 방문자의 IP또는 도메인 네임, 방문자가 파일을 요청한 시간, 방문자가 웹서버에 요청한 처리 내용(Get, Put, Head), 방문자가 요구한 파일의 이름, 파일의 크기 및 처리결과 등의 데이터를 제공한다. 

   ▶ Error log

     - 요청한 홈페이지가 없거나 링크가 잘못되는 등의 오류가 있을 경우에 생성된다. 


 ⑬ /var/log/btmp

   - 사용자 명령어 : lastb

   - 로그인 시도 5번 이상 실패한 로그 기록을 확인 가능하다.

   - 계정명, 접속 콘솔/터미널 유무, IP, 시간 정보 출력

   - /var/log/btmp에 바이너리 형태로 저장도니다.


 ⑭ History (해당 계정의 home directory/ .bash_history)

   - 접속한 계정에서 사용했던 명령어의 내용만 보여준다. 

   - root의 경우 ~/.bash_history에 사용한 명령어가 저장된다.

   - 저장되는 로그의 위치를 변경하려면 export HISTFILE="경로/파일이름" 을 입력 한다.  

 

 ⑮ Pacct (/var/account/pacct)

   - 사용자 명령어 : lastb

   - 시스템에 들어온 사용자가 어떤 명령어를 실행시키고 어떠한 작업을 했는지에 대한 사용 내역 등이 기록 된다.

   - 사용된 명령어의 argument와 그 명령어가 시스템 내 어느 파일 시스템의 어느 디렉토리에 실행되었는지는 기록되지 않는다.

   - /var/account/pacct에 바이너리 파일로 기록된다.

   - 파일 크기가 쉽게 커지기 때문에 관리가 필요한 파일 이다. 



출처: http://dinding.tistory.com/8 [딘딩]