웹사이트 검색

Debian에서 NTP 서버와 클라이언트를 설치하고 구성하는 방법


네트워크 시간 프로토콜(NTP)은 회사가 회사 내 모든 시스템의 시계를 동기화할 수 있는 고유한 기능을 제공합니다. 시간 동기화는 애플리케이션 타임스탬프부터 보안, 적절한 로그 항목에 이르기까지 여러 가지 이유로 중요합니다.

조직의 시스템이 모두 서로 다른 시계 시간을 유지하는 경우 문제 해결 관점에서 특정 이벤트가 언제 어떤 조건에서 발생할 수 있는지 확인하는 것이 매우 어렵습니다.

NTP는 모든 시스템이 정확한 시간을 유지하도록 보장하는 쉬운 방법을 제공하여 결과적으로 관리자/기술 지원에 대한 부담을 크게 단순화할 수 있습니다.

NTP는 'stratum 0' 서버라고도 알려진 참조 시계와의 동기화를 전제로 작동합니다. 다른 모든 NTP 서버는 참조 서버와의 거리에 따라 하위 수준의 Strata 서버가 됩니다.

NTP 체인의 시작은 항상 stratum 0 참조 시계에 직접 연결되는 stratum 1 서버입니다. 여기에서 하위 계층 서버는 네트워크 연결을 통해 상위 계층 서버에 연결됩니다.

보다 명확한 개념을 보려면 아래 다이어그램을 참조하십시오.

stratum 0 또는 stratum 1 서버를 설정할 수 있지만 그렇게 하는 데 비용이 많이 들기 때문에 이 가이드에서는 하위 Strata 서버 설정에 중점을 둘 것입니다.

Tecmint는 다음 링크에서 NTP의 기본 호스트 구성을 가지고 있습니다:

  1. NTP 서버와 시간을 동기화하는 방법

이 가이드가 다른 점은 네트워크의 모든 호스트가 공용 NTP 서버에 쿼리하도록 하는 대신 하나(또는 더 나은 방법, 여러 서버)가 공용 NTP 시스템에 접속한 다음 해당 네트워크 내의 모든 호스트에 시간을 제공한다는 것입니다. 지역 네트워크.

내부 NTP 서버는 네트워크 대역폭을 보존하고 NTP 제한 및 암호화를 통해 향상된 보안을 제공하는 데 이상적인 경우가 많습니다. 이것이 첫 번째 다이어그램과 어떻게 다른지 확인하려면 아래 두 번째 다이어그램을 참조하세요.

1단계: NTP 서버 설치

1. 내부 NTP 구조를 설정하는 첫 번째 단계는 NTP 서버 소프트웨어를 설치하는 것입니다. 현재 'NTP'라는 데비안 소프트웨어 패키지에는 NTP 계층 구조를 설정하는 데 필요한 모든 서버 유틸리티가 포함되어 있습니다. 시스템 구성에 대한 모든 튜토리얼과 마찬가지로 루트 또는 sudo 액세스가 가정됩니다.

apt-get install ntp
dpkg --get-selections ntp          [Can be used to confirm NTP is installed]
dpkg -s ntp                        [Can also be used to confirm NTP is installed]

1단계: NTP 서버 구성

2. NTP가 설치되면 시간을 쿼리할 상위 계층 서버를 구성할 차례입니다. NTP 구성 파일은 '/etc/ntp.conf'에 저장되며 텍스트 편집기로 수정할 수 있습니다. 이 파일에는 상위 수준 서버의 정규화된 도메인 이름, 이 NTP 서버에 대해 설정된 제한 사항, 이 NTP 서버를 쿼리하는 호스트에 대한 기타 특수 매개 변수가 포함됩니다.

구성 프로세스를 시작하려면 더 높은 수준의 서버를 구성해야 합니다. Debian은 기본적으로 Debian NTP 풀을 구성 파일에 넣습니다. 이는 대부분의 목적에 적합하지만 관리자는 NIST를 방문하여 특정 서버를 지정하거나 모든 NIST 서버를 라운드 로빈 방식으로 사용할 수 있습니다(NIST에서 권장하는 방법).

이 튜토리얼에서는 특정 서버가 구성됩니다. 구성 파일은 몇 가지 주요 섹션으로 나누어져 있으며 기본적으로 IPv4 및 IPv6에 대해 구성됩니다(IPv6를 비활성화하려는 경우 나중에 이에 대해 언급합니다). 구성 프로세스를 시작하려면 구성 파일을 텍스트 편집기로 열어야 합니다.

