14.5. TLS 암호화 원격 로깅 구성


기본적으로 Rsyslog는 일반 텍스트 형식으로 원격 블로그 통신을 보냅니다. 시나리오에서 이 통신 채널을 보호해야 하는 경우 TLS를 사용하여 암호화할 수 있습니다.

TLS를 통해 암호화된 전송을 사용하려면 서버와 클라이언트를 둘 다 구성합니다. 서버는 하나 이상의 클라이언트 시스템에서 보낸 로그를 수집하고 분석합니다.

ossl 네트워크 스트림 드라이버(OpenSSL) 또는 gtls 스트림 드라이버(GnuTLS)를 사용할 수 있습니다.

참고

보안이 높은 별도의 시스템(예: 네트워크에 연결되지 않았거나 더 엄격한 권한 부여가 있는 시스템)이 있는 경우 별도의 시스템을 CA(인증 기관)로 사용합니다.

글로벌 ,모듈입력 수준의 서버 측과 글로벌 작업 수준의 클라이언트 측의 스트림 드라이버를 사용하여 연결 설정을 사용자 지정할 수 있습니다. 보다 구체적인 구성은 보다 일반적인 구성을 덮어씁니다. 예를 들어 대부분의 연결에서 ossl 을 사용하고 특정 연결에 대해서만 gtls 를 사용할 수 있습니다.

사전 요구 사항

  • 클라이언트 및 서버 시스템에 모두 root 액세스 권한이 있어야 합니다.
  • 다음 패키지는 서버 및 클라이언트 시스템에 설치됩니다.

    • rsyslog 패키지입니다.
    • ossl 네트워크 스트림 드라이버의 경우 rsyslog-openssl 패키지입니다.
    • gtls 네트워크 스트림 드라이버의 경우 rsyslog-gnutls 패키지입니다.
    • certtool 명령을 사용하여 인증서를 생성하는 경우 gnutls-utils 패키지를 사용합니다.
  • 로깅 서버에서 다음 인증서는 /etc/pki/ca-trust/source/anchors/ 디렉터리에 있으며 update-ca-trust 명령을 사용하여 시스템 구성을 업데이트합니다.

    • ca-cert.pem - 로깅 서버 및 클라이언트에서 키와 인증서를 확인할 수 있는 CA 인증서입니다.
    • server-cert.pem - 로깅 서버의 공개 키입니다.
    • server-key.pem - 로깅 서버의 개인 키입니다.
  • 로깅 클라이언트에서 다음 인증서는 /etc/pki/ca-trust/source/anchors/ 디렉터리에 있으며 update-ca-trust 를 사용하여 시스템 구성을 업데이트합니다.

    • ca-cert.pem - 로깅 서버 및 클라이언트에서 키와 인증서를 확인할 수 있는 CA 인증서입니다.
    • client-cert.pem - 클라이언트의 공개 키
    • client-key.pem - 클라이언트의 개인 키
    • 서버가 RHEL 9.2 이상을 실행하고 FIPS 모드가 활성화된 경우 클라이언트는 확장 마스터 시크릿(Extended Master Secret) 확장을 지원하거나 TLS 1.3을 사용해야 합니다. TLS 1.2 연결이 없는 경우 실패합니다. 자세한 내용은 TLS 확장 "Extended Master Secret" enforced Knowledgebase 문서를 참조하십시오.

