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/24IPv6에 대한 액세스 권한을 부여하려면 이 명령을 사용합니다.
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
-
이는 특정 서브넷 또는 호스트에 대한 액세스를 제어할 수 있다는 점을 제외하고
지시문 (see section allow )과 유사합니다.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 1010의 큰 값은 시간이 신뢰할 수 없다는 참조 클럭에서 너무 많은 홉이 있음을 나타냅니다. 컴퓨터가 궁극적으로 참조 클럭에 동기화되는 다른 컴퓨터에 액세스할 수 있는 경우 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-ppmskew-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/rtcchronyd는 종료 시 및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에 원격으로 액세스
/etc/chrony.conf파일에 다음을 추가하여 IPv4 및 IPv6 주소 모두에서 액세스를 허용합니다.bindcmdaddress 0.0.0.0또는
bindcmdaddress :cmdallow지시문을 사용하여 원격 IP 주소, 네트워크 또는 서브넷의 명령을 허용합니다./etc/chrony.conf파일에 다음 내용을 추가합니다.cmdallow 192.168.1.0/24방화벽에서 포트 323을 열어 원격 시스템에서 연결합니다.
~]# firewall-cmd --zone=public --add-port=323/udp포트 323을 영구적으로 읽으려면
--permanent를 사용하십시오.~]# firewall-cmd --permanent --zone=public --add-port=323/udp
allow 지시문은 NTP 액세스를 위한 반면, cmdallow 지시문은 원격 명령을 수신할 수 있도록 하는 것입니다. chronyc 를 로컬로 실행하여 일시적으로 이러한 변경을 수행할 수 있습니다. 구성 파일을 편집하여 영구적으로 변경합니다.