본문 바로가기

네트워크

네트워크 - Syslog

1. Syslog - 시스템 로깅

Syslog 표준은 컴퓨터, 라우터, 스위치, 프린터 등 모든 종류의 장치에서 사용되며, 사용자 로그인 이벤트와 같은 정보 메시지나 오류 발생과 같은 중요한 메시지들을 기록하고 관리자에게 경고하므로 분석이 매우 중요합니다. (시간이 많이 걸리고 지루한 프로세스. 중요 이벤트 메시지를 놓칠 가능성이 있음.)

 

각 장치가 syslog를 저장할 수 있는 공간이 한정되어 있으므로(버퍼) 이 메시지를 서버로 보낼 수 있도록 설정하면 장치는 syslog 서버에서 캡처한 로그 메시지를 보내고 쉽게 분석 관리가 가능합니다.

 

SNMP와 달리 syslog는 장치를 폴링하는 데 사용할 수 없고 syslog 표준은 이벤트에 대한 메시지를 보내는 데에만 사용됩니다. 폴링 정보는 간격을 두고 수신되기 때문에 이벤트 발생 직후 syslog 메시지를 보내고 받는 syslog가 SNMP 폴링보다 잠재적으로 더 효과적입니다.

 

syslog의 기본 포트는 UDP 514이며 서버의 IP 주소를 가리키는지 확인하고 각 장치가 원격 syslog 서비스가 활성화되어있는지 확인해볼 필요가 있습니다.

 

 

2. Cisco Syslog Message Format

메시지는 시간, 기능, 심각도, 메시지를 설명하는 텍스트, 이벤트에 대한 자세한 정보로 구성됩니다. 꽤 단순한 구조이기 때문에, 눈에 익으면 금방 이해할 수 있습니다.

 

Timestamp : 메시지가 생성된 날짜와 시간.

Facility : syslog 이벤트를 생성한 프로세스, 모듈, 프로토콜을 나타냄. 메일 시스템, 커널, 네트워크 등이 될 수 있음.

Severity : 0~7 사이의 숫자로, 숫자가 낮을수록 심각한 문제라는 것을 내포함.

Mnemonic : 메시지를 설명하는 텍스트. 선택사항이므로 제거할 수 있음.

Message Text : 보고된 이벤트의 자세한 정보.

 

 

3. Syslog Severity Levels

Level Keyword Brief Description
0 Emergency 시스템이 동작하지 않는 즉시 처리가 필요한 심각한 문제. 네트워크에 큰 영향을 미침.
1 Alert 즉시 조치가 필요한 문제. DB 손상이나 ISP 연결이 유실된 경우.
2 Critical 문제가 발생할 수 있으니 즉시 수정이 필요한 문제. 시스템 기본 응용프로그램이나 만료된 라이센스의 오류일 수 있음.
3 Error 긴급하지 않지만 주의가 필요한 시스템 오류.  응용프로그램이 스토리지, 메모리 할당, 파일을 찾을 수 없는 경우 등.
4 Warning 기간 내에 처리되지 않으면 문제가 발생할 수 있음. 파일 시스템이 높은 사용률을 보이거나 여유 공간이 부족한 경우 등.
5 Notification 시스템은 정상적이지만 중요한 내용으로 잠재적으로 문제가 발생할 수 있는 이벤트. 지원되지 않는 명령, 설치된 라이선스 알림, 루트 관리자 작업 등.
6 Information 유익하지만 중요하지 않는 내용. 정상 작업에 대한 정보가 포함된 로그.
7 Debugging 불필요한 메시지. 개발자 전용으로 기존 오류 및 잠재적 오류를 식별하고 제거하는 개발자에게 필요함. 모든 log를 전달하므로 시스템에 부하를 줄 수 있어 주의를 요함.

높은 심각도는 낮은 심각도의 내용을 모두 포함(include) 합니다. 

 

 

4. Syslog Facility Code

Facility code Keyword Description
0 kern 커널 메시지
1 user user-level 메시지
2 mail 메일 시스템
3 daemon 시스템 데몬
4 auth 보안/인증 메시지
5 syslog syslogd에 의해 내부적으로 생성된 메시지
6 lpr 라인 프린터 하위 시스템
7 news 네트워크 뉴스 하위 시스템
8 uucp UUCP 하위 시스템
9 cron 크론 하위 시스템
10 authpriv 보안/인증 메시지
11 ftp ftp 데몬
12 ntp ntp 하위 시스템
13 security 로그 감사
14 console 로그 경고
15 solaris-cron 스케줄링 데몬
16~23 local0~local7 현지 사용 시설

