Syslog 서버가 클라이언트 OS를 인식할 수 있나요?

Syslog 서버가 클라이언트 OS를 인식할 수 있나요?

최근에 중앙 syslog 서버를 설정했습니다. 로그는 DNS를 사용하여 클라이언트 컴퓨터 이름을 딴 폴더의 파일로 구성되며 logcheck로 검사됩니다.

일부 클라이언트 시스템에는 둘 이상의 OS(즉, Linux 및 Windows)가 있으며 결국 동일한 IP 주소와 호스트 이름을 갖게 됩니다. 그 결과 Windows 로그(메시지)와 Linux 로그가 동일한 파일에 들어가게 되었고, 이로 인해 나와 logcheck가 상당히 불쾌해졌습니다. 다른 OS에 대한 로그를 별도로 유지하고 싶습니다.

내 솔루션은 syslog가 여러 포트에서 수신하도록 하고 Linux 및 Windows 클라이언트 시스템에서 다른 포트 번호를 사용하도록 syslog/rsyslog를 구성하는 것이었습니다. 이렇게 하면 소스에 따라 적절한 파일의 로그를 쉽게 리디렉션할 수 있습니다.

그러나 나는 이 솔루션의 우아함에 대해서는 확신하지 못합니다. nmap은 스택 TCP/IP의 지문을 통해 클라이언트 OS를 감지할 수 있습니다.

클라이언트 시스템의 OS에 따라 들어오는 데이터를 리디렉션하도록 Syslog-ng를 구성하는 방법이 있습니까?

답변1

Linux 및 Windows 시스템에 대해 서로 다른 포트를 사용하는 접근 방식은 전혀 나쁘지 않습니다.

대안:

  • syslog-ng에서 프로그램을 대상으로 사용(예: 클라이언트 시스템의 현재 OS를 확인하고 linux.log 또는 windows.log에 쓰는 사용자 정의 스크립트) - 느리고 신뢰할 수 없습니다.
  • syslog-ng 필터에서 match(...)를 사용하여 Linux와 Windows syslog 문자열을 구별하고(클라이언트의 syslog에 일부 마커 하위 문자열을 넣을 수 없으면 쉽고 신뢰할 수 있는지 확실하지 않음) 이러한 필터를 사용하여 대상 로그 파일을 선택합니다.

둘 다 별로 추천하기 어렵습니다.

또 다른 트릭은 Linux 클라이언트의 syslog에 대한 tcp 전송과 Windows의 udp 전송을 사용하는 것입니다. 프로토콜에 대한 필터를 사용하여 파일 대상을 구성할 수 있습니다.

관련 정보