로그 파일은 공격 문제를 해결하고 침해에 대한 정보를 얻을 수 있는 중요한 구성 요소입니다. 모든 ESXi 호스트는 VMkernel 및 기타 시스템 구성 요소의 메시지를 로컬 파일 또는 원격 호스트에 기록하는 syslog 서비스를 실행합니다.

호스트의 보안을 강화하기 위해 다음 조치를 수행하십시오.
  • 데이터스토어에 대한 영구적 로깅을 구성합니다. 기본적으로 ESXi 호스트의 로그는 메모리 내 파일 시스템에 저장됩니다. 따라서 호스트를 재부팅하면 로그가 손실되며 24시간의 로그 데이터만 저장됩니다. 영구적 로깅을 사용하도록 설정하면 호스트에 대한 전용 활동 기록이 생성됩니다.
  • 중앙 호스트로 원격 로깅하면 중앙 호스트에서 로그 파일을 수집할 수 있습니다. 이 호스트에서 하나의 도구로 모든 호스트를 모니터링하고, 집계 분석을 수행하고, 로그 데이터를 검색할 수 있습니다. 이러한 접근 방법을 사용하면 편리하게 모니터링할 수 있고 여러 호스트에 대한 조정된 공격과 같은 상황에 대한 정보도 파악할 수 있습니다.
  • ESXCLI 또는 PowerCLI를 사용하거나 API 클라이언트를 사용하여 ESXi 호스트에서 원격 보안 syslog를 구성합니다.
  • syslog 구성을 쿼리하여 syslog 서버와 포트가 올바른지 확인합니다.

syslog 설정에 대한 자세한 내용 및 ESXi 로그 파일에 대한 추가 정보는 "vSphere 모니터링 및 성능" 설명서를 참조하십시오.

ESXi 호스트의 Syslog 구성

vSphere Client, VMware Host Client 또는 esxcli system syslog 명령을 사용하여 syslog 서비스를 구성할 수 있습니다.

esxcli system syslog 명령 및 기타 ESXCLI 명령을 사용하는 방법에 대한 자세한 내용은 "ESXCLI 시작" 항목을 참조하십시오. 각 원격 호스트 규격에 지정된 포트에 대해 ESXi 방화벽을 여는 방법에 대한 자세한 내용은 ESXi 방화벽 구성 항목을 참조하십시오.

프로시저

  1. vSphere Client 인벤토리에서 호스트를 찾습니다.
  2. 구성을 클릭합니다.
  3. 시스템에서 고급 시스템 설정을 클릭합니다.
  4. 편집을 클릭합니다.
  5. syslog를 필터링합니다.
  6. 로깅을 전역적으로 설정하고 다양한 고급 설정을 구성하려면 ESXi Syslog 옵션 항목을 참조하십시오.
  7. (선택 사항) 로그의 기본 로그 크기와 로그 순환을 덮어쓰려면 다음을 수행합니다.
    1. 사용자 지정할 로그의 이름을 클릭합니다.
    2. 원하는 순환 수와 로그 크기를 입력합니다.
  8. 확인을 클릭합니다.

결과

syslog 옵션에 대한 변경 내용이 적용됩니다.
참고: vSphere Client 또는 VMware Host Client를 사용하여 정의한 Syslog 매개 변수 설정은 즉시 적용됩니다. 하지만 ESXCLI를 사용하여 정의하는 대부분의 설정을 적용하려면 추가 명령이 필요합니다. 자세한 내용은 ESXi Syslog 옵션을 참조하십시오.

ESXi Syslog 옵션

syslog 옵션 집합을 사용하여 ESXi syslog 파일 및 전송의 동작을 정의할 수 있습니다.

ESXi 7.0 업데이트 1부터는 Syslog.global.logHost와 같은 기본 설정 외에도 NIAP 규정 준수 및 사용자 지정에 고급 옵션 목록을 사용할 수 있습니다.

참고: 감사 레코드 매개 변수 또는 Syslog.global.logDir 매개 변수를 설정하기 전에는 항상 영구 스토리지를 구성합니다.
참고: Syslog.global.auditRecord로 시작하는 모든 감사 레코드 설정은 즉시 적용됩니다. 하지만 ESXCLI를 사용하여 정의하는 다른 설정의 경우에는 esxcli system syslog reload 명령을 실행하여 변경 내용을 사용하도록 설정해야 합니다.
표 1. 레거시 Syslog 옵션
옵션 ESXCLI 명령 설명
Syslog.global.logHost

esxcli system syslog config set --loghost=<str>

쉼표로 구분된 원격 호스트 목록 및 메시지 전송 규격을 정의합니다. loghost=<str> 필드가 비어 있으면 로그가 전달되지 않습니다. syslog 메시지를 수신할 원격 호스트 수에 대한 고정 제한값은 없지만 원격 호스트의 수를 5개 이하로 유지하는 것이 좋습니다. 원격 호스트 규격의 형식은 protocol://hostname|ipv4|'['ipv6']'[:port]입니다. 프로토콜은 TCP, UDP 또는 SSL 중 하나여야 합니다. 포트 값은 1에서 65535 사이의 십진수일 수 있습니다. 포트가 제공되지 않으면 SSL 및 TCP는 1514를 사용합니다. UDP는 514를 사용합니다. 예: ssl://hostName1:1514.
Syslog.global.defaultRotate esxcli system syslog config set --default-rotate=<long> 보존할 이전 로그 파일의 최대 수입니다. 이 숫자는 전체적으로 설정할 수 있으며 개별 하위 로거에 대해 설정할 수도 있습니다(Syslog.global.defaultSize 참조).
Syslog.global.defaultSize esxcli system syslog config set --default-size=<long> 로그 파일의 기본 크기(KiB)입니다. 파일이 기본 크기에 도달하면 Syslog 서비스가 새 파일을 생성합니다. 이 숫자는 전체적으로 설정할 수 있으며 개별 하위 로거에 대해 설정할 수도 있습니다.
Syslog.global.logDir esxcli system syslog config set --logdir=<str> 로그가 상주하는 디렉토리입니다. 디렉토리는 마운트된 NFS 또는 VMFS 볼륨에 있을 수 있습니다. 로컬 파일 시스템의 /scratch 디렉토리만 여러 번 재부팅해도 영구적으로 유지됩니다. 디렉토리는 [datastorename] path_to_file로 지정해야 하며, 여기서 경로는 데이터스토어 백업 볼륨의 루트에 상대적입니다. 예를 들어 경로 [storage1] /systemlogs는 경로 /vmfs/volumes/storage1/systemlogs에 매핑됩니다.
Syslog.global.logDirUnique esxcli system syslog config set --logdir-unique=<bool> Syslog.global.logDir 값에 연결할 ESXi 호스트 이름을 지정합니다. 여러 ESXi 호스트가 공유 파일 시스템에 로깅하는 경우 이 설정을 사용하도록 설정하는 것이 중요합니다. 이 옵션을 선택하면 Syslog.global.LogDir에서 지정한 디렉토리 아래에 ESXi 호스트의 이름을 가진 하위 디렉토리가 생성됩니다. 여러 ESXi 호스트에서 동일한 NFS 디렉토리를 사용하는 경우에는 고유한 디렉토리를 사용하는 것이 유용합니다.
Syslog.global.certificate.checkSSLCerts esxcli system syslog config set --check-ssl-certs=<bool> 원격 호스트에 메시지를 전송할 때 SSL 인증서 확인을 강제 실행합니다.
표 2. ESXi 7.0 업데이트 1부터 사용 가능한 Syslog 옵션
옵션 ESXCLI 명령 설명
Syslog.global.auditRecord.storageCapacity esxcli system auditrecords local set --size=<long> ESXi 호스트에 있는 감사 레코드 스토리지 디렉토리의 용량을 MiB 단위로 지정합니다. 감사 레코드 스토리지의 용량은 줄일 수 없습니다. 감사 레코드 스토리지를 사용하도록 설정하기 전이나 후에 용량을 늘릴 수 있습니다(Syslog.global.auditRecord.storageEnable 참조).
Syslog.global.auditRecord.remoteEnable esxcli system auditrecords remote enable 원격 호스트에 감사 레코드 보내기가 가능하도록 설정합니다. 원격 호스트는 Syslog.global.logHost 매개 변수를 사용하여 지정됩니다.
Syslog.global.auditRecord.storageDirectory esxcli system auditrecords local set --directory=<dir> 감사 레코드 스토리지 디렉토리를 생성하고 지정하지 않는 한 /scratch/auditLog를 기본 위치로 설정합니다. 감사 레코드 스토리지 디렉토리를 수동으로 생성하면 안 되며, 감사 레코드 스토리지가 사용되도록 설정되어 있는 동안 감사 레코드 스토리지 디렉토리를 변경할 수 없습니다(Syslog.global.auditRecord.storageEnable 참조).
Syslog.global.auditRecord.storageEnable esxcli system auditrecords local enable ESXi 호스트에서 감사 레코드의 스토리지를 사용하도록 설정합니다. 감사 레코드 스토리지 디렉토리가 없으면 Syslog.global.auditRecord.storageCapacity에서 지정한 용량으로 생성됩니다.
Syslog.global.certificate.checkCRL esxcli system syslog config set --crl-check=<bool> SSL 인증서 체인에 있는 모든 인증서의 해지 상태 확인이 가능하도록 설정합니다.

업계 규칙에 따라 기본적으로 확인되지 않는 X.509 CRL 확인이 가능하도록 설정합니다. NIAP 검증 구성에는 CRL 검사가 필요합니다. 구현 제한으로 인해 CRL 검사가 가능하도록 설정한 경우 인증서 체인의 모든 인증서가 CRL 링크를 제공해야 합니다.

CRL 검사를 사용하는 환경을 제대로 구성하기 어렵기 때문에 인증과 관련되지 않은 설치에 대해서는 crl-check 옵션을 사용하도록 설정하지 마십시오.

Syslog.global.certificate.strictX509Compliance esxcli system syslog config set --x509-strict=<bool> X.509에 대한 엄격한 규정 준수를 사용하도록 설정합니다. 확인하는 동안 CA 루트 인증서에 대한 추가 유효성 검사를 수행합니다. 이러한 검사는 일반적으로 수행되지 않습니다. CA 루트는 본질적으로 신뢰할 수 있고 잘못 구성된 기존 CA 루트와 호환되지 않을 수 있기 때문입니다. NIAP 검증 구성은 CA 루트도 검증을 통과해야 합니다.

CRL 검사를 사용하는 환경을 제대로 구성하기 어렵기 때문에 인증과 관련되지 않은 설치에 대해서는 x509-strict 옵션을 사용하도록 설정하지 마십시오.

Syslog.global.droppedMsgs.fileRotate esxcli system syslog config set --drop-log-rotate=<long> 보존할 이전의 삭제된 메시지 로그 파일의 수를 지정합니다.
Syslog.global.droppedMsgs.fileSize esxcli system syslog config set --drop-log-size=<long> 새 파일로 전환하기 전에 삭제된 각 메시지 로그 파일의 크기(KiB)를 지정합니다.
Syslog.global.logCheckSSLCerts esxcli system syslog config set --check-ssl-certs=<bool> 원격 호스트에 메시지를 전송할 때 SSL 인증서 확인을 강제 실행합니다.
참고: 폐기되었습니다. ESXi 7.0 업데이트 1 이상에서 Syslog.global.certificate.checkSSLCerts를 사용합니다.
Syslog.global.logFilters esxcli system syslog config logfilter [add | remove | set] ... 하나 이상의 로그 필터링 규격을 지정합니다. 각 로그 필터는 이중 세로 막대(||)로 구분해야 합니다. 로그 필터의 형식은 numLogs | ident | logRegexp입니다. numLogs는 지정한 로그 메시지의 최대 로그 항목 수를 설정합니다. 이 수에 도달하면 지정한 로그 메시지가 필터링되고 무시됩니다. ident는 해당 구성 요소가 생성하는 로그 메시지에 필터를 적용할 하나 이상의 시스템 구성 요소를 지정합니다. logRegexp는 로그 메시지를 컨텐츠를 기준으로 필터링할 Python 정규식 구문이 포함된 대/소문자 구분 문구를 지정합니다.
Syslog.global.logFiltersEnable 로그 필터 사용이 가능하도록 설정합니다.
Syslog.global.logLevel esxcli system syslog config set --log-level=<str> 로그 필터링 수준을 지정합니다. syslog 데몬의 문제를 해결할 때만 이 매개 변수를 변경해야 합니다. 값으로는 debug(가장 세부적인 수준), info(기본 세부 정보 수준), warning(주의 또는 오류만) 또는 error(오류만)를 사용할 수 있습니다.
Syslog.global.msgQueueDropMark esxcli system syslog config --queue-drop-mark=<long>) 메시지가 삭제되는 메시지 대기열 용량의 백분율을 지정합니다.
Syslog.global.remoteHost.connectRetryDelay esxcli system syslog config set --default-timeout=<long> 연결 시도가 실패한 후 원격 호스트에 연결을 다시 시도하기 전의 지연 시간(초)을 지정합니다.
Syslog.global.remoteHost.maxMsgLen esxcli system syslog config set --remote-host-max-msg-len=<long> TCP 및 SSL 프로토콜의 경우 이 매개 변수는 잘림이 발생하기 전 syslog 전송의 최대 길이(바이트)를 지정합니다. 원격 호스트 메시지의 기본 최대 길이는 1KiB입니다. 최대 메시지 길이를 최대 16KiB까지 늘릴 수 있습니다. 하지만, 이 값을 1KiB 넘게 높인다고 해서 긴 전송이 잘리지 않고 syslog 수집기에 도달하는 것은 아닙니다. 메시지를 생성하는 syslog 인프라가 ESXi 외부에 있는 경우를 예로 들 수 있습니다.

이 설정은 UDP 프로토콜에 영향을 주지 않습니다. RFC 5426은 UDP 프로토콜의 최대 메시지 전송 길이를 IPV4의 경우 480바이트, IPV6의 경우 1180바이트로 설정합니다. 이러한 제한으로 인해 그리고 UDP 패킷은 네트워킹 인프라에 의해 임의로 삭제될 수 있기 때문에 중요한 syslog 메시지를 전송하는 데는 UDP를 사용하지 않는 것이 좋습니다.

Syslog.global.vsanBacking esxcli system syslog config set --vsan-backing=<bool> 로그 파일 및 감사 레코드 스토리지 디렉토리를 vSAN 클러스터에 배치할 수 있습니다. 단, 이 매개 변수를 사용하도록 설정하면 ESXi 호스트가 응답하지 않을 수 있습니다.

ESXi 로그 파일 위치

ESXi에서는 syslog 기능을 사용하여 호스트 작업을 로그 파일에 기록합니다.

표 3. ESXi 로그 파일 위치
구성 요소 위치 용도
인증 /var/log/auth.log 로컬 시스템의 인증과 관련된 모든 이벤트가 들어 있습니다.
ESXi 호스트 에이전트 로그 /var/log/hostd.log ESXi 호스트와 해당 가상 시스템을 관리하고 구성하는 에이전트에 대한 정보가 들어 있습니다.
셸 로그 /var/log/shell.log ESXi 셸에 입력한 모든 명령의 기록과 셸 이벤트(예: 셸이 사용되도록 설정된 시점)가 들어 있습니다.
시스템 메시지 /var/log/syslog.log 모든 일반 로그 메시지가 들어 있으며 이 메시지를 문제 해결에 이용할 수 있습니다. 기존에는 이 정보가 메시지 로그 파일에 있었습니다.
vCenter Server 에이전트 로그 /var/log/vpxa.log vCenter Server와 통신하는 에이전트에 대한 정보가 들어 있습니다(vCenter Server로 호스트를 관리하는 경우).
가상 시스템 영향을 받는 가상 시스템의 구성 파일과 같은 디렉토리에 있는 vmware.logvmware*.log 파일. 예: /vmfs/volumes/datastore/virtual machine/vmware.log 가상 시스템 전원 이벤트, 시스템 오류 정보, 도구 상태 및 작업, 시간 동기화, 가상 하드웨어 변경, vMotion 마이그레이션, 시스템 복제 등이 들어 있습니다.
VMkernel /var/log/vmkernel.log 가상 시스템 및 ESXi와 관련된 작업을 기록합니다.
VMkernel 요약 /var/log/vmksummary.log ESXi의 가동 시간 및 가용성 통계를 확인하는 데 사용합니다(쉼표로 구분).
VMkernel 주의 /var/log/vmkwarning.log 가상 시스템과 관련된 작업을 기록합니다.
Quick Boot /var/log/loadESX.log Quick Boot을 통한 ESXi 호스트 다시 시작과 관련된 모든 이벤트가 들어 있습니다.
신뢰할 수 있는 인프라 에이전트 /var/run/log/kmxa.log ESXi 신뢰할 수 있는 호스트에서 클라이언트 서비스와 관련된 활동을 기록합니다.
키 제공자 서비스 /var/run/log/kmxd.log vSphere 신뢰 기관 키 제공자 서비스와 관련된 활동을 기록합니다.
증명 서비스 /var/run/log/attestd.log vSphere 신뢰 기관 증명 서비스와 관련된 활동을 기록합니다.
ESX 토큰 서비스 /var/run/log/esxtokend.log vSphere 신뢰 기관 ESX 토큰 서비스와 관련된 활동을 기록합니다.
ESX API 전달자 /var/run/log/esxapiadapter.log vSphere 신뢰 기관 API 전달자와 관련된 활동을 기록합니다.