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

라우터 로깅(logging) 설정

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

라우터 로깅(logging) 설정

 

일반적으로 라우터에서는 로그가 남지 않는다.

 

라고 알고 있는 경우가 있다.

 

그만큼 라우터의 로그에 대해서는 잘 모르는 경우가 많은데, 대부분의 라우터에서는 일반 시스템처럼 로그파일등을 생성하여 별도 디렉토리에 저장할 수 없기 때문이다.

 

그러나 로그를 남기도록 설정할 경우 시스템 에러, 네트워크와 인터페이스의 상태변화, 로그인 실패 등의 라우터 로그는 문제를 분석하거나 해결할 때 매우 중요한 역할을 하는 만큼 로깅(logging)을 남기도록 설정하여 체계적으로 관리하는 것은 매우 중요하다.

 

아울러 로깅을 남기는 시간 역시 매우 중요하다.

 

로깅이 남겨지기는 하지만 시간이 전혀 맞지 않는다면 문제해결에 혼선을 빚고 그만큼 문제해결이 느려지게 되기 때문이다.

 

 

기본적으로 라우터에서 제공되는 로깅 기법은 다음과 같은 것들이 있다.

 

 

console logging 기법

로그메시지가 console 메시지에 출력되는 경우로 콘솔에 출력될 뿐 저장이 되지는 않는다.

 

만약 콘솔에서 작업할 경우 콘솔에 메시지가 출력되면 작업에 불편을 초래하는 경우가 있어 특별한 이유가 없다면 일반적으로 비활성화 하는데, 이를 위해서는 config 모드에서 "no logging console"을 입력하면 된다.

 

만약 콘솔에서 심각한 정도의 로그를 보고자 한다면 “logging console critical”과 같이 실행하면 된다.

 

 

 

Terminal line logging 기법

telnet이나 ssh등 원격으로 접근한 유저에게 출력되는 로그로서 원격작업에 불편을 초래하는 경우가 있어 특별한 이유가 없다면 일반적으로 비활성화 하는데, 이를 위해서는 config 모드에서 "terminal no monitor"를 입력하면 된다.

 

 

Buffered logging 기법

라우터에서는 로그를 파일에 저장하지 않는 대신 buffer 메모리에 저장할 수 있다.

 

그러나 메모리가 한정되어 있으므로 로그메시지가 할당된 메모리의 양을 초과하였을 경우에는 이전의 버퍼에 있는 데이터부터 지우고 새롭게 로그를 저장하므로 중요한 로그를 확인하지 못할 수도 있다.

 

메모리(RAM)에 저장된 로그는 “show logging"으로 확인할 수 있고, "clear logging"을 실행하거나 RAM에 저장된 로그이므로 재부팅하면 사라지게 된다.

 

 

Snmp trap logging 기법

snmp trap 메시지를 통해 모니터링 하는 방법으로 로그정보를 외부의 SNMP서버에 전송한다.

 

 

ACL violation logging 기법

Access-list 설정 시 특정한 룰에 매칭 되었을 경우 로그를 남기도록 설정할 수 있는데, 이는 acl룰의 끝에 log 혹은 log-input을 추가하면 된다.

 

log-input은 인터페이스 정보도 함께 남긴다.

 

 

Syslog logging 기법

라우터에서는 로그메시지를 리눅스서버의 syslog서비스에 전송하여 원격지 서버에 저장하도록 할 수 있다.

 

syslog에서는 단지 로그메시지를 받아서 파일에 저장하기만 하면 되는데, 일반적으로 가장 권장하는 방법이다.

 

 

위에서 설명한 로깅 기법들 가운데 buffered logging기법과 syslog logging기법이 가장 많이 사용되며 권장할만한 방법인데, 두 가지 기법에 대한 실제 설정법에 대하여 알아보도록 하겠다.

 

먼저 공통적으로 해야 할 일은 라우터에서 logging 기능을 활성화 하는 것이다.

 

 

Router# config t

Router(config)# logging on

 

다음은 buffer에 로그를 남기는 설정을 보여주고 있다.

 

여기에서 !로 시작하는 부분은 주석을 뜻하며 예제에서는 16K정도를 버퍼로그로 할당하였는데, 메모리가 더 크다면 더 설정해도 될 것이다.

 

그리고 로그에 남을 때 timestamp를 지정하여 관리자가 지정한 형식으로 시간 정보를 남도록 할 수 있다.

 

 

Router# config t

Router(config)# ! Set a 16K log buffer at information level

Router(config)# logging buffered 16000 information

Router(config)# ! turn on time/date stamps in log messages

Router(config)# service timestamp log date msec local show-timezone

Router(config)# exit

 

이후 show logging을 실행해 보면 아래와 같이 생성되는 로그 정보를 확인할 수 있다.

 

 

Log Buffer (16000 bytes):

Oct 7 01:27:02.061 KST: %SEC-6-IPACCESSLOGP: list 101 denied tcp 62.112.221.180(56181) -> 192.168.10.240(179), 1 packet

Oct 7 06:44:28.323 KST: %SYS-5-CONFIG_I: Configured from console by noc1 on vty0 (192.168.3.15)

Oct 7 23:48:40.879 KST: %SYS-5-CONFIG_I: Configured from console by noc1 on vty0 (192.168.3.15)

