기술나눔

[Linux 보안 운영 및 유지관리] rsyslog

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

rsyslog

1. rsyslog 란 무엇입니까?

rsyslog는 고성능입니다.로그 핸들러 , 로그 메시지를 수신, 처리 및 전달할 수 있습니다. 이는 시스템 로깅 및 관리를 위해 UNIX 및 Linux 시스템에서 널리 사용됩니다.

2. rsyslog의 주요 기능

  1. 고성능: 대량의 로그 메시지 처리가 가능하여 대규모 로그 관리 요구에 적합합니다.
  2. 모듈형 아키텍처: 다양한 입출력 모듈을 지원하며 유연하게 기능 확장이 가능합니다.
  3. 로그 필터링 및 재작성: 로그 흐름을 정밀하게 제어할 수 있도록 복잡한 로그 필터링 및 재작성 규칙을 지원합니다.
  4. 다양한 프로토콜 지원: TCP, UDP, TLS 등 다중 로그 전송 프로토콜을 처리할 수 있습니다.
  5. 안전: 로그 메시지의 보안을 보장하기 위해 암호화된 전송 및 인증을 지원합니다.

3. rsyslog 기본 구성

rsyslog의 구성 파일은 일반적으로 다음 위치에 있습니다. /etc/rsyslog.conf 또는/etc/rsyslog.d/ 내용 아래. 구성 파일은 규칙-작업 구조를 채택합니다.

주문하다:

systemctl status rsyslog.service

구성 예

# 基本格式
# :规则:动作

# 接收本地日志并写入文件
*.* /var/log/all.log

# 接收远程日志(UDP)并写入文件
$ModLoad imudp
$UDPServerRun 514
*.* /var/log/remote.log

# 接收远程日志(TCP)并写入文件
$ModLoad imtcp
$InputTCPServerRun 514
*.* /var/log/remote_tcp.log

# 基于消息优先级的日志过滤
authpriv.* /var/log/secure.log

# 基于消息内容的日志过滤
:msg, contains, "error" /var/log/error.log

4. 로그 우선순위 및 기능

rsyslog는 기능과 우선순위를 사용하여 로그 메시지를 분류하고 처리합니다.

시설

공용 시설은 다음과 같습니다:

  • auth, authpriv: 인증 및 보안 관련 메시지
  • cron: 예약된 작업과 관련된 메시지
  • 데몬: 시스템 백그라운드 프로세스 관련 메시지
  • kern: 커널 관련 메시지
  • 메일: 메일 시스템 관련 메시지
  • syslog: 내부 로그 처리 관련 메시지

우선 사항

높은 것부터 낮은 것까지의 우선순위는 다음과 같습니다.

  • emerg: 모든 사용자에게 즉각적인 알림이 필요한 긴급 상황
  • 경고: 즉시 처리해야 하는 문제
  • 크리티컬: 심각한 상황
  • 오류: 오류
  • 경고: 경고
  • 공지사항 : 평범하지만 중요한 소식
  • info: 정보 메시지
  • 디버그: 디버그 메시지

5. 공통 명령

  • rsyslog 시작sudo systemctl start rsyslog
  • rsyslog 중지sudo systemctl stop rsyslog
  • rsyslog 다시 시작sudo systemctl restart rsyslog
  • rsyslog 상태 확인sudo systemctl status rsyslog
  • 구성 다시 로드sudo systemctl reload rsyslog

6. 고급 기능

  • 로그 전달: 로그 메시지를 원격 서버로 전달
  • 로그 재작성: 규칙에 따라 로그 메시지 내용을 수정합니다.
  • 로그 아카이브: 저장 공간을 절약하기 위해 로그 메시지를 보관합니다.
  • 로그 분석: 로그 분석 및 시각화를 위한 타사 도구 통합

구성 예

  1. 클라이언트 구성
    클라이언트 서버에서 로그 메시지를 중앙 로그 서버로 전달하도록 rsyslog를 구성합니다.

    # 配置远程日志传输(UDP)
    *.* @logs.example.com:514
    
    # 配置远程日志传输(TCP)
    *.* @@logs.example.com:514
    
  2. 서버 구성
    중앙 집중식 로그 서버에서 클라이언트로부터 로그 메시지를 수신하도록 rsyslog를 구성합니다.

    # 加载输入模块
    $ModLoad imudp
    $UDPServerRun 514
    
    $ModLoad imtcp
    $InputTCPServerRun 514
    
    # 将接收到的日志写入文件
    *.* /var/log/centralized.log