Chrony는 NTP(Network Time Protocol)를 구현한 서버 및 클라이언트 프로그램으로, 기존의 Linux ntpd(Network Time Protocol daemon)에 비해 여러 개선 사항을 가지고 있습니다. 이러한 개선 사항은 ntpd의 단점을 보완하는 데 중점을 두었습니다.
NTP의 단점
- 네트워크 지연 변동에 대한 취약성: ntpd는 네트워크 지연시간이 변동하는 환경에서 시간 동기화의 정확도가 떨어질 수 있습니다.
- 장기간 연결이 끊긴 후의 동기화: 네트워크에 장시간 접속하지 않은 시스템은 ntpd로 시간을 동기화하는 데 시간이 오래 걸릴 수 있습니다.
- 리소스 사용: ntpd는 비교적 많은 시스템 리소스를 사용할 수 있습니다, 특히 오래된 하드웨어나 덜 강력한 시스템에서는 이러한 문제가 두드러질 수 있습니다.
Chrony의 개선 사항
- 향상된 네트워크 지연 처리: Chrony는 네트워크 지연 변동에 더 강하며, 결과적으로 더 정확하고 신뢰할 수 있는 시간 동기화를 제공합니다.
- 빠른 동기화: 장기간 연결이 끊긴 후에도 Chrony는 빠르게 시간을 동기화할 수 있습니다.
- 낮은 리소스 사용: Chrony는 ntpd보다 적은 CPU 및 메모리를 사용합니다, 이는 성능에 민감한 시스템이나 제한된 리소스를 가진 시스템에 유리합니다.
설치 및 설정
- 설치
- 대부분의 Linux 배포판에서
chrony
는 표준 패키지 관리 시스템을 통해 설치할 수 있습니다. - 예를 들어, Red Hat 계열에서는
sudo yum install chrony
를, Debian 계열에서는sudo apt-get install chrony
를 사용합니다.
- 대부분의 Linux 배포판에서
- 설정
- 설정 파일은 일반적으로
/etc/chrony/chrony.conf
에 위치합니다. - 이 파일에서는 NTP 서버를 지정하고, 네트워크 설정을 조정하며, 보안 관련 옵션을 설정할 수 있습니다.
- 예를 들어, NTP 서버를 설정하려면
server [서버 주소] iburst
라인을 추가합니다.
- 설정 파일은 일반적으로
- 서비스 시작 및 활성화
- 설치 후
sudo systemctl start chronyd
를 사용하여 서비스를 시작합니다. - 부팅 시 자동으로 시작하도록 하려면
sudo systemctl enable chronyd
를 사용합니다.
- 설치 후
- 시간 동기화 상태 확인
chronyc tracking
명령어를 사용하여 시간 동기화 상태를 확인할 수 있습니다.chronyc sources
명령어로 현재 연결된 NTP 서버를 확인할 수 있습니다.
운영 방법
- 보안: Chrony 설정에서는 NTP의 보안 측면도 고려할 수 있습니다. 예를 들어, 특정 네트워크 또는 호스트로부터의 요청만을 허용하도록 할 수 있습니다.
- 모니터링 및 로깅: Chrony의 성능과 상태를 모니터링하기 위해 로그 파일을 사용하거나,
chronyc
명령어를 통해 실시간 상태를 체크할 수 있습니다. - 시스템 통합: Chrony는 다양한 시스템과 잘 통합됩니다. 예를 들어, 하드웨어 클록과의 동기화, 시스템 부팅 시 자동 시작 등의 기능을 지원합니다.
Chrony의 사용과 설정은 시스템의 특정 요구 사항과 네트워크 환경에 따라 다를 수 있으므로, 상세한 설정과 조정은 공식 문서 또는 해당 시스템의 관리 가이드라인을 참조하는 것이 좋습니다.
Chrony의 설정은 주로 /etc/chrony/chrony.conf
파일을 통해 이루어집니다. 이 파일에서 다양한 옵션을 통해 시간 동기화의 동작 방식을 조정할 수 있습니다. 주요 옵션들과 그 용도에 대해 설명하겠습니다.
server
/pool
- 용도: NTP 서버 주소를 지정합니다.
- 예시:
server ntp.example.com iburst
는ntp.example.com
을 NTP 서버로 지정합니다.iburst
는 초기 동기화 시 더 빠른 응답을 위해 사용됩니다.pool pool.ntp.org
는 여러 NTP 서버를 자동으로 사용할 수 있는 서버 풀을 지정합니다.
driftfile
- 용도: 시스템 클록의 드리프트(오차) 정보를 저장하는 파일의 경로를 지정합니다.
- 예시:
driftfile /var/lib/chrony/drift
makestep
- 용도: 시스템 시간과 NTP 시간 사이의 큰 차이를 조정합니다.
- 예시:
makestep 1.0 3
는 처음 3번의 업데이트에서 1초 이상의 차이가 있으면 시간을 즉시 조정하라는 의미입니다.
rtcsync
- 용도: 시스템 시계를 RTC(실시간 클록)에 주기적으로 동기화합니다.
- 예시:
rtcsync
(옵션 값 없음)
local stratum
- 용도: 로컬 시간의 Stratum 레벨을 설정합니다. 이는 NTP 네트워크 내에서 시간 서버의 계층을 결정합니다.
- 예시:
local stratum 10
allow
/deny
- 용도: 특정 IP 또는 네트워크 범위로부터의 접근을 허용하거나 차단합니다.
- 예시:
allow 192.168.0.0/16
은 192.168.0.0/16 네트워크 범위 내의 모든 요청을 허용합니다.deny 192.168.0.100
은 특정 IP 주소로부터의 요청을 차단합니다.
logdir
- 용도: 로그 파일을 저장할 디렉토리를 지정합니다.
- 예시:
logdir /var/log/chrony
maxupdateskew
- 용도: 동기화 오차의 최대 허용치를 설정합니다. 너무 큰 시간 차이가 감지되면 동기화를 거부합니다.
- 예시:
maxupdateskew 100.0
keyfile
- 용도: 인증 키를 저장하는 파일을 지정합니다. 이는 NTP 메시지에 대한 인증에 사용됩니다.
- 예시:
keyfile /etc/chrony.keys
leapsectz
- 용도: 윤초 정보를 제공하는 시간대를 설정합니다.
- 예시:
leapsectz right/UTC
bindcmdaddress
- 용도:
chronyc
명령을 수신할 특정 IP 주소를 지정합니다. - 예시:
bindcmdaddress 127.0.0.1
- 용도:
이 외에도 Chrony는 많은 추가적인 옵션을 제공합니다. 이러한 옵션들은 시스템의 특정한 요구사항과 네트워크 환경에 맞게 조정될 수 있으며, 정확한 설정 방법은 Chrony의 공식 문서를 참조하는 것이 좋습니다. 설정 파일을 조정한 후에는 chronyd
서비스를 재시작하여 변경사항을 적용해야 합니다.
728x90
댓글