강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

로그분석 결과를 관리자에게 자동 보고하기 : logwatch

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

로그분석 결과를 관리자에게 자동 보고하기 : logwatch

 

 

 

 

 

시스템의 로그분석 결과를 관리자에게 매일 자동으로 보고해주는 방법이 있다.

 

 

 

 이런 역할을 해주는 도구가 바로 logwatch이다.

 

 

 

 따라서 이번 강좌에서는 logwatch에 대해서 알아보도록 할 것이다.

 

 

 

  logwatch 의 매뉴얼에 보면  “system log analyzer and reporter”라고 정의되어 있다.

 

 

 

 한마디로 logwatch는 시스템 로그분석기 역할과 로그분석한 결과를 관리자에게 보고해주는 역할을 한다.

 

 

 

 간단히 설명하자면 /var/log/디렉토리에 존재하는 시스템 로그파일들(messages, maillog, secure)을 분석하여 관리자(대부분 root)에게 메일을 보내주거나 보고하는 유용한 툴이다.

 

 

 

  logwatch라는 명령어는 대부분 cron에 의해서 자동실행되고 /etc/logwatch/conf/logwatch.conf파일 내에 설정되어있는 보고방식(주로 메일)에 따라서 관리자(주로 root)에게 보고한다.

 

 

 

 

 

당연한 얘기겠지만 logwatch는 다음과 같이 logwatch라는 RPM패키지가 시스템에 설치되어 있어야 한다.

 

 

 

 

 

[root@RockyLinux ~]# rpm -qa | grep logwatch

logwatch-7.5.5-4.el9.noarch

[root@RockyLinux ~]#

[root@RockyLinux ~]# rpm -ql logwatch-7.5.5-4.el9.noarch

/etc/cron.daily/0logwatch

/etc/logwatch

/etc/logwatch/conf

/etc/logwatch/conf/ignore.conf

/etc/logwatch/conf/logfiles

/etc/logwatch/conf/logwatch.conf

/etc/logwatch/conf/override.conf

/etc/logwatch/conf/services

/etc/logwatch/scripts

/etc/logwatch/scripts/services

/usr/lib/systemd/system/logwatch.service

/usr/lib/systemd/system/logwatch.timer

/usr/sbin/logwatch

/usr/share/doc/logwatch

/usr/share/doc/logwatch/HOWTO-Customize-LogWatch

/usr/share/doc/logwatch/LICENSE

/usr/share/doc/logwatch/README

/usr/share/logwatch

/usr/share/logwatch/default.conf

/usr/share/logwatch/default.conf/html

/usr/share/logwatch/default.conf/html/footer.html

/usr/share/logwatch/default.conf/html/header.html

/usr/share/logwatch/default.conf/logfiles

/usr/share/logwatch/default.conf/logfiles/audit_log.conf

/usr/share/logwatch/default.conf/logfiles/autorpm.conf

/usr/share/logwatch/default.conf/logfiles/bfd.conf

/usr/share/logwatch/default.conf/logfiles/cisco.conf

/usr/share/logwatch/default.conf/logfiles/citadel.conf

/usr/share/logwatch/default.conf/logfiles/clam-update.conf

/usr/share/logwatch/default.conf/logfiles/clamav.conf

/usr/share/logwatch/default.conf/logfiles/cron.conf

/usr/share/logwatch/default.conf/logfiles/daemon.conf

이하생략..

 

 

 

 

먼저 logwatch가 분석한 보고서를 관리자의 일반메일 주소로 받아보는 방법부터 알아보도록 하겠다.

 

 

 

 즉 시스템의 기본설정을 그대로 사용한 후에 다음과 같이 해보기 바란다.

 

 

 

 

 

만약  로그분석 결과를 root가 아닌 일반메일계정(대부분 관리자가 사용하는 일반계정)으로 받아보고자 한다면 /etc/aliases파일의 아래 부분을 관리자의 일반 메일주소로 앨리아스(별칭)시켜 두면 된다.

 

 

 

 그러면 root의 모든 메일들이 아래 설정한 관리자의 일반계정(sspark)으로 들어오게 된다.

 

 

 

 

 

# Person who should get root's mail

root:          sspark

 

 

 

 

따라서 logwatch로 분석한 로그의 결과가 sspark이라는 계정의 메일로 오게 되는 것이다.

 

 

 

  그리고 대부분 cron은 새벽 04:00에 실행이 되므로 내일 아침 sspark의 계정으로 도착한 메일을 확인해보면 된다.

 

 

 

 다음은 logwatch에 관한 cron설정의 일부분이다.

 

 

 

 

 

