기본적으로 리눅스나 윈도우등의 운영체제는 설치시 시간 기준을 바이오스(Bios)에 입력된 하드웨어 시간을 기준으로 설정되며 네트워크 연결시 NTP 서버와 주기적으로 동기화가 진행됩니다.

일반적인 클라이언트 PC 같은 경우 시간이 0.1-1초 틀어진다고 해도 큰 문제가 되지는 않지만 서버 같은 경우 시간이 스크립트 트리거(Trigger) 역할을 하고 로그 또한 시간 단위로 기록되기 때문에 정확한 시간 설정이 필수 인데요.

root@SERVER:/# timedatectl
Local time: Tue 2017-09-19 22:55:34 KST
Universal time: Tue 2017-09-19 13:55:34 UTC
RTC time: Sat 2017-09-30 09:44:55
Time zone: Asia/Seoul (KST, +0900)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

우분투는 설치시 기본적으로 timedatectl 패키지가 설치되며 시간 동기화 역할을 해 명령어를 입력해 보면 NTP synchronized 항목이 yes로 표기되어 동기화가 진행되는 것을 확인할 수 있습니다.

하지만 사내등 외부 네트워크와는 격리된 보안을 요하는 곳에서 별도의 NTP 서버를 구성하고 싶은 경우에는 다음과 같은 방법으로 NTP 서버와 동기화를 할 수 있습니다.

우분투 NTP 서버와 동기화 설정

root@SERVER:/# apt-get install ntp

위 명령어로 ntp 데몬을 설치합니다. ntp 패키지는 서버와 클라이언트 역할을 겸하고 있습니다.

root@SERVER:/# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
*211.233.78.116 216.239.35.12 2 u 51 64 1 10.451 44.613 1.604
+106.247.248.106 141.223.182.106 2 u 48 64 1 10.252 44.515 2.438
+send.mx.cdnetwo 204.123.2.5 2 u 48 64 1 11.470 44.111 2.453
chilipepper.can 193.79.237.14 2 u 55 64 1 296.194 49.536 0.000
alphyn.canonica 17.253.34.125 2 u 58 64 1 249.389 32.714 0.000
golem.canonical 17.253.34.253 2 u 59 64 1 298.083 48.513 0.000

ntpq -p 명령어로 ntp.conf 에 기본값으로 설정되어 있는 NTP 서버에서 시간을 받아 오는 것을 확인할 수 있습니다.

root@SERVER:/# timedatectl set-ntp no

ntp 데몬을 이용해 시간을 동기화 하기 때문에 앞서 얘기했던 timedatectl 데몬의 시간 동기화는 필요 없기 때문에 위 명령어로 동기화를 꺼주면 중복적으로 동기화 되는 것을 방지할 수 있습니다.

반대로 NTP 서버를 삭제하는 경우 명령어 뒤에 no 대신 on 을 입력해 timedatectl을 이용한 동기화를 사용할 수 있습니다.

ntp.conf 설정

pool time.bora.net
pool kr.pool.ntp.org

에디터로 /etc/ntp.conf 파일을 연 다음 pool로 시작되는 ntp 서버 주소를 삭제하거나 #으로 주석처리를 한 다음 위처럼 원하는 서버 주소를 입력합합니다.

root@SERVER:/# service ntp restart
root@SERVER:/# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.bora.net   .POOL.          16 p    -   64    0    0.000    0.000   0.000
 kr.pool.ntp.org .POOL.          16 p    -   64    0    0.000    0.000   0.000
 time.bora.net   204.123.2.5      2 u   17   64    1   11.530    0.275   0.000
 106.247.248.106 141.223.182.106  2 u   16   64    1   11.155   -2.938   0.000
 send.mx.cdnetwo 204.123.2.5      2 u   15   64    1   11.199   -3.702   0.000
 dadns.cdnetwork 204.123.2.5      2 u   13   64    1   10.002   -7.774   0.000
 211.233.78.116  216.239.35.12    2 u   13   64    1   10.747   -3.944   0.000

ntp 데몬을 재시작한 다음 서버 연결을 확인합니다.

restrict 192.168.123.0 mask 255.255.255.0 notrust

만일 NTP 클라이언트 기능이 아닌 서버로서 활용하고 싶다면 restrict 앞의 주석 # 을 삭제한 다음 서버가 속한 로컬 네트워크 대역에 맞춰 설정합니다.

NTP 서버는 UDP 123 포트를 사용하기 때문에 방화벽을 사용한다면 이 포트를 열어주면 NTP 서버 설정이 끝납니다.

Write A Comment