OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 시스템 로그 - /var/log

주누다 2015. 5. 11. 23:48
반응형
시스템 로그

- 로그는 커널과 리눅스 시스템이 제공하는 

  여러 서비스와 응용 프로그램이 발생시키는 메시지를 뜻함

- 로그를 저장하고 있는 파일을 로그 파일

- 로그 파일을 통해 시스템의 상태를 확인

- 보안 사고에 대비하며 사고가 발생했을 때는 원인을 규명하고

  침입 경로를 추적하기 위해 가장 기본적으로 로그 파일을 확인


주요 로그 파일

- 리눅스 시스템에는 기본 로그 파일을 비롯해 다양한 로그 파일이 있음

- 대부분의 로그 파일은 '/var/log' 디렉터리에 있음


로그 파일 관리하기 

- '/var/log' 디렉터리의 내용을 보면 같은 파일명에 번호가 붙은 파일이 여러개 있음

- 로그를 계속 한 파일에 저장할 경우 파일의 크기가 너무 커져서 내용을 보거나 관리할 때 불편하기 때문

- 번호가 큰 로그 파일은 백업을 하고 삭제해야함

- 시스템이 여러 가지 서비스를 제공하기 시작하면 로그 파일에 기록되는 내용도 급격히 증가

- 파일들이 디스크에서 차지하는 용량을 무시할 수 없음

- 로그 파일의 소유자는 거의 대부분 'root' 계정

- 접근 권한은 대부분의 경우 'root' 계정만 읽고 쓸 수 있게 설정되어있음

- 'dmesg' 로그 파일은 'root' 계정만 읽고 쓰기가 가능, 'adm' 그룹은 읽기만 가능


- 주요 로그 파일들은 로그 관리 데몬으로 로그 파일을 관리




리눅스의 주요 로그 파일

로그 파일 

내용 

/var/log/boot.log 

- 부팅시 서비스 데몬의 실행 상태를 기록 