절차

  1. 클라이언트 시스템에서 암호화된 로그를 수신하도록 서버를 구성합니다.

    1. /etc/ECDHE.d/ 디렉토리에 새 파일을 만듭니다(예: securelogser.conf ).
    2. 통신을 암호화하려면 구성 파일에 서버의 인증서 파일 경로, 선택한 인증 방법, TLS 암호화를 지원하는 스트림 드라이버가 포함되어야 합니다. /etc/ECDHE.d/securelogser.conf 파일에 다음 행을 추가합니다.

      # Set certificate files
      global(
        DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem"
        DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/server-cert.pem"
        DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/server-key.pem"
      )
      
      # TCP listener
      module(
        load="imtcp"
        PermittedPeer=["client1.example.com", "client2.example.com"]
        StreamDriver.AuthMode="x509/name"
        StreamDriver.Mode="1"
        StreamDriver.Name="ossl"
      )
      
      # Start up listener at port 514
      input(
        type="imtcp"
        port="514"
      )
      참고

      GnuTLS 드라이버를 선호하는 경우 StreamDriver.Name="gtls" 구성 옵션을 사용합니다. x509/name 보다 덜 엄격한 인증 모드에 대한 자세한 내용은 rsyslog-doc 패키지로 설치된 문서를 참조하십시오.

    3. 선택 사항: RHEL 9.4에서 제공되는 Rsyslog 버전 8.2310에서 연결 구성을 사용자 지정할 수 있습니다. 이렇게 하려면 입력 섹션을 다음으로 바꿉니다.

      input(
        type="imtcp"
        Port="50515"
        StreamDriver.Name="<driver>"
        streamdriver.CAFile="/etc/rsyslog.d/<ca1>.pem"
        streamdriver.CertFile="/etc/rsyslog.d/<server1-cert>.pem"
        streamdriver.KeyFile="/etc/rsyslog.d/<server1-key>.pem"
      )
      • 사용하려는 드라이버에 따라 <driver >를 ossl 또는 gtls 로 바꿉니다.
      • < ca1 >을 CA 인증서로, < server1-cert >를 인증서로, < server1-key >를 사용자 지정 연결 키로 바꿉니다.
    4. /etc/ECDHE.d/securelogser.conf 파일에 변경 사항을 저장합니다.
    5. /etc/ECDHE.conf 파일 및 /etc/ECDHE. d/ 디렉토리에 있는 모든 파일의 구문을 확인합니다.

      # rsyslogd -N 1
      rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)...
      rsyslogd: End of config validation run. Bye.
    6. 로깅 서버에서 rsyslog 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

      # systemctl status rsyslog
    7. rsyslog 서비스를 다시 시작하십시오.

      # systemctl restart rsyslog
    8. 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작되는지 확인하십시오.

      # systemctl enable rsyslog
  2. 암호화된 로그를 서버로 전송하도록 클라이언트를 구성합니다.

    1. 클라이언트 시스템에서 /etc/ECDHE.d/ 디렉토리에 (예: securelogcli.conf ) 새 파일을 만듭니다.
    2. /etc/ECDHE.d/securelogcli.conf 파일에 다음 행을 추가합니다.

      # Set certificate files
      global(
        DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem"
        DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/client-cert.pem"
        DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/client-key.pem"
      )
      
      
      # Set up the action for all messages
      *.* action(
        type="omfwd"
        StreamDriver="ossl"
        StreamDriverMode="1"
        StreamDriverPermittedPeers="server.example.com"
        StreamDriverAuthMode="x509/name"
        target="server.example.com" port="514" protocol="tcp"
      )
      참고

      GnuTLS 드라이버를 선호하는 경우 StreamDriver.Name="gtls" 구성 옵션을 사용합니다.

    3. 선택 사항: RHEL 9.4에서 제공되는 Rsyslog 버전 8.2310에서 연결 구성을 사용자 지정할 수 있습니다. 이렇게 하려면 action 섹션을 다음으로 바꿉니다.

      local1.* action(
        type="omfwd"
        StreamDriver="<driver>"
        StreamDriverMode="1"
        StreamDriverAuthMode="x509/certvalid"
        streamDriver.CAFile="/etc/rsyslog.d/<ca1>.pem"
        streamDriver.CertFile="/etc/rsyslog.d/<client1-cert>.pem"
        streamDriver.KeyFile="/etc/rsyslog.d/<client1-key>.pem"
        target="server.example.com" port="514" protocol="tcp"
        )
      • 사용하려는 드라이버에 따라 <driver >를 ossl 또는 gtls 로 바꿉니다.
      • < ca1 >을 CA 인증서로, < client1-cert >를 인증서로, < client1-key >를 사용자 지정 연결의 키로 바꿉니다.
    4. /etc/rsyslog.d/securelogcli.conf 파일에 변경 사항을 저장합니다.
    5. /etc/rsyslog.conf 파일 및 기타 파일의 구문을 /etc/rsyslog.d/ 디렉터리에 확인합니다.

      # rsyslogd -N 1
      rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)...
      rsyslogd: End of config validation run. Bye.
    6. 로깅 서버에서 rsyslog 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

      # systemctl status rsyslog
    7. rsyslog 서비스를 다시 시작하십시오.

      # systemctl restart rsyslog
    8. 선택 사항: Rsyslog가 활성화되지 않은 경우 재부팅 후 rsyslog 서비스가 자동으로 시작되는지 확인하십시오.

      # systemctl enable rsyslog

검증

클라이언트 시스템이 서버에 메시지를 전송하는지 확인하려면 다음 단계를 따르십시오.

  1. 클라이언트 시스템에서 테스트 메시지를 보냅니다.

    # logger test
  2. 서버 시스템에서 /var/log/ECDHE 로그를 확인합니다. 예를 들면 다음과 같습니다.

    # cat /var/log/remote/msg/<hostname>/root.log
    Feb 25 03:53:17 <hostname> root[6064]: test

    여기서 <hostname >은 클라이언트 시스템의 호스트 이름입니다. 로그에 logger 명령을 입력한 사용자의 사용자 이름이 포함되어 있습니다(이 경우 root ).

추가 리소스

  • certtool(1), openssl(1), update-ca-trust(8), rsyslogd(8), rsyslog.conf(5) 매뉴얼 페이지.
  • /usr/share/doc/ECDHE/html/index.html에서 rsyslog-doc 패키지로 설치된 문서입니다.
  • TLS에서 로깅 시스템 역할 사용.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.