Azure Stack HCI에 대한 syslog 전달 관리
적용 대상: Azure Stack HCI, 버전 23H2
이 문서에서는 Azure Stack HCI 버전 23H2(미리 보기)에 대한 syslog 프로토콜을 사용하여 고객 관리 SIEM(보안 정보 및 이벤트 관리) 시스템으로 전달되도록 보안 이벤트를 구성하는 방법을 설명합니다.
syslog 전달을 사용하여 보안 모니터링 솔루션과 통합하고 관련 보안 이벤트 로그를 검색하여 자체 SIEM 플랫폼에 보존하기 위해 저장합니다. 이 릴리스의 보안 기능에 대한 자세한 내용은 Azure Stack HCI용 보안 기능, 버전 23H2(미리 보기)를 참조하세요.
syslog 전달 구성
Syslog 전달 에이전트는 기본적으로 구성 준비가 된 모든 Azure Stack HCI 호스트에 배포됩니다. 각 에이전트는 호스트에서 고객이 구성한 syslog 서버로 syslog 형식의 보안 이벤트를 전달합니다.
Syslog 전달 에이전트는 서로 독립적으로 작동하지만 호스트 중 하나에서 모두 함께 관리할 수 있습니다. 모든 호스트에 대한 관리 권한이 있는 PowerShell cmdlet을 사용하여 모든 전달자 에이전트의 동작을 제어합니다.
Azure Stack HCI의 syslog 전달자는 다음 구성을 지원합니다.
TCP, 상호 인증(클라이언트 및 서버) 및 TLS 1.2 암호화를 사용한 Syslog 전달: 이 구성에서 syslog 서버와 syslog 클라이언트는 인증서를 통해 서로의 ID를 확인합니다. 메시지는 TLS 1.2 암호화 채널을 통해 전송됩니다. 자세한 내용은 TCP를 사용한 Syslog 전달, 상호 인증(클라이언트 및 서버) 및 TLS 1.2 암호화를 참조하세요.
TCP, 서버 인증 및 TLS 1.2 암호화를 사용한 Syslog 전달: 이 구성에서 syslog 클라이언트는 인증서를 통해 syslog 서버의 ID를 확인합니다. 메시지는 TLS 1.2 암호화 채널을 통해 전송됩니다. 자세한 내용은 TCP, 서버 인증 및 TLS 1.2 암호화를 사용한 Syslog 전달을 참조하세요.
TCP를 사용하여 Syslog 전달 및 암호화 없음: 이 구성에서는 syslog 클라이언트 및 syslog 서버 ID가 확인되지 않습니다. 메시지는 TCP를 통해 명확한 텍스트로 전송됩니다. 자세한 내용은 TCP를 사용하여 Syslog 전달 및 암호화 없음을 참조하세요.
UDP 및 암호화가 없는 Syslog: 이 구성에서는 syslog 클라이언트 및 syslog 서버 ID가 확인되지 않습니다. 메시지는 UDP를 통해 명확한 텍스트로 전송됩니다. 자세한 내용은 UDP를 사용하여 Syslog 전달 및 암호화 없음을 참조하세요.
중요
중간자 공격 및 메시지 도청으로부터 보호하기 위해 프로덕션 환경에서 인증 및 암호화와 함께 TCP를 사용하는 것이 좋습니다.
Syslog 전달을 구성하는 cmdlet
syslog 전달자를 구성하려면 도메인 관리자 계정을 사용하여 물리적 호스트에 액세스해야 합니다. syslog 전달자의 동작을 제어하기 위해 모든 Azure Stack HCI 호스트에 PowerShell cmdlet 집합이 추가되었습니다.
Set-AzSSyslogForwarder
cmdlet은 모든 호스트에 대한 syslog 전달자 구성을 설정하는 데 사용됩니다. 성공하면 작업 계획 instance 모든 호스트에서 syslog 전달자 에이전트를 구성하기 시작합니다. 작업 계획 instance ID가 반환됩니다.
다음 cmdlet을 사용하여 전달자에게 syslog 서버 정보를 전달하고 전송 프로토콜, 암호화, 인증 및 클라이언트와 서버 간에 사용되는 선택적 인증서를 구성합니다.
Set-AzSSyslogForwarder [-ServerName <String>] [-ServerPort <UInt16>] [-NoEncryption] [-SkipServerCertificateCheck | -SkipServerCNCheck] [-UseUDP] [-ClientCertificateThumbprint <String>] [-OutputSeverity {Default | Verbose}] [-Remove]
Cmdlet 매개 변수
다음 표에서는 cmdlet에 대한 매개 변수를 Set-AzSSyslogForwarder
제공합니다.
매개 변수 | Description | 형식 | 필수 |
---|---|---|---|
ServerName | Syslog 서버의 FQDN 또는 IP 주소입니다. | String | 예 |
ServerPort | Syslog 서버에서 수신 대기하는 포트 번호입니다. | UInt16 | 예 |
NoEncryption | 클라이언트가 syslog 메시지를 일반 텍스트로 보내도록 강제합니다. | 플래그 | No |
SkipServerCertificateCheck | 초기 TLS 핸드셰이크 중에 syslog 서버에서 제공하는 인증서의 유효성 검사를 건너뜁니다. | 플래그 | No |
SkipServerCNCheck | 초기 TLS 핸드셰이크 중에 syslog 서버에서 제공하는 인증서의 Common Name 값에 대한 유효성 검사를 건너뜁니다. | 플래그 | 아니요 |
UseUDP | UDP를 지원하는 syslog를 전송 프로토콜로 사용합니다. | 플래그 | No |
ClientCertificateThumbprint | syslog 서버와 통신하는 데 사용되는 클라이언트 인증서의 지문입니다. | String | No |
OutputSeverity | 출력 로깅 수준입니다. 값은 Default 또는 Verbose입니다. Default에는 심각도 수준(경고, 위험 또는 오류)이 포함됩니다. Verbose에는 모든 심각도 수준(자세한 정보, 정보, 경고, 위험 또는 오류)이 포함됩니다. | String | No |
제거 | 현재 syslog 전달자 구성을 제거하고 syslog 전달자를 중지합니다. | 플래그 | No |
TCP, 상호 인증(클라이언트 및 서버) 및 TLS 1.2 암호화를 사용한 Syslog 전달
이 구성에서 Azure Stack HCI의 syslog 클라이언트는 TLS 1.2 암호화를 사용하여 TCP를 통해 syslog 서버에 메시지를 전달합니다. 초기 핸드셰이크 중에 클라이언트는 서버가 신뢰할 수 있는 유효한 인증서를 제공하는지 확인합니다. 또한 클라이언트는 자신의 ID를 증명하기 위해 서버에 인증서를 제공합니다.
이 구성은 클라이언트와 서버의 ID에 대한 전체 유효성 검사를 제공하고 암호화된 채널을 통해 메시지를 보내기 때문에 가장 안전합니다.
중요
프로덕션 환경에 이 구성을 사용하는 것이 좋습니다.
TCP, 상호 인증 및 TLS 1.2 암호화를 사용하여 syslog 전달자를 구성하려면 서버를 구성하고 서버에 대해 인증할 인증서를 클라이언트에 제공합니다.
물리적 호스트에 대해 다음 cmdlet을 실행합니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -ClientCertificateThumbprint <Thumbprint of the client certificate>
중요
클라이언트 인증서에는 프라이빗 키가 포함되어야 합니다. 자체 서명된 루트 인증서를 사용하여 클라이언트 인증서에 서명된 경우 루트 인증서도 가져와야 합니다.
TCP, 서버 인증 및 TLS 1.2 암호화를 사용한 Syslog 전달
이 구성에서 Azure Stack HCI의 syslog 전달자는 TLS 1.2 암호화를 사용하여 TCP를 통해 syslog 서버에 메시지를 전달합니다. 초기 핸드셰이크 중에 클라이언트는 서버가 신뢰할 수 있는 유효한 인증서를 제공하는지도 확인합니다.
이 구성은 클라이언트가 신뢰할 수 없는 대상으로 메시지를 보내는 것을 방지합니다. 인증 및 암호화를 사용하는 TCP는 기본 구성이며 프로덕션 환경에 대해 Microsoft에서 권장하는 최소 보안 수준을 나타냅니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
자체 서명되거나 신뢰할 수 없는 인증서를 사용하여 Syslog 서버와 Azure Stack HCI syslog 전달자의 통합을 테스트하려면 이러한 플래그를 사용하여 초기 핸드셰이크 중에 클라이언트가 수행한 서버 유효성 검사를 건너뜁니다.
서버 인증서에서 일반 이름 값의 유효성 검사를 건너뜁니다. syslog 서버에 대한 IP 주소를 제공하는 경우 이 플래그를 사용합니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -SkipServerCNCheck
서버 인증서 유효성 검사를 건너뜁니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -SkipServerCertificateCheck
중요
프로덕션 환경에서는 플래그를
-SkipServerCertificateCheck
사용하지 않는 것이 좋습니다.
TCP를 사용하여 Syslog 전달 및 암호화 없음
이 구성에서 Azure Stack HCI의 syslog 클라이언트는 암호화 없이 TCP를 통해 syslog 서버에 메시지를 전달합니다. 클라이언트는 서버의 ID를 확인하지 않으며 확인을 위해 서버에 자체 ID를 제공하지 않습니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening on> -NoEncryption
중요
프로덕션 환경에서는 이 구성을 사용하지 않는 것이 좋습니다.
UDP를 사용하여 Syslog 전달 및 암호화 없음
이 구성에서 Azure Stack HCI의 syslog 클라이언트는 암호화 없이 UDP를 통해 syslog 서버에 메시지를 전달합니다. 클라이언트는 서버의 ID를 확인하지 않으며 확인을 위해 서버에 자체 ID를 제공하지 않습니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -UseUDP
암호화가 없는 UDP는 가장 쉽게 구성할 수 있지만 메시지의 중간 공격 또는 도청에 대한 보호를 제공하지는 않습니다.
중요
프로덕션 환경에서는 이 구성을 사용하지 않는 것이 좋습니다.
syslog 전달 사용
다음 cmdlet을 실행하여 syslog 전달을 사용하도록 설정합니다.
Enable-AzSSyslogForwarder [-Force]
Syslog 전달자는 마지막으로 성공한 Set-AzSSyslogForwarder
호출에서 제공한 저장된 구성으로 사용하도록 설정됩니다. 를 사용하여 Set-AzSSyslogForwarder
구성이 제공되지 않은 경우 cmdlet이 실패합니다.
syslog 전달 사용 안 함
다음 cmdlet을 실행하여 syslog 전달을 사용하지 않도록 설정합니다.
Disable-AzSSyslogForwarder [-Force]
및 Disable-AzSSyslogForwarder
cmdlet에 대한 Enable-AzSSyslogForwarder
매개 변수:
매개 변수 | Description | 형식 | 필수 |
---|---|---|---|
Force | 지정한 경우 대상 상태가 현재 상태와 동일한 경우에도 작업 계획이 항상 트리거됩니다. 대역 외 변경 내용을 다시 설정하는 데 도움이 될 수 있습니다. | 플래그 | No |
syslog 설정 확인
syslog 클라이언트를 syslog 서버에 성공적으로 연결하면 이벤트 알림을 받기 시작합니다. 알림이 표시되지 않으면 다음 cmdlet을 실행하여 클러스터 syslog 전달자 구성을 확인합니다.
Get-AzSSyslogForwarder [-Local | -PerNode | -Cluster]
각 호스트에는 클러스터 구성의 로컬 복사본을 사용하는 자체 syslog 전달자 에이전트가 있습니다. 항상 클러스터 구성과 동일해야 합니다. 다음 cmdlet을 사용하여 각 호스트에서 현재 구성을 확인할 수 있습니다.
Get-AzSSyslogForwarder -PerNode
다음 cmdlet을 사용하여 연결된 호스트의 구성을 확인할 수도 있습니다.
Get-AzSSyslogForwarder -Local
cmdlet에 Get-AzSSyslogForwarder
대한 Cmdlet 매개 변수:
매개 변수 | Description | 형식 | 필수 |
---|---|---|---|
로컬 | 현재 호스트에서 현재 사용된 구성을 표시합니다. | 플래그 | No |
PerNode | 각 호스트에서 현재 사용된 구성을 표시합니다. | 플래그 | No |
클러스터 | Azure Stack HCI에서 현재 전역 구성을 표시합니다. 매개 변수가 제공되지 않는 경우 기본 동작입니다. | 플래그 | No |
syslog 전달 제거
다음 명령을 실행하여 syslog 전달자 구성을 제거하고 syslog 전달자를 중지합니다.
Set-AzSSyslogForwarder -Remove
메시지 스키마 및 이벤트 로그 참조
다음 참조 자료는 syslog 메시지 스키마 및 이벤트 정의를 문서화합니다.
Azure Stack HCI 인프라의 syslog 전달자는 RFC3164 정의된 BSD syslog 프로토콜에 따라 형식이 지정된 메시지를 보냅니다. CEF는 syslog 메시지 페이로드의 형식을 지정하는 데도 사용됩니다.
각 syslog 메시지는 이 스키마에 따라 구조화됩니다. 우선 순위(PRI) | 시간 | 호스트 | CEF 페이로드 |
PRI 파트에는 시설 및 심각도라는 두 가지 값이 포함됩니다. 둘 다 메시지 유형(예: Windows 이벤트 등)에 따라 달라집니다.
다음 단계
다음에 대해 자세히 알아봅니다.