Oct 8 11:08:20.774 KST: %RCMD-4-RSHPORTATTEMPT: Attempted to connect to RSHELL from 23.45.67.8

Oct 8 13:38:08.055 KST: %SYS-5-CONFIG_I: Configured from console by ciscouser on vty0 (192.168.3.15)

 

다음은 syslog 로깅 예를 보여주고 있다.

 

syslog 로깅에서는 로그를 남길 목적지 호스트, 로그의 심각도(severity)수준, syslog facility, 로그를 보낼 소스 주소를 각각 지정해 주면

된다.

 

일반적으로 로그를 보낼 소스 주소로 loopback 인터페이스를 사용하는 것이 좋으나 별도로 지정하지 않을 경우에는 syslog 서버와 가장 가까운 인터페이스를 사용하게 된다.

 

 

Router# config t

Router(config)# logging trap information

Router(config)# logging 14.2.9.6 // 로그를 보낼 syslog 서버의 IP

Router(config)# logging facility local6

Router(config)# logging source-interface loopback0

 

라우터에서 facilitylocal6으로 설정하였으므로 리눅스서버에서 syslog 설정파일인 /etc/syslog.conf에서도 다음과 같이 설정한 후 syslogd를 재가동하면 라우터의 로그가 /var/log/routers.log 파일에 저장된다.

 

 

local6.* /var/log/routers.log

 

만약 syslog 서버에 방화벽이 설정되어 있다면 목적지포트에 514/udp를 허용하여야 라우터에서 전달되는 메시지를 받아 저장할 수 있다.

 

 

 

그리고 로깅 설정 시 global config 모드에서 "service sequence-numbers"를 실행해 두면 로그가 생성될 때 매 로그마다 순서번호가 할당되도록 설정하여 로그의 무결성을 강화할 수 있다.

 

아래는 "service sequence-numbers"를 실행했을 때 각 줄의 처음에 순서번호가 생성되는 것을 알 수 있다.

 

 

000410: Oct 8 17:28:47.509 KST: %SYS-5-CONFIG_I: Configured from console by noc1 on vty0 (192.168.10.15)

000411: Oct 8 17:29:08.653 KST: %SYS-5-CONFIG_I: Configured from console by noc1 on vty0 (192.168.10.15)

000412: Oct 8 17:29:10.233 KST: %LINK-3-UPDOWN: Interface Serial9/1/3, changed state to down

000413: Oct 8 17:29:24.121 KST: %SYS-5-CONFIG_I: Configured from console by noc1 on vty0 (192.168.10.15)

 

그럼 이번에는 라우터에 남는 로그의 의미를 살펴보도록 하자.

 

Dec 6 15:40:05.309 KST: %SYS-5-CONFIG_I: Configured from console by vty0 (14.2.9.6)

 

위는 라우터에 남는 log의 예인데, 위의 각 항목들이 의미하는 바는 다음과 같다.

 

 

Dec 6 15:40:05.309 KST: 로그 메시지가 생성된 시각과 timezone

%SYS-5-CONFIG_I : 메시지의 이름과 심각한 수준(severity level)

Configured from console by vty0 (14.2.9.6) : 14.2.9.6에서 vty0 터미널을 통해

접속 후 설정을 변경하였다는 내용

그리고 로깅을 남길 때는 수준을 지정할 수 있는데, 이는 아래와 같다.

 

일반적으로 access-list에 매칭 되는 로그정보는 보아야 하므로 최소한 Informational이나 Debugging정도로 자세하게 남기는 것이 좋다.

 

물론 로그의 수준은 지정한 수준 이하는 남지 않는데. 이를테면 로그수준을 Critical로 설정하였다면 EmergenciesAlerts, Critical정도의 로그는 남지만 이하의 로그는 남지 않는 것이다.

 

 

숫자

키워드

메시지 예제

0

Emergencies

시스템이 매우 불안정할 경우

1

Alerts

즉각적인 조처가 필요한 경우

2

Critical

심각한 상태

3

Errors

에러가 있는 경우

4

Warnings

경고 상태

5

Notifications

global config 모드를 나갈 때

6

Informational

access-list에 매칭되는 경우

7

Debugging

디버깅을 할 때

[] 로그수준

 

앞에서 언급한대로 라우터의 로깅 설정 시 중요한 것은 시간설정이다.

 

먼저 "show clock detail" 명령어를 실행하여 현재 시간 및 timezone을 확인해 보기 바란다.

 

 

 

Central# show clock detail

18:03:58.003 KST Thu Jan 20 2008

Time source is user configuration

 

만약, timezone이 맞지 않거나 시간이 맞지 않다면 다음과 같이 timezone과 시간을 수동으로 설정하기 바란다.

 

 

 

Router# config t

Router(config)# clock timezone KST -9

Router# clock set 18:03:58.00 20 Jan 2008

Router# show clock

18:04:44.556 KST Thu Jan 20 2008

 

만약 수동으로 시간을 설정하기가 번거로우면 일정시간마다 time서버에 접속하여 시간을 동기화(sync)하도록 설정하는 것이 좋다.

 

다음과 같이 설정하면 203.248.240.103 (time.bora.net)에 접속하여 시간을 동기화하게 된다.

 

Router(config)# ntp server 203.248.240.103

 

 

강사 : 라쿠텐 홍석범부매니저

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,773 개
  • 현재 접속자 :  232 명