/var/log/apache2/* 

- 아파치 웹 서버와 관련된 로그를 기록 

/var/log/apt/* 

- apt-get 명령으로 패키지를 설치하고 삭제한 로그를 기록 

/var/log/auth.log 

- telnet, ssh, su, sudo 등의 사용자 로그인 인증을 기록 

/var/log/dmesg 

- 시스템이 부팅할 때 생성한 로그를 기록 

/var/log/lastlog 

- 각 계정의 가장 최근 로그인 정보를 기록

- 'lastlog' 명령으로 확인 

/var/log/mail.* 

- 메일 관련 로그를 기록 

/var/log/Xorg.#.log

- X윈도 관련 로그를 기록 

/var/log/btmp 

- 실패한 로그인 기록

- 바이너리 파일이므로 last -f btmp 또는 lastb 명령으로 확인이 가능 

/var/log/cups/* 

- cupsd 데몬이 생성하는 로그를 기록

- cupsd 데몬은 인터넷 프린팅 프로토콜을 지원하는 데몬 

/var/log/wtmp 

- 로그인 기록

- 'last' 명령으로 내용을 확인할 수 있음 

/var/log/samba/* 

- Samba에 의해 생성된 로그를 기록 

/var/log/syslog 

- syslog가 생성하는 공통 로그를 기록 

/var/log/mysql 

- MariaDB에서 생성한 로그를 기록 

/var/log/utw.log 

- 방화벽이 생성하는 로그를 기록 

/var/log/vsftpd.log 

- FTP 서버의 데이터 전송 로그를 기록 




공통적인 로그를 기로 :  '/var/log/syslog'  

- 이 로그 파일에는 커널이나 데몬에서 발생하는 대부분의 메시지가 기록

- 로그는 날짜와 시간, 로그를 발생시킨 호스트 이름, 데몬 이름, 메시지 내용 등으로 구성되며 한 행씩 기록됨 




로그 관리 데몬 

- 리눅스 시스템의 로그 파일 중 일부는 로그 관리 데몬에 의해 통제

- rsyslog 서비스를 제공하는 데몬은 'rsyslogd'

- rsyslog 서비스를 설정하는 파일은 '/etc/rsyslog.d' 디렉터리에 있는 *.conf 파일

- '50-default.conf' 는 어떤 로그를 어떻게 처리할 것인지 기본 규칙을 설정한 파일

- rsyslog 의 규칙 파일은 텍스트 파일이므로 관리가자 vi 로 수정할 수 있음

- 규칙은 로그 메시지 중 어떤 메시지를 선택할 것인지를 정의한 선택자(selecot, 필터라고도 함)

  선택된 메시지를 어떻게 처리할 것인지를 정의한 동작(action)으로 구성

- 규칙은 한 행에 선택자와 동작으로 작성

- 공백 문자나 탭으로 구분



선택자 

- rsyslog 의 선택지는 기능명(facility)과 우선순위(priority)를 기반으로 함

 기능명.우선순위




기능명

- 기능명은 로그 메시지를 생성하는 프로그램을 지정한 것 

rsyslog 선택지의 기능명 

 기능명 

 관련 프로그램 

모든 기능 

auth 

인증 관련 명령

authpriv 

보다 민감한 보안 메시지 

cron 

cron 데몬 

daemon 

일반적인 시스템 데몬 

kern 

시스템 커널 

lpr 

인쇄 시스템 

mail 

sendmail과 기타 메일 관련 프로그램 

news 

유즈넷 뉴스 시스템 

security 

auth와 동일, 사용하지 않음 

syslog 

rsyslog 데몬 내부 메시지 

user 

사용자 프로세스 

uucp 

uucp 통신. 현재는 사용하지 않음 

local0~7 

여덟 가지 로컬 메시지 

mark 

일정 주기로 타임 스탬프 메시지 생성(rsyslog 내부용) 




우선순위

- 메시지의 심각도를 나타내는 우선순위

- 심각도는 'emerg'부터 'debug'까지 8단계로 구분

- 각 단계를 명확하게 구분하기 어려울 수도 있음 

rsyslog 메시지의 우선순위 

심각도 

의미 

emerg 

매우 긴급한 비상 상태 

alert 

긴급한 상태 

crit 

중대한 상태 

err 

오류 상태 

warning 

경고 메시지 

notice 

단순 메시지 

info 

정보성 메시지 

debug 

디버깅용 메시지 




선택자 적용

- 기능명과 우선순위를 결합하는 방법 

rsyslog 선택지 구성의 예 

선택자 

의미 

kern.* 

우선순위에 상관없이 커널의 모든 로그 메시지를 선택 

mail.crit 

메일에서 crit 이상의 우선순위(crit, alert, emerg)를 가진 모든 로그 메시지를 선택  

cron.!info.!debug 

cron에서 info와 debug를 제외한 모든 로그 메시지를 선택 

mail.=info 

메일에서 심각도가 info인 경우만 로그 메시지를 선택 




동작

- 동작은 선택자가 선택한 메시지를 어떻게 처리할 것인지를 정의한 것

- 동작은 메시지를 파일로 저장하거나 메일로 전송하기, 화면으로 출력하기 등이 있음 

rsyslog 동작의 종류 

선택자와 동작 

의미 

*.* @192.168.0.1 

메시지를 192.168.0.1의 rsyslog 데몬으로 보냄 

*.* @abc.com:18 

메시지를 abc.com의 18번 포트로 TCP를 통해 보냄 

*.* 파일명 

메시지를 지정한 파일에 저장 

*.* user1, user2 

메시지를 user1, user2 사용자의 화면으로 출력 

*.* * 

메시지를 현재 로그인한 모든 사용자에게 보냄 

cron.* ~ 

~는 cron이 발생시킨 모든 메시지를 무시함 

kern* ^exe:form 

커널이 발생시킨 메시지를 form이 형식을 조정하여 

exe 프로그램에 전달하고 exe 프로그램을 실행함


- 예를 들어 커널이 발생시킨 메시지 중 우선순위가 crit 이상인 메시지를 '/var/log/kern.log' 파일에 저장

 * kern.crit /var/log/kern.log


- 메시지를 파일에 저장하고 user1 사용자에게도 메시지를 출력(각각 한 줄씩 작성해야함)

 * kern.crit /var/log/kern.log

   kern.crit user1


- 현재 설정되어 있는 기본 규칙

 * auth,authpriv.* /var/log/auth.lgo 

  => auth 및 authpriv와 관련된 로그는 우선순위와 상관없이 모두 /var/log/auth.log 파일에 기록

 * *.*;auth,authpriv.non -/var/log/syslog 

  => auth 및 authpriv와 관련된 로그를 제외한 모든 로그는 /var/log/syslog에 기록


- 로그 파일의 경로명 앞에 붙은 '-' 는 특별한 의미가 없으므로 신경 쓰지 않아도 됨

 




로그 관리 도구 

- 'wtmp' 같은 일부 파일을 제외하고 대부분의 로그 파일은 일반 텍스트 파일임

- 그놈은 로그를 관리할 수 있는 GUI도구인 로그 뷰어를 제공

- 로그 뷰어의 패키지 이름은 'gnome-system-log' 




반응형