반응형

출처: http://egloos.zum.com/mcchae/v/11109562 

 

syslog(시스로그)는 1980년대에 메일 전송의 로그를 전송하기 위해 시작되었고,

현재는 수많은 보안 장비들이 syslog를 지원하고 있습니다.

뭐 간단하게는 우리가 읽을 수 있는 문자로 UDP 패킷 514 포트로 보낸다는 것 이외는
특별할 것이 없다고 생각했습니다만, 막상 그 내막을 보면 또 히스토리가 있습니다.

우선 기본적으로 어느 일반적인 syslog를 받는다고 하고,
syslog를 받을 서버에서 wireshark를 설치한 다음 패킷 캡쳐를 해 보았습니다.

보통은 이런 모습을 보입니다.

위와 같이 UDP 헤더가 끝나고,

"<25>" 라는 문자열이 나옵니다.

이것은 BSD의 syslog를 지정한 RFC3164 에서 출발하여,
후에 RFC5424 에 정의되어 있는 규칙을 따릅니다.

25라는 decimal 값을 OCTET로 보면 31이 됩니다.

이렇게 나오는 앞의 3이 syslog의 Facility (로그 종류라 보시면 됩니다)가 되고,

          Numerical             Facility
             Code

              0             kernel messages
              1             user-level messages
              2             mail system
              3             system daemons
              4             security/authorization messages
              5             messages generated internally by syslogd
              6             line printer subsystem
              7             network news subsystem
              8             UUCP subsystem
              9             clock daemon
             10             security/authorization messages
             11             FTP daemon
             12             NTP subsystem
             13             log audit
             14             log alert
             15             clock daemon (note 2)
             16             local use 0  (local0)
             17             local use 1  (local1)
             18             local use 2  (local2)
             19             local use 3  (local3)
             20             local use 4  (local4)
             21             local use 5  (local5)
             22             local use 6  (local6)
             23             local use 7  (local7)

              Table 1.  Syslog Message Facilities

와 같이 정의 되어 있습니다.
(위의 예는 system daemons 이네요)

그 다음의 숫자는 경중을 나타내는 Severity 가 되겠습니다.

           Numerical         Severity
             Code

              0       Emergency: system is unusable
              1       Alert: action must be taken immediately
              2       Critical: critical conditions
              3       Error: error conditions
              4       Warning: warning conditions
              5       Notice: normal but significant condition
              6       Informational: informational messages
              7       Debug: debug-level messages

              Table 2. Syslog Message Severities

위의 예에서처럼 31 Octet 값의 1이라는 alert 가 되겠네요.
그리고 나오는 뒤의 메시지는 모두 해당 장비 등의 syslog 내용이 되겠습니다.


이제 이것을 Ubuntu 12.04 에 디폴트 syslog 데몬인 rsyslog에서 파일로 저장해 보도록 하겠습니다.

우선 
$ sudo vi /etc/rsyslog.conf
라고 설정파일을 열어 위에 중간에 있는 UDP syslog reception 부분 두 줄을 풀어줍니다.

그 다음,
 $ sudo vi /etc/rsyslog.d/40-daemon_alert.conf
라고 파일을 열어 위와 같이

daemon.alert /var/log/daemon_alert.log

라고 지정해 줍니다.

그 다음,

$ sudo /etc/init.d/rsyslog restart

로 rsyslog 서비스를 재기동시킵니다.

그리고 이제 해당 저장 syslog 파일을 보면,

와 같이 나옵니다.

여기서 주의해야 할 점이 있는데,
<25> 라는 Facility/Severity 라는 것은 이미 필터링되어 저장되므로 해당 내용이 없는 대신,

RFC5424에서 지정한 것과 같이,
syslog 받는 rsyslog 측에서

받은 시각과 호스트명(IP주소)인 

"May 23 11:41:24 10.21.15.15 " 가 추가되어 파일에는 나타나게 됩니다.


어느 분께는 도움이 되셨기를...
반응형

+ Recent posts