본문 바로가기
IT/리눅스

리눅스 NTP 서버를 통한 PC 시간 설정하기(feat. 폐쇄망)

by IT 과학정복 2024. 1. 21.
반응형

리눅스 NTP 서버를 통한 PC 시간 설정하는 방법을 알아보겠습니다.
시간 설정은 컴퓨터 시스템에서 중요한 요소 중 하나입니다. 
시스템의 정확한 동작을 위해서는 시간이 정확하게 설정되어 있어야 합니다. 

 
이번 글에서는 리눅스 시스템에서 NTP 서버를 통해 PC 시간을 
어떻게 설정하는지에 대해 실제 코드와 함께 자세히 설명드리겠습니다. 

반응형

NTP 서버는 네트워크 상의 다른 컴퓨터들과 시간을 동기화하는 데 사용되는 서버로, 

이를 통해 시스템의 시간을 정확하게 유지할 수 있습니다.

실제로 제가 다니는 회사는 망분리가 되어있는 시스템을 운영하고 있고,

 

폐쇄망 업무  PC의 경우, 아래와 같이 time.windows.com과 같은
인터넷 시간 서버 접속이 안되기 때문에

 폐쇄망용 NTP 서버를 따로 둬서 시간동기화가 가능해야
서버와 클라이언트 간의 데이터 동기화, 로그 파일 분석, 보안 인증 등 
다양한 작업을 수행할 수 있습니다.
 

준비물

  • 서버 : 리눅스 우분투
  • 서버 IP : 192.168.0.5  (예시)
  • PC IP : 192.168.0.1  (예시) 

 
 
1. NTP 를 다음의 명령어를 통해 설치합니다. Y 입력

 
 
2. NTP 설정파일( ntp.conf ) 실행( 위치는 기본 /etc )

NTP 설정 파일인 ntp.conf는 NTP 서비스의 동작을 제어하는 중요한 파일입니다. 
 
3. ntp.conf 파일 기본 설정과 보안 설정에 대해 알아보겠습니다.

 
저는 아래와 같이 설정하였고, 필요하신 분은 아래의 코드에서
본인이 사용하시는 IP 대역으로 IP만 변경하시고 
사용하시면 됩니다. 

 
================================== ntp.conf  ======================================
 
# 드리프트 파일의 위치를 지정합니다.
driftfile /var/lib/ntp/ntp.drift

# 윤초 파일의 위치를 지정합니다.
leapfile /usr/share/zoneinfo/leap-seconds.list

# 생성할 통계 유형을 지정합니다.
statistics loopstats peerstats clockstats

# loopstats 통계를 위한 파일 생성 설정을 지정합니다.
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# 아시아 풀 NTP 서버를 사용하도록 설정합니다.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server time.bora.net iburst

# 특정 IP 주소 범위에 대한 NTP 서버 폴링 간격을 설정합니다.
server 192.168.0.0/24 minpoll 3

# 로컬 클럭 드라이버를 NTP 서버로 사용하도록 설정합니다.
server 127.127.1.0

# 로컬 클럭 드라이버의 계층 수준을 '10'으로 설정합니다.
fudge 127.127.1.0 stratum 10

# 시간 소스와의 최대 거리를 제한합니다.
tos maxdist 20

# NTP 로그 파일의 위치를 지정합니다.
logfile /var/log/ntp.log

# 특정 IP 주소 범위에 대한 접근 제한을 설정합니다.
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

# 기본 접근 제한을 설정합니다.
restrict default kod nomodify notrap nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict default notrap nomodify noquery

# 로컬 호스트에 대한 접근 제한을 설정합니다.
restrict 127.0.0.1
restrict  ::1

# 브로드캐스트 딜레이 값을 설정합니다. 
broadcastdelay 0.008
 
 
================================== ntp.conf  ======================================
 