nano /etc/ntp.conf

처음 몇 개의 섹션(driftfile, statsdirstatistics)은 기본값으로 설정되어 있습니다. 다음 섹션에는 이 서버가 시간을 요청해야 하는 상위 수준 서버가 포함되어 있습니다. 각 서버 항목의 구문은 매우 간단합니다.

server <fully qualified domain name> <options>
server time.nist.gov iburst â     [sample entry]

일반적으로 이 목록에서 선택할 수 있는 상위 계층 서버를 여러 개 갖는 것이 좋습니다. 이 서버는 목록에 있는 모든 서버를 쿼리하여 가장 안정적인 서버를 결정합니다. 이 예의 서버는 http://tf.nist.gov/tf-cgi/servers.cgi에서 얻었습니다.

3단계: NTP 제한 구성

3. 다음 단계는 NTP 제한을 구성하는 것입니다. 이는 호스트가 NTP 서버와 상호 작용하는 것을 허용하거나 거부하는 데 사용됩니다. NTP의 기본값은 누구에게나 제공 시간이지만 IPv4 및 IPv6 연결 모두에 대한 구성을 허용하지 않습니다.

이 서버는 현재 IPv4 네트워크에서만 사용되므로 IPv6는 두 가지 방법으로 비활성화되었습니다. NTP 서버에서 IPv6를 비활성화하기 위해 수행된 첫 번째 작업은 데몬이 시작되는 기본값을 변경하는 것이었습니다. 이는 '/etc/default/ntp' 줄을 변경하여 수행되었습니다.

nano /etc/default/ntp
NTPD_OPTS='-4 -g' [Add the ' -4 ' to this line to tell NTPD to only listen to IPv4]

기본 구성 파일(/etc/ntp.conf)로 돌아가면 NTP 데몬은 모든 IPv4/6 호스트와 시간을 공유하지만 구성을 허용하지 않도록 자동으로 구성됩니다. 이는 다음 두 줄로 확인할 수 있습니다.

NTPD는 거부되지 않는 한 허용되는 방식으로 작동합니다. IPv6가 비활성화되었으므로 'restrict -6' 줄을 제거하거나 ' #로 주석 처리할 수 있습니다.

이는 모든 메시지를 무시하도록 NTP의 기본 동작을 변경합니다. 이상해 보일 수 있지만 액세스가 필요한 호스트에 대해 이 NTP 서버에 대한 액세스를 미세 조정하는 데 제한 절이 사용되므로 계속 읽으십시오.

이제 서버는 누가 서버에 시간을 쿼리할 수 있는지, 그리고 NTP 서버로 무엇을 할 수 있는지 알아야 합니다. 이 서버의 경우 172.27.0.0/16의 개인 네트워크가 제한 스탠자를 구축하는 데 사용됩니다.

이 줄은 172.27.0.0/16 네트워크의 모든 호스트가 일정 시간 동안 서버에 액세스할 수 있도록 허용하도록 서버에 알립니다. 마스크 뒤의 매개변수는 서버에 쿼리할 때 이 네트워크의 호스트가 수행할 수 있는 작업을 제어하는 데 도움이 됩니다. 잠시 시간을 내어 이러한 제한 옵션 각각을 이해해 보겠습니다.

  1. 제한됨: 클라이언트가 패킷 속도 제어 수를 남용해야 하는 경우 서버에서 패킷을 폐기함을 나타냅니다. Kiss of Death 패킷이 활성화되면 악의적인 호스트로 다시 전송됩니다. 요금은 관리자가 구성할 수 있지만 여기서는 기본값을 가정합니다.
  2. KOD: 죽음의 키스. 호스트가 서버에 대한 패킷 제한을 위반하면 서버는 위반 호스트에 KoD 패킷으로 응답합니다.
  3. Notrap: 거절 모드 6 제어 메시지. 이러한 제어 메시지는 원격 로깅 프로그램에 사용됩니다.
  4. 수정 금지: 서버 구성을 수정하는 ntpq 및 ntpdc 쿼리를 방지하지만 정보 쿼리는 계속 허용됩니다.
  5. Noquery: 이 옵션은 호스트가 서버에 정보를 쿼리하는 것을 방지합니다. 예를 들어 이 옵션이 없으면 호스트는 ntpdc 또는 ntpq를 사용하여 특정 시간 서버가 시간을 가져오는 위치나 통신할 수 있는 다른 피어 시간 서버를 확인할 수 있습니다.