리눅스 서버 보안관리의 로그분석 rsyslog
- rsyslog
리눅스 서버에서 보안관리중 핵심인 로그분석을 한다
과거에는 syslog 라고 칭하였으나 기능이 개선되어 rsyslog로 바뀌었다
- /etc/rsyslog.conf 설정파일
( /etc/syslog.conf 파일 ) info메시지를 기록하되, mail, news, authpriv, cron은 제외 개인인증관련은 /var/log/secure에 기록 모든 메일관련 메시지는 /var/log/maillog에 기록 cron관련 메시지는 /var/log/cron에 기록 모든 emerg이상의 에러가 발생하면 모든 사용자에게 알려줌 uucp, news의 crit 정보기록은 /var/log/spooler에 기록 부트 메시지는 /var/log/boot.log에 기록 |
- rsyslog.conf 설정파일은 facility, priority, action 의 규칙으로 이루어져 있다
(우선순위 규칙) facility.priority; facility.priority; facility.priority; ··· ··· action(logfile-location) -> facility 서비스데몬에 대해 priority 레벨이상의 상황이 발생한 경우 action의 형식(파일, 콘솔, 외부서버 등) 으로 로그를 남겨라
|
- facility
로그를 출력하는 각종 서비스, 프로그램을 정의
로그 메시지를 발생시키는 프로그램 유형
(서비스 종류) ㆍ* : 모든 서비스 ㆍauthpriv : 인증 및 보안 관련 메시지 ㆍcron : cron 데몬과 atd데몬에 의해 발생되는 메시지 ㆍdaemon : telnet, ftp 등과 같은 데몬에 의한 메시지 ㆍkern : kernel에 의한 메시지 ㆍlpr : 프린터 데몬인 lpd에 의해 발생되는 메시지 ㆍmail : sendmail, pop, qmail 등의 메일 시스템에서 발생되는 메시지 ㆍnews : USENET 등과 같은 뉴스시스템에 의해 발생되는 메시지 ㆍuser : 사용자에 의해 생성된 프로세스 ㆍsyslog : syslogd에 의해 발생되는 메시지 ㆍlocal0 ~ local7 : 시스템 부팅 메시지 기록, 기타 여분 서비스에 사용하기 위함 |
- priority
로그의 중요도를 구분하는 구분 값, 로그 수준(level)
(로그의 레벨, 중요도)
ㆍ emerg : 시스템이 전면 중단되는 패닉상태, 전체 공지가 필요한 상황 (system is unusable) ㆍ alert : 즉각적인 조치가 필요한 상황 (action must be taken immediately) ㆍ crit : 하드웨어 등의 심각한 오류가 발생한 상황 (critical condition) 중간 err : 일반적인 에러/오류가 발생한 상황 ㆍ warning : 경고 메시지 ㆍ notice : 에러/오류는 아니지만 관리자의 조치가 필요한 상황 ㆍ info : 의미 있는 정보 관련 메시지 ㆍ debug : 디버깅용 메시지 낮음 |
- action
특정 facility의 지정된 priority에 해당하는 로그가 발생했을 경우 action을 정의
-> 어떠한 에러로 지정되고 해당하는 레벨의 로그가 발생했을 경우 어디에 남길 것인지 결정
(로그를 남길 위치) ㆍ파일 : 파일명(경로) 지정 ex) /var/log/messages ㆍ콘솔 또는 터미널 : /dev/console로 지정 시 콘솔 출력 ㆍ원격 로그 서버 : "@호스트 주소"를 통해 지정한 호스트로 로그를 보낸다 ex) @192.168.56.3 ㆍuser : 지정된 사용자의 스크린으로 메시지를 보낸다 ㆍ* : 현재 로그인 되어있는 모든 사용자의 스크린으로 메시지를 보낸다 |
- # systemctl restart rsyslogd -> 재기동하기
( 로그 규칙 해석) ex) con.none => cron 이라는 facility 제외 cron. != info => info라는 priority 제외
ex) mail 로그 mail.* ; mail. !=info /var/log/maillog => mail 관련한 모든 정보는 /var/log/maillog에 기록하고 info 수준의 로그는 제외한다
|