[root@RockyLinux ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

 

# For details see man 4 crontabs

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

 

[root@RockyLinux ~]#

[root@RockyLinux ~]# cd /etc/cron.daily/

[root@RockyLinux cron.daily]#

[root@RockyLinux cron.daily]#

합계 4

-rwxr-xr-x 1 root root 486  5 11  2022 0logwatch

[root@RockyLinux cron.daily]#

 

 

 

 

위의 설정에서 우리는 /etc/cron.daily디렉토리의 모든 실행파일들은 매일 새벽 04 02분에 모두 자동실행된다는 것을 알 수 있다.

 

 

 

 따라서 /etc/cron.daily디렉토리에 존재하는 0logwatch실행파일도 매일 이 시간에 자동실행된다는 사실을 알 수 있다.

 

 

 

 

 

이와같이 리눅스 설치초기 환경에는 logwatch라는 로그분석 유틸리티가 cron에 등록되어 있기 때문에 별다른 설정을 하지 않아도 관리자 계정으로 그 결과가 들어오는 것이다.

 

 

 

 , 그럼 이제 logwatch의 실행환경을 살펴보도록 하겠다.

 

 

 

 

 

먼저 logwatch의 주디렉토리는 다음과 같이 /etc/logwatch이다.

 

 

 

 

 

[root@RockyLinux cron.daily]# ls -l /etc/logwatch/

합계 0

drwxr-xr-x 4 root root 99  6  1 11:24 conf

drwxr-xr-x 3 root root 22  6  1 11:24 scripts

[root@RockyLinux cron.daily]#

 

 

 

 

그리고 이 디렉토리에 존재하는 conf디렉토리는 logwatch의 모든 설정파일들이 들어있는 곳이며 scripts디렉토리는 logwatch의 실행스크립트파일이 존재하는 곳이다.

 

 

 

 그러면 설정파일이 위치하는 /etc/logwatch/conf디렉토리를 보겠다.

 

 

 

 

 

[root@RockyLinux cron.daily]# ls -l /etc/logwatch/conf/

합계 12

-rw-r--r-- 1 root root  81  5 11  2022 ignore.conf

drwxr-xr-x 2 root root   6  5 11  2022 logfiles

-rw-r--r-- 1 root root 103  5 11  2022 logwatch.conf

-rw-r--r-- 1 root root  77  5 11  2022 override.conf

drwxr-xr-x 2 root root   6  5 11  2022 services

[root@RockyLinux cron.daily]#

 

 

 

 

여기에 존재하는 각각의 로그파일들의 분석결과를 logwatch는 관리자에게 알려주게 된다.

 

 

 

 

 

위의 각각의 파일들은 여러분들께서 직접 확인해보기 바란다.

 

 

 

 그리고 다음은 logwatch가 분석한 로그분석결과를 메일로 받은 예를 보인 것이다.

 

 

 

 

 

제목 : LogWatch for ns.linux.co.kr

 

################## LogWatch 2.6 Begin #####################

 

 --------------------- Named Begin ------------------------

**Unmatched Entries**

 

   client 66.136.44.126#4978: update 'diroo.com/IN' denied: 1 Time(s)

   client 66.136.44.126#4988: update 'diroo.com/IN' denied: 1 Time(s)

   client 66.136.44.126#5000: update 'diroo.com/IN' denied: 1 Time(s)

 ---------------------- Named End -------------------------

 

 

 

 --------------------- proftpd-messages Begin ------------------------

**Unmatched Entries**

www (210.222.223.192[210.222.223.192]) - FTP session opened.

www (logserver[220.144.223.221]) - FTP session opened.

www (210.222.223.192[210.222.223.192]) - FTP session closed.

www (logserver[220.144.223.221]) - FTP session closed.

www (211.218.236.123[211.218.236.123]) - no such user 'anonymous'

www (211.111.193.138[211.111.193.138]) - no such user 'anonymous'

 ---------------------- proftpd-messages End -------------------------

 

 

 

 ---------------- Connections (secure-log) Begin -------------------

Connections:

   Service pop3:

      161.178.140.22: 17 Time(s)

      211.111.193.138: 6 Time(s)

 

**Unmatched Entries**

proftpd[20490]: www (210.222.223.192[210.222.223.192]) - USER bible: Login successful.

proftpd[20504]: www (logserver[220.144.223.221]) - USER bible: Login successful.

proftpd[15777]: www (218.232.58.83[218.232.58.83]) - USER anonymouse: no such user found from 218.232.58.83 [218.232.58.83] to 211.220.193.181:21

proftpd[31219]: www (211.111.193.138[211.111.193.138]) - USER anonymous: no such user found from 211.111.193.138 [211.111.193.138] to 211.220.193.181:21

proftpd[31821]: www (211.218.236.123[211.218.236.123]) - USER anonymous: no such user found from 211.218.236.123 [211.218.236.123] to 211.220.193.181:21

proftpd[31822]: www (211.218.236.123[211.218.236.123]) - USER anonymous: no such user found from 211.218.236.123 [211.218.236.123] to 211.220.193.181:21

proftpd[31828]: www (211.218.236.123[211.218.236.123]) - USER anonymous: no such user found from 211.218.236.123 [211.218.236.123] to 211.220.193.181:21

xinetd[6971]: FAIL: pop3 libwrap from=211.111.193.138

proftpd[7115]: www (211.111.193.138[211.111.193.138]) - USER anonymous: no such user found from 211.111.193.138 [211.111.193.138] to 211.220.193.181:21

 

 ----------------- Connections (secure-log) End --------------------

 

 

 --------------------- sendmail Begin ------------------------

2412285 bytes transferred

678 messages sent

 

Unknown users:

    pa@binggayun.net: 1 Times(s)

    aceace@binggayun.net: 27 Times(s)

 

**Unmatched Entries**

 

i2OF7NR11130: lost input channel from [61.72.135.185] to MTA after rcpt

i2OFGJR11583: ruleset=check_rcpt, arg1=<k199909@starfish.co.kr>, relay=[219.240.92.41], reject=550 5.7.1 <k199909@starfish.co.kr>... Relaying denied. IP name lookup failed [219.240.92.41]

i2OH3jR17863: ruleset=check_rcpt, arg1=<bible@knhc.co.kr>, relay=[61.254.67.81], reject=550 5.7.1 <bible@knhc.co.kr>... Relaying denied. IP name lookup failed [61.254.67.81]

i2OH3jR17863: lost input channel from [61.254.67.81] to MTA after rcpt

i2OH3kR17865: ruleset=check_rcpt, arg1=<bible@knhc.co.kr>, relay=[61.254.67.81], reject=550 5.7.1 <bible@knhc.co.kr>... Relaying denied. IP name lookup failed [61.254.67.81]

i2OH3kR17865: lost input channel from [61.254.67.81] to MTA after rcpt

i2OH3kR17867: ruleset=check_rcpt, arg1=<bible@knhc.co.kr>, relay=[61.254.67.81], reject=550 5.7.1 <bible@knhc.co.kr>... Relaying denied. IP name lookup failed [61.254.67.81]

i2OH3kR17867: lost input channel from [61.254.67.81] to MTA after rcpt

i2OH3lR17871: ruleset=check_rcpt, arg1=<bible@knhc.co.kr>, relay=[61.254.67.81], reject=550 5.7.1 <bible@knhc.co.kr>... Relaying denied. IP name lookup failed [61.254.67.81]

i2P0g1R09329: i2P0g7R09331: DSN: User unknown

i2P0gsR09465: i2P0gwR09467: DSN: User unknown

i2P0hmR09599: i2P0hmR09601: DSN: User unknown

i2P0iDR09669: ruleset=check_rcpt, arg1=coba@mk.co.kr, relay=[161.178.140.22], reject=550 5.2.1 coba@mk.co.kr... Mailbox disabled for this recipient

i2P0iRR09682: i2P0iSR09684: DSN: Service unavailable

i2P0kaR10324: i2P1B6S12673: DSN: Service unavailable

i2P0kXR10233: i2P1D5o12673: DSN: Service unavailable

i2P0kUR10116: i2P1D5p12673: DSN: Service unavailable

i2P1J4L13494: i2P1J7L13497: DSN: User unknown

i2P1JrL13589: ruleset=check_rcpt, arg1=<parksh20012000@yahoo.kr>, relay=[211.108.158.119], reject=450 4.7.1 <parksh20012000@yahoo.kr>... Relaying temporarily denied. Cannot resolve PTR record for 211.108.158.119

i2P1JrL13589: lost input channel from [211.108.158.119] to MTA after rcpt

NOQUEUE: [211.111.193.138] did not issue MAIL/EXPN/VRFY/ETRN during connection to MSA

NOQUEUE: [211.111.193.138] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

NOQUEUE: [211.61.67.153] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

 ---------------------- sendmail End -------------------------

 

 --------------------- SSHD Begin ------------------------

Users logging in through sshd:

      bible logged in from 161.178.140.22 using password: 2 Times(s)

      sskim logged in from 161.178.140.22 using password: 1 Times(s)

 

**Unmatched Entries**

refused connect from 211.111.193.138 (211.111.193.138)

refused connect from 211.111.193.138 (211.111.193.138)

refused connect from 211.111.193.138 (211.111.193.138)

 ---------------------- SSHD End -------------------------

 

 

 ###################### LogWatch End #########################

 

 

위의 예는 logwatch에 의해 분석된 로그파일의 결과를 실제 필자가 받은 예이다.

 

 

 

 위의 결과를 보면 named에 관한 로그분석결과, proftpd에 관한 로그분석 결과, secure에 관한 로그분석 결과, sendmail에 관한 로그분석 결과, SSHD에 관한 로그분석결과 등을 보고하였음을 알 수 있다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  126 명