4. 윈도우 PC에서 리눅스 NTP 서버 통신되도록 설정합니다.(중요 ★ ★ ★ ★ ★)

  • iptables -A INPUT -p udp --dport 123 -j ACCEPT
  • 보안담당자의 경우 리눅스 NTP 서버 ACG 설정에서 해당 사용자 PC 대역만 UDP 123 포트만 허용해 주면 된다.

5. 설정이 완료되었다면, NTP가 잘 작동하는지 아래의 명령어로 확인합니다.

  • service ntp start : ntp 서비스 시작
  • service ntp status : ntp 서비스 상태 확인
  • ntpq -p : ntp 데몬에게 현재 시간 동기화 상태를 쿼리하여 이를 보기 쉬운 형태로 출력하는 명령어

 

active 작동중임을 확인할 수 있다.
 

 

위 화면에서 보이는 각 열에 대한 설명입니다.

  • remote: 피어의 주소를 나타냅니다.
  • refid: 현재 피어의 참조 ID를 나타냅니다.
  • st: Stratum (계층)을 나타냅니다. 이는 시간 소스의 정확성을 나타내는 값으로, 1은 가장 정확한 시간 소스를 의미합니다.
  • t: 피어의 타입을 나타냅니다. 예를 들어 'u'는 unicast 또는 많은 캐스트를 의미합니다.
  • when: 마지막으로 피어에게 패킷을 보낸 이후의 시간(초)을 나타냅니다.
  • poll: 다음 NTP 통신까지의 예상 시간(초)을 나타냅니다.
  • reach: 피어의 reachability, 즉 가용성을 8진수로 나타낸 값입니다. 377은 모든 시도가 성공했음을 의미합니다.
  • delay: 패킷이 왕복하는 데 걸리는 시간(밀리초)을 나타냅니다.
  • offset: 로컬 시스템 시간과 피어 시간 사이의 차이(밀리초)를 나타냅니다.
  • jitter: 시간 소스의 변동성, 즉 불안정성을 나타냅니다.

맨 앞에 있는 표시는 다음을 의미합니다:

  • * : 현재 사용 중인 시간 소스입니다.
  • + : 후보 시간 소스입니다.
  • - : 후보에서 제외된 시간 소스입니다.
  • 공백 : 사용되지 않는 시간 소스입니다.

6. 마지막 윈도우 PC 세팅

작업표시줄(모니터 아래쪽 시간이 보이는 곳)
마우스를 갖다 대면 이렇게 뜨고, 
마우스 오른쪽 클릭

  • 날짜/시간 조정(A) 클릭

 
현재 시간 서버(ntp 서버) : time.windows.com

  • [ 다른 시간대에 대한 시계 추가 ] 클릭

 
 

  • [ 인터넷 시간 ] 클릭 -> [ 설정 변경(C)... ] -> [인터넷 시간 서버와 동기화(S) ] 클릭 -> NTP 서버 IP 입력 -> [ 확인 ] 클릭
  • 시계가 현재시간, ~~ 동기화되었습니다. 메시지 출력되면 완료

 
 
완료~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 
 
이상으로 리눅스에서 NTP 서버를 통한 PC 시간 설정 방법에 대해 알아보았습니다. 
이번 글을 통해 NTP 서버 설정에 대한 기본적인 이해를 얻으셨기를 바랍니다. 
시간 동기화는 시스템의 정확한 작동을 위해 중요한 요소이므로, 
실제 시스템에서는 NTP 서버를 통한 시간 동기화를 꼭 설정해야 합니다.


저도 오늘 운영하던 NTP 서버가 동작을 하지 않아,
사용자들이 내부 PC 시간이 안맞는다고 제보를 해줘서
부랴부랴 확인하고, 다시 NTP 서비스를 살려서 시간동기화를 진행했네요.
저와 같은 상황이 부디 안나오시길 바라며 이만 글을 마치겠습니다. 
읽어주셔서 감사합니다.
 
 

반응형