본문 바로가기
운영체제 (LNX,WIN)

리눅스 시스템 NTP(Chrony) 구성을 통한 시각 동기화

by 날으는물고기 2024. 2. 28.

리눅스 시스템 NTP(Chrony) 구성을 통한 시각 동기화

How to install Chrony NTP to synchronize time on Linux

Chrony는 NTP(Network Time Protocol)를 구현한 서버 및 클라이언트 프로그램으로, 기존의 Linux ntpd(Network Time Protocol daemon)에 비해 여러 개선 사항을 가지고 있습니다. 이러한 개선 사항은 ntpd의 단점을 보완하는 데 중점을 두었습니다.

NTP의 단점

  1. 네트워크 지연 변동에 대한 취약성: ntpd는 네트워크 지연시간이 변동하는 환경에서 시간 동기화의 정확도가 떨어질 수 있습니다.
  2. 장기간 연결이 끊긴 후의 동기화: 네트워크에 장시간 접속하지 않은 시스템은 ntpd로 시간을 동기화하는 데 시간이 오래 걸릴 수 있습니다.
  3. 리소스 사용: ntpd는 비교적 많은 시스템 리소스를 사용할 수 있습니다, 특히 오래된 하드웨어나 덜 강력한 시스템에서는 이러한 문제가 두드러질 수 있습니다.

Chrony의 개선 사항

  1. 향상된 네트워크 지연 처리: Chrony는 네트워크 지연 변동에 더 강하며, 결과적으로 더 정확하고 신뢰할 수 있는 시간 동기화를 제공합니다.
  2. 빠른 동기화: 장기간 연결이 끊긴 후에도 Chrony는 빠르게 시간을 동기화할 수 있습니다.
  3. 낮은 리소스 사용: Chrony는 ntpd보다 적은 CPU 및 메모리를 사용합니다, 이는 성능에 민감한 시스템이나 제한된 리소스를 가진 시스템에 유리합니다.

설치 및 설정

  1. 설치
    • 대부분의 Linux 배포판에서 chrony는 표준 패키지 관리 시스템을 통해 설치할 수 있습니다.
    • 예를 들어, Red Hat 계열에서는 sudo yum install chrony를, Debian 계열에서는 sudo apt-get install chrony를 사용합니다.
  2. 설정
    • 설정 파일은 일반적으로 /etc/chrony/chrony.conf에 위치합니다.
    • 이 파일에서는 NTP 서버를 지정하고, 네트워크 설정을 조정하며, 보안 관련 옵션을 설정할 수 있습니다.
    • 예를 들어, NTP 서버를 설정하려면 server [서버 주소] iburst 라인을 추가합니다.
  3. 서비스 시작 및 활성화
    • 설치 후 sudo systemctl start chronyd를 사용하여 서비스를 시작합니다.
    • 부팅 시 자동으로 시작하도록 하려면 sudo systemctl enable chronyd를 사용합니다.
  4. 시간 동기화 상태 확인
    • chronyc tracking 명령어를 사용하여 시간 동기화 상태를 확인할 수 있습니다.
    • chronyc sources 명령어로 현재 연결된 NTP 서버를 확인할 수 있습니다.

운영 방법

  • 보안: Chrony 설정에서는 NTP의 보안 측면도 고려할 수 있습니다. 예를 들어, 특정 네트워크 또는 호스트로부터의 요청만을 허용하도록 할 수 있습니다.
  • 모니터링 및 로깅: Chrony의 성능과 상태를 모니터링하기 위해 로그 파일을 사용하거나, chronyc 명령어를 통해 실시간 상태를 체크할 수 있습니다.
  • 시스템 통합: Chrony는 다양한 시스템과 잘 통합됩니다. 예를 들어, 하드웨어 클록과의 동기화, 시스템 부팅 시 자동 시작 등의 기능을 지원합니다.

Chrony의 사용과 설정은 시스템의 특정 요구 사항과 네트워크 환경에 따라 다를 수 있으므로, 상세한 설정과 조정은 공식 문서 또는 해당 시스템의 관리 가이드라인을 참조하는 것이 좋습니다.

 

Chrony의 설정은 주로 /etc/chrony/chrony.conf 파일을 통해 이루어집니다. 이 파일에서 다양한 옵션을 통해 시간 동기화의 동작 방식을 조정할 수 있습니다. 주요 옵션들과 그 용도에 대해 설명하겠습니다.

  1. server / pool
    • 용도: NTP 서버 주소를 지정합니다.
    • 예시:
      • server ntp.example.com iburstntp.example.com을 NTP 서버로 지정합니다. iburst는 초기 동기화 시 더 빠른 응답을 위해 사용됩니다.
      • pool pool.ntp.org는 여러 NTP 서버를 자동으로 사용할 수 있는 서버 풀을 지정합니다.
  2. driftfile
    • 용도: 시스템 클록의 드리프트(오차) 정보를 저장하는 파일의 경로를 지정합니다.
    • 예시: driftfile /var/lib/chrony/drift
  3. makestep
    • 용도: 시스템 시간과 NTP 시간 사이의 큰 차이를 조정합니다.
    • 예시: makestep 1.0 3는 처음 3번의 업데이트에서 1초 이상의 차이가 있으면 시간을 즉시 조정하라는 의미입니다.
  4. rtcsync
    • 용도: 시스템 시계를 RTC(실시간 클록)에 주기적으로 동기화합니다.
    • 예시: rtcsync (옵션 값 없음)
  5. local stratum
    • 용도: 로컬 시간의 Stratum 레벨을 설정합니다. 이는 NTP 네트워크 내에서 시간 서버의 계층을 결정합니다.
    • 예시: local stratum 10
  6. allow / deny
    • 용도: 특정 IP 또는 네트워크 범위로부터의 접근을 허용하거나 차단합니다.
    • 예시:
      • allow 192.168.0.0/16은 192.168.0.0/16 네트워크 범위 내의 모든 요청을 허용합니다.
      • deny 192.168.0.100은 특정 IP 주소로부터의 요청을 차단합니다.
  7. logdir
    • 용도: 로그 파일을 저장할 디렉토리를 지정합니다.
    • 예시: logdir /var/log/chrony
  8. maxupdateskew
    • 용도: 동기화 오차의 최대 허용치를 설정합니다. 너무 큰 시간 차이가 감지되면 동기화를 거부합니다.
    • 예시: maxupdateskew 100.0
  9. keyfile
    • 용도: 인증 키를 저장하는 파일을 지정합니다. 이는 NTP 메시지에 대한 인증에 사용됩니다.
    • 예시: keyfile /etc/chrony.keys
  10. leapsectz
    • 용도: 윤초 정보를 제공하는 시간대를 설정합니다.
    • 예시: leapsectz right/UTC
  11. bindcmdaddress
    • 용도: chronyc 명령을 수신할 특정 IP 주소를 지정합니다.
    • 예시: bindcmdaddress 127.0.0.1

이 외에도 Chrony는 많은 추가적인 옵션을 제공합니다. 이러한 옵션들은 시스템의 특정한 요구사항과 네트워크 환경에 맞게 조정될 수 있으며, 정확한 설정 방법은 Chrony의 공식 문서를 참조하는 것이 좋습니다. 설정 파일을 조정한 후에는 chronyd 서비스를 재시작하여 변경사항을 적용해야 합니다.

728x90

댓글