윈도우 서버를 운영하거나 리눅스 서버를 운영할 때 로그를 분석하는 일은 매우 중요하다.
특히 보안 관리에 있어서 로그는 그 역할을 많이 하는데, 이러한 역할을 하는 것이 rsyslog이다.
리눅스 초기에는 syslog를 사용하였는데, 이제는 성능 개선 및 관리 편의성이 향상된 rsyslog를 사용한다.
Facility란 로그 메세지를 발생시키는 프로그램 유형이다. 예를 들어, 커널 관련 로그는 kern facility가 발생시키고, 인증 관련 로그는 authpriv facility가 발생시킨다.
Facility 종류 | 설명 |
---|---|
authpriv | 개인 인증을 요하는 프로그램 유형이 발생한 메세지 (su, telnet, ssh) |
cron | crontab(crond), at(atd) 프로그램이 발생한 메세지 |
daemon | 시스템 데몬이 생성한 메세지 (telnetd, ftpd) |
kern | 커널이 발생한 메세지 |
lpr | 프린트 유형의 프로그램이 발생한 메세지 |
메일시스템이 발생한 메세지 | |
mark | syslogd 데몬에 의해 생성된 일정한 시간 간격의 반복적인 메세지 |
news | 유즈넷 뉴스 프로그램 유형이 발생한 메세지 |
security(auth) | 인증 프로그램이 생성한 메세지 (login) |
syslog | syslog 프로그램이 생성한 메세지 (syslogd) |
user | 사용자 프로그램에 의해 생성된 메세지 (top, system-config-* ) |
uucp | UUCP(Unix to Unix Copy) 시스템이 발생한 메세지 |
local0-7 | 예약된 메세지 종류, 여분으로 남겨둔 유형 (local0, local1, local2, ...) |
* | 모든 메세지 (단, mark 메세지 종류는 제외) |
로그 메세지는 각각 위험도가 지정된다. 시스템의 로깅을 모두 기록하게 된다면 엄청난 양의 로그가 쌓이기 때문에 리눅스에서는 위험도 구분을 추가하였다.
Level | 내용 |
---|---|
emergency(emerg) | 시스템이 전면 중단되는 패닉 상태, 전체 공지가 필요한 상황 |
alert(alert) | 즉각적인 조치가 필요한 상황(시스템 데이터베이스 오류 등) |
critical(crit) | 하드웨어 등의 심각한 오류가 발생한상황 |
error(err) | 일반적인 에러/오류가 발생한 상황 |
warning(warning) | 경고 메세지 |
notice(notice) | 에러/오류는 아니지만 관리자의 조치가 필요한 상황 |
information(info) | 의미 있는 정보 관련 메세지 |
debug(debug) | 디버깅용 메세지 |
로그를 파일 형태로 떨굴 것인지, 사용자 화면에 직접 전달할 것인지 등에 대한 처리방법을 정의한다.
Action 종류 | 설명 |
---|---|
file | 지정한 파일에 로그 기록 |
@host | 지정한 호스트로 메세지 전달 |
user | 지정한 사용자가 로그인한 경우, 해당 사용자의 터미널로 전달 |
* | 현재 로그인되어 있는 모든 사용자의 화면으로 전달 |
콘솔, 터미널 | 지정한 터미널로 메세지 전달 |
[Facility].[Level][TAB/SPACE][Action]
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler