18.2. chrony 및 구성 이해


18.2.1. chronyd 및 chronyc 이해

chrony 데몬인 chronyd 는 명령행 유틸리티 chronyc 에서 모니터링하고 제어할 수 있습니다. 이 유틸리티는 여러 명령을 입력하여 chronyd 의 현재 상태를 쿼리하고 해당 구성을 변경할 수 있는 명령 프롬프트를 제공합니다. 기본적으로 chronyd 는 chronyc 의 로컬 인스턴스의 명령만 허용하지만 원격 호스트에서 모니터링 명령도 허용하도록 구성할 수 있습니다. 원격 액세스는 제한되어야 합니다.

18.2.2. chrony 설정 명령 이해

chronyd 의 기본 구성 파일은 /etc/chrony.conf 입니다. f 옵션을 사용하여 대체 구성 파일 경로를 지정할 수 있습니다. 추가 옵션은 chronyd 도움말 페이지를 참조하십시오.

다음은 chronyd 구성 옵션의 선택 사항입니다.

comments
주석 앞에 #, %, ; 또는 !
allow
필요한 경우 NTP 서버 역할을 하는 시스템에 대한 NTP 연결을 허용하는 호스트, 서브넷 또는 네트워크를 지정합니다. 기본값은 연결을 허용하지 않습니다.

예 18.1. 허용 옵션을 사용하여 액세스 권한 부여:

  • IPv4에 대한 액세스 권한을 부여하려면 이 명령을 사용합니다.

    allow 192.0.2.0/24
  • IPv6에 대한 액세스 권한을 부여하려면 이 명령을 사용합니다.

    allow 2001:0db8:85a3::8a2e:0370:7334
참고

클라이언트 액세스를 허용하려면 UDP 포트 번호 123을 방화벽에 열어야 합니다.

~]# firewall-cmd --zone=public --add-port=123/udp

123 포트를 영구적으로 열려면 --permanent 옵션을 사용하십시오.

~]# firewall-cmd --permanent --zone=public --add-port=123/udp
cmdallow
이는 특정 서브넷 또는 호스트에 대한 액세스를 제어할 수 있다는 점을 제외하고 allow 지시문 (see section allow )과 유사합니다. (컨트롤 액세스(control access)"는 해당 호스트에서 chronyc 를 실행하고 이 컴퓨터의 chronyd 에 성공적으로 연결할 수 있음을 의미합니다.) 구문은 동일합니다. 또한 cmddeny all 지시문과 유사한 동작이 있는 모든 지시문이 있습니다.
dumpdir
chronyd 를 다시 시작할 때 측정 기록을 저장할 디렉터리의 경로입니다(실행 중이 아닌 경우 시스템 클럭 동작이 변경되지 않음) 이 기능을 사용할 경우(구성 파일에서 dumponexit 명령 또는 chronyc의 dump 명령을 통해) 측정 항목이 저장되는 디렉터리를 정의하는 데 dumpdir 명령을 사용해야 합니다.
dumponexit
이 명령이 있는 경우 chronyd 가 프로그램이 종료될 때마다 기록된 각 시간 소스에 대한 측정 기록을 저장해야 함을 나타냅니다. (위의 dumpdir 명령을 참조하십시오.
hwtimestamp
hwtimestamp 지시문을 사용하면 매우 정확한 동기화를 위해 하드웨어 타임스탬프를 사용할 수 있습니다. 자세한 내용은 chrony.conf(5) 매뉴얼 페이지를 참조하십시오.
지역

local 키워드는 현재 동기화 소스가 없는 경우에도 chronyd 가 클라이언트의 관점에서 실시간으로 동기화되도록 허용하는 데 사용됩니다. 이 옵션은 일반적으로 격리된 네트워크의 "마스터" 컴퓨터에서 사용되며, 이 경우 여러 컴퓨터를 서로 동기화해야 하며 "마스터"는 수동 입력을 통해 실시간으로 유지됩니다.

명령의 예는 다음과 같습니다.

local stratum 10

10의 큰 값은 시간이 신뢰할 수 없다는 참조 클럭에서 너무 많은 홉이 있음을 나타냅니다. 컴퓨터가 궁극적으로 참조 클럭에 동기화되는 다른 컴퓨터에 액세스할 수 있는 경우 10보다 작은 계층에 있을 것입니다. 따라서 로컬 명령에 대해 10과 같은 높은 값을 선택하면 머신의 시간이 실시간으로 혼동되지 않도록 할 수 있으며 실제 서버를 파악할 수 있는 클라이언트에는 유출되지 않았습니다.

log

log 명령은 특정 정보가 기록될 것임을 나타냅니다. 다음 옵션을 허용합니다.

측정
이 옵션은 원시 NTP 측정 및 metrics .log라는 파일에 관련 정보를 기록합니다.
statistics
이 옵션은 statistics.log 라는 파일에 대한 회귀 처리 정보를 기록합니다.
tracking
이 옵션은 시스템의 이득 또는 손실율의 추정치와 changes를 tracking.log 라는 파일에 기록합니다.
rtc
이 옵션은 시스템의 실시간 시계에 대한 정보를 기록합니다.
refclocks
이 옵션은 refclocks.log 라는 파일에 원시 및 필터링된 참조 클럭 측정을 기록합니다.
tempcomp

이 옵션은 tempcomp.log 라는 파일에 온도 측정 및 시스템 속도 가격을 기록합니다.

로그 파일은 logdir 명령으로 지정된 디렉터리에 작성됩니다.

명령의 예는 다음과 같습니다.

log measurements statistics tracking
LOGDIR

이 지시문을 사용하면 로그 파일을 지정할 디렉터리를 지정할 수 있습니다.

이 지시문을 사용하는 예는 다음과 같습니다.

logdir /var/log/chrony
설정

일반적으로 chronyd 는 필요에 따라 클럭을 늦추거나 속도를 늦추어 시스템이 시간 오프셋을 점차적으로 수정하도록 합니다. 특정 상황에서는 시스템 시계가 너무 멀리 떨어져서 이 슬라이싱 프로세스가 시스템 시계를 수정하는 데 매우 오랜 시간이 걸릴 수 있습니다. 이 지시어는 조정이 임계값보다 큰 경우 chronyd 가 시스템 클럭을 차지하지만 chronyd 가 지정된 제한보다 시작되었기 때문에 클럭 업데이트가 더 이상 없는 경우에만 수행합니다(제한을 비활성화하는 데 음수 값을 사용할 수 있음). initstepslew 지시문은 NTP 소스에서만 작동하기 때문에 참조 클럭을 사용할 때 특히 유용합니다.

이 지시문을 사용하는 예는 다음과 같습니다.

makestep 1000 10

이 경우 조정이 1000초보다 크고 처음 10개 시계 업데이트에서만 시스템 클럭이 수행됩니다.

maxchange

이 지시문은 클럭 업데이트 시 수정된 최대 오프셋을 설정합니다. 시스템 시계의 대규모 초기 조정을 허용하기 위해 지정된 수의 업데이트 횟수가 지정된 후에만 검사가 수행됩니다. 지정된 최대값보다 큰 오프셋이 발생하면 지정된 횟수에 대해 무시되고 chronyd 가 포기하고 종료됩니다(종료에 음수 값을 사용할 수 없음). 두 경우 모두 메시지가 syslog로 전송됩니다.

이 지시문을 사용하는 예는 다음과 같습니다.

maxchange 1000 1 2

첫 번째 클럭 업데이트 후 chronyd 는 모든 클럭 업데이트에서 오프셋을 확인한 후 1000초보다 큰 두 가지 조정 사항을 무시하고 다른 업데이트를 종료합니다.

maxupdateskew

chronyd 의 작업 중 하나는 참조 소스에 대해 컴퓨터 클럭이 얼마나 빠르게 실행되는지 또는 속도가 느려지는 작업을 수행하는 것입니다. 또한 예상 값에 바인딩된 오류의 추정치를 계산합니다.

오류 범위가 너무 크면 측정이 아직 해결되지 않았으며 추정된 이득 또는 손실 비율은 매우 신뢰할 수 없음을 나타냅니다.

maxupdateskew 매개변수는 추정치가 너무 신뢰할 수 있는지 여부를 결정하는 임계값입니다. 기본적으로 임계값은 1000 ppm입니다.

구문의 형식은 다음과 같습니다.

maxupdateskew skew-in-ppm

skew-in-ppm 에 대한 일반적인 값은 전화선을 통해 서버에 전화 접속 연결 시 100개, LAN상의 컴퓨터에 대해 5 또는 10일 수 있습니다.

이것은 신뢰할 수 없는 추정치를 사용하는 것을 방지할 수 있는 유일한 수단이 아닙니다. 항상 chronyd 는 예상 얻을 또는 손실 비율과 추정치에 바인딩된 오류를 추적합니다. 소스 중 하나에서 다른 측정에 따라 새 추정치가 생성되면 가중치화된 조합 알고리즘이 마스터 추정을 업데이트하는 데 사용됩니다. chronyd 에 신뢰할 수 있는 기존의 마스터 추정치가 있고 큰 오류가 있는 새 추정치가 생성되는 경우 기존 마스터 추정은 새 마스터 추정에서 제외됩니다.

minsources

minsources 지시문은 로컬 클럭이 업데이트되기 전에 소스 선택 알고리즘에서 선택 가능한 것으로 간주해야 하는 최소 소스 수를 설정합니다.

구문의 형식은 다음과 같습니다.

minsources number-of-sources

기본적으로 소스 수는 1입니다. minsources를 더 큰 수로 설정하면 여러 소스가 서로 일치해야 하므로 안정성을 향상시킬 수 있습니다.

noclientlog
인수를 사용하지 않는 이 지시문은 클라이언트 액세스가 기록되지 않도록 지정합니다. 일반적으로 로깅되어 chronyc 에서 clients 명령을 사용하여 통계를 보고할 수 있습니다.
reselectdist

chronyd 가 사용 가능한 소스에서 동기화 소스를 선택하면 최소 동기화 거리가 있는 동기화가 우선합니다. 그러나 비슷한 거리가 있는 소스가 있을 때 자주 재선택되지 않도록 하려면 현재 선택되지 않은 소스의 거리에 고정 거리가 추가됩니다. 이 설정은 reselectdist 옵션을 사용하여 설정할 수 있습니다. 기본적으로 거리는 100 마이크로초입니다.

구문의 형식은 다음과 같습니다.

reselectdist dist-in-seconds
stratumweight

stratumweight 지시문은 chronyd 가 사용 가능한 소스에서 동기화 소스를 선택할 때 stratum당 최대 거리를 동기화 거리에 추가합니다.

구문의 형식은 다음과 같습니다.

stratumweight dist-in-seconds

기본적으로 dist-in-seconds 는 1밀리초입니다. 즉, 더 낮은 계층에 있는 소스가 일반적으로 거리가 훨씬 더 나빠질 때에도 더 높은 계층에 있는 소스보다 우선합니다. stratumweight 를 0으로 설정하면 소스를 선택할 때 chronyd 가 stratum을 무시합니다.

rtcfile

rtcfile 지시문은 chronyd 가 시스템의 실시간 클럭(RTC)의 정확성을 추적하는 데 관련된 매개 변수를 저장할 수 있는 파일의 이름을 정의합니다.

구문의 형식은 다음과 같습니다.

rtcfile /var/lib/chrony/rtc

chronyd 는 종료 시 및 writertc 명령이 chronyc 에서 발급될 때 이 파일에 정보를 저장합니다. 저장된 정보는 일부 epoch에서 RTC의 오류, 즉 epoch (3년 1월 1일 이후) 및 RTC가 시간을 늘리거나 손실하는 속도입니다. 코드에 따라 시스템에 따라 모든 실시간 시계가 지원되는 것은 아닙니다. 이 지시문을 사용하는 경우 임의 간격으로 조정된 경우 실시간 클럭 드리프트가 실시간 클럭 드리프트를 조정하는 속도를 측정해야 하므로 실시간 클럭 드리프트를 수동으로 조정할 수 없습니다.

rtcsync
rtcsync 지시문은 기본적으로 /etc/chrony.conf 파일에 있습니다. 이렇게 하면 커널에서 시스템 클럭이 동기화되고 커널이 11분마다 실시간 클럭을 업데이트합니다.

18.2.3. chronyc를 통한 보안

Chronyc 는 다음 두 가지 방법으로 chronyd 에 액세스할 수 있습니다.

  • 인터넷 프로토콜(IPv4 또는 IPv6)
  • UNIX 도메인 소켓 - 루트 또는 chrony 사용자가 로컬로 액세스할 수 있습니다.

기본적으로 chronyc 는 Unix 도메인 소켓에 연결됩니다. 기본 경로는 /var/run/chrony/chronyd.sock 입니다. 이 연결에 실패하면 예를 들어 chronyc 가 루트가 아닌 사용자에서 실행되는 경우 chronyc 는 127.0.0.1에 연결을 시도한 다음 ::1을 시도합니다.

chronyd 의 동작에 영향을 미치지 않는 다음 모니터링 명령만 네트워크에서 허용됩니다.

  • activity
  • 수동 목록
  • rtcdata
  • smoothing
  • 소스
  • sourcestats
  • tracking
  • waitsync

chronyd 가 이러한 명령을 허용하는 호스트 세트는 chronyd 의 설정 파일에서 cmdallow 지시문 또는 chronyc 의 cmdallow 명령을 사용하여 구성할 수 있습니다. 기본적으로 이 명령은 localhost(127.0.0.1 또는 ::1)에서만 사용할 수 있습니다.

다른 모든 명령은 Unix 도메인 소켓을 통해서만 허용됩니다. 네트워크를 통해 전송되면 chronyd 는 localhost에서 가져온 경우에도 Not authorized error로 응답합니다.

chronyc를 사용하여 chronyd에 원격으로 액세스

  1. /etc/chrony.conf 파일에 다음을 추가하여 IPv4 및 IPv6 주소 모두에서 액세스를 허용합니다.

    bindcmdaddress 0.0.0.0

    또는

    bindcmdaddress :
  2. cmdallow 지시문을 사용하여 원격 IP 주소, 네트워크 또는 서브넷의 명령을 허용합니다.

    /etc/chrony.conf 파일에 다음 내용을 추가합니다.

    cmdallow 192.168.1.0/24
  3. 방화벽에서 포트 323을 열어 원격 시스템에서 연결합니다.

    ~]# firewall-cmd --zone=public --add-port=323/udp

    포트 323을 영구적으로 읽으려면 --permanent 를 사용하십시오.

    ~]# firewall-cmd --permanent --zone=public --add-port=323/udp

allow 지시문은 NTP 액세스를 위한 반면, cmdallow 지시문은 원격 명령을 수신할 수 있도록 하는 것입니다. chronyc 를 로컬로 실행하여 일시적으로 이러한 변경을 수행할 수 있습니다. 구성 파일을 편집하여 영구적으로 변경합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동