facility는 많은 장비로부터 로그를 받는 로그 서버에서 해당 로그에 대한 출처를 명확히하고 특정 로그를 그룹화 하기 위한 구분자 역할을 수행합니다. 

 

일반적으로는 local0~7을 네트워크 장비에서 사용한다고 하는데, 보통 점검을 나가면 콘솔을 물려서 몇몇 장비만 확인하기 때문에 저로써는 해당 facility 로그들을 현장에서 본적은 없습니다. 국가기관에서 진행하는 보안감사 지침에는 Cisco 장비를 local6로 권고하고있다고 하네요. 기본값이 local7 인걸로 아는데 왜인지는 모르겠습니다.

 

장비에서 show logging 명령어 실행시에 보이는 로그

 

 

4. Command

Router>en
Router#terminal monitor 	//Telnet or SSH 접속시에는 로그가 출력되지 않는데 로그를 출력하게 함
Router#show logging		//로그 확인

Router# conf t		
//debug에서 시간표기시 현재 시간 타입으로 표기되도록 설정
Router(config)#service timestamp debug datetime localtime show-timezone	
//log에서 시간표기시 현재 시간 타입으로 표기되도록 설정
Router(config)#service timestamp log datetime localtime show-timezone	

Router(config)#logging on			//로깅 활성화 [default: on]
Router(config)#logging console			//콘솔 로깅 활성화
Router(config)#logging buffered 4		//4레벨 이하부터 위험한 로그이므로 기록함 [0-7]
Router(config)#logging buffered 8192		//로그가 저장될 버퍼 사이즈 [default: 4096]

Router(config)#logging host [ip address]	//로그를 기록, 저장할 서버 지정
Router(config)#logging trap [level keyword]	//심각도 수준에 따른 로그 전달
Router(config)#logging facility [keyword]	//facility 변경

Router(config)#logging source-interface [interface name]	//기록될 인터페이스의 ip

logging 설정에서 자주 사용되는 명령어들입니다. 로깅에도 역시 여러 측면으로 고려해야할 사항들이 꽤나 있기 때문에, 상황에 맞게 설정하여 사용하면 되겠습니다.

 

패킷 트레이서는 logging 관련 명령어나 timestamp 명령어들이 많이 지원되지 않아서 직접 명령어를 입력해 보는데에 한계가 있는 편입니다. GNS3는 안해봐서 잘 모르겠네요. 

 

 

5. E.T.C

로그 식별을 위해 개인적으로 수집, 작성하는 목록입니다.

 

Cisco C4500 소프트웨어 버그 : 네트워크 지장 없음

%C4K_HWFLOWMAN-3-NFEINTERRUPTSTATUS: 

%C4K_HWFLOWMAN-4-NFEINTERRUPTSTATUS:

 

EtherChannel 이슈 : Po1 생성 전 할당시 발생가능, LACP는 int range로 한번에 설정하는 것이 에러 발생률을 낮춤. Po1 인터페이스의 shut, no shut 필요. LACP 관련 설정 모범 절차를 철저히 준수할 것. //반대편 vlan 할당 확인 필요. 

EC-5-CANNOT_BUNDLE2: interface is not compatible with Po1 and will be suspended (vlan mask is different) 


저는 Cisco C3650-24TS(03.06.08.E) 와 Kiwi Syslog Service Manager(Free v9.7) 로 테스트했습니다. 콘솔에선 볼 수 없었던 내용까지 기록되는걸 보니까 꽤 신기하네요.

 

이제 SNMP, 콘솔로깅, 터미널라인 로깅, 버퍼 로깅, 시스로깅까지 로깅 기법의 대부분을 다 다룬 것 같습니다. ACL 침입 로깅은 추후에 ACL을 다루면서 같이 다뤄보도록 하겠습니다.

 

여담으로 엔지니어들은 syslog처럼 간단한 방식을 선호하고 장비를 관리하는 관리자들은 많은 양의 로그를 기록하는 syslog보다는 SNMP NMS를 선호하는 경향이 있습니다. 유지보수 업무를 하면 둘 다 확인하는 경우가 많지만, 아무래도 SNMP NMS는 소프트웨어가 중점이다보니 상세하게 다루기는 어려울 것 같네요.