Monday, March 26, 2018

CentOS 6.6 리눅스 네트워크 ] 6. NTP 서버/클라이언트 간단 구성


안녕하세요. 썬구루입니다. 이 게시물에서는 CentOS 리눅스 기반에 NTP에 대해 알아보도록 하겠습니다.

컴퓨터 또는 서버에 있는 시간 정보는 어떻게 기록 또는 갱신되는 것일까요? 컴퓨터 메인보드를 자세히 보면 수은 전지 모양의 배터리가 있는 것을 확인할 수 있습니다. 이 배터리는 어디에 전원을 공급하는 것일까요?

이 배터리는 Low-level 시스템 기능을 위해 사용되는데 RTC(Real-Time Clock)이나 BIOS 세팅 값을 메모리(주 메모리 아님)에 지속적으로 유지하기 위해 사용됩니다. 그래서 컴퓨터가 꺼져 있을 때에도 시간 정보가 계속 유지되는 것입니다.

■ Time Server가 필요한 이유

전산기계실에는 수많은 장비가 있습니다. 그리고 각 시스템들은 시스템 시간을 가지는데 시간이 모두 일치해야 각 시스템에 생성되는 데이터, 로그, 보안 등에 관련된 것들이 시간에 대해 일관성을 가지게 됩니다. 하지만 시간이 지남에 따라 운영되는 시스템들의 시스템 시간(^^)이 불일치하게 됩니다. 그래서 동일한 시간을 가지게 시간 동기화를 할 필요가 있는데 이때 사용되는 시스템이 NTP 서버입니다.

■ NTP

이전에는 rdate라는 명령을 사용하여 시간 서버(Time Server)로 사용되는 서버와 개별적으로 시간 동기화를 하였으나 요즘은 NTP(Network Time Protocol) 프로토콜을 사용하는 서비스를 통해 시간 동기화를 시킵니다. 다시 말해 NTP는 네트워크를 통해 시스템 시간을 동기화시키는 통신프로토콜 또는 서비스입니다. NTP는 1985년 이전부터 운영되어 오고 있는 매우 오래된 인터넷 프로토콜 중 하나입니다.

NTP는 시간만을 처리하는 원자 서버가 있으며 이를 Stratum 0이라 부릅니다. 그리고  NTP 서버와 직접 연결된 NTP 서버를 Stratum1이라 부릅니다. stratum 1, stratum 2, stratum 3 이런 형식으로 NTP는 계층적인 시스템을 사용합니다.

전산실에 NTP 서버로 사용할 시스템을 두고 Stratum 서버와 시간 동기화 설정을 합니다. 그리고 전산실 내에 있는 모든 시스템에 NTP 서비스를 통해 시간 동기화를 시키는 것입니다. 이렇게 하기 위해서 NTP 서버/클라이언트 구성이 필요합니다.

여러분들이 사용하는 윈도우 운영체제는 기본적으로 time.windows.com 서버와 시간 동기화를 구성되어 있죠.

국내 NTP 서버에 대한 정보는 아래와 같습니다.

▶ Stratum 1

도메인 이름
IP 주소
비고
time.kriss.re.kr
210.98.16.100
 -
ntp.postech.ac.kr
141.223.182.106
 -
gps.bora.net
210.120.246.46
 -
ntp.kornet.net
168.126.63.6
 -

▶ Stratum 2

도메인 이름
IP 주소
비고
time.kriss.re.kr
210.98.16.100
 -
maths.kaist.ac.kr
143.248.25.208
 -
time.bora.net
203.248.240.103
 -
clock.iptime.ac.kr
61.100.12.187
 -

▶ Stratum 3

도메인 이름
IP 주소
비고
time1.daum.net
211.233.78.116
 -


■ CentOS 6.6 리눅스에 NTP 서버 구성

NTP 서버로 구성하기 위해서는 관련된 패키지 설치가 필요합니다. CentOS 리눅스 설치 시 Basic Server로 설치하면 NTP에 관련된 패키지도 같이 설치합니다. 아래와 같이 NTP 관련 패키지가 설치되어 있는지 확인을 해봅니다.

[root@dhcpntp ~]# rpm -qa | grep "^ntp"
ntpdate-4.2.6p5-1.el6.centos.x86_64
ntp-4.2.6p5-1.el6.centos.x86_64
[root@dhcpntp ~]# 

만약 설치가 되어 있지 않다면 CentOS 6.6 DVD 1번 ISO를 연결하여 rpm 명령으로 관련된 패키지를 설치합니다.

1) NTP 서버 간단 설정

NTP 서버 구성을 위해 /etc/ntp.conf 파일을 수정합니다.


[root@dhcpntp ~]# cat /dev/null > /etc/ntp.conf
[root@dhcpntp ~]# vi /etc/ntp.conf

server 92.86.106.228 iburst        #server 0.centos.pool.ntp.org iburst # 기존 /etc/ntp.conf 파일에 있던
server 82.78.227.6 iburst           #server 1.centos.pool.ntp.org iburst # ntp.org 도메인에 관련된 IP 주소 정보
server 93.114.42.129 iburst        #server 2.centos.pool.ntp.org iburst # 이다.
server 86.122.158.76 iburst        #server 3.centos.pool.ntp.org iburst
server 80.96.120.252 iburst
server 93.190.144.3 iburst
server 89.36.93.9 iburst
server 188.241.220.3 iburst

server 127.127.1.0
fudge 127.127.1.0 stratum 5
restrict 192.168.80.0 netmask 255.255.255.0 nomodify notrap
broadcast 224.0.1.1 autokey  # multicast server

driftfile /var/lib/ntp/drift
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

[root@dhcpntp ~]#

2). NTP 서버 시작/종료

[root@dhcpntp ~]# service ntpd [ start | stop ]

3). 부팅 시 NTP 서버 자동 시작

[root@dhcpntp ~]# chkconfig ntpd [ on | off ]

4). NTP 서버 테스트 ( 테스트를 위해 iptables 방화벽을 내리거나 방화벽 정책에 추가해줘야 함)

[root@dhcpntp ~]# date
Fri Jul 22 00:00:26 KST 2016
[root@dhcpntp ~]#
[root@dhcpntp ~]# date -u 07110111
Mon Jul 11 01:11:00 UTC 2016
[root@dhcpntp ~]#
[root@dhcpntp ~]# service ntpd start
Starting ntpd:                                             [  OK  ]
[root@dhcpntp ~]#
[root@dhcpntp ~]# date
Mon Jul 11 10:11:20 KST 2016
[root@dhcpntp ~]#
[root@dhcpntp ~]# date
Fri Jul 22 00:01:23 KST 2016
[root@dhcpntp ~]# chkconfig ntpd on 



■ CentOS 6.6 리눅스에 NTP 클라이언트 구성

NTP 클라이언트로 구성하기 위해서는 관련된 패키지 설치가 필요합니다. CentOS 리눅스 설치 시 Basic Server로 설치하면 NTP에 관련된 패키지도 같이 설치합니다. 아래와 같이 NTP 관련 패키지가 설치되어 있는지 확인을 해봅니다.

[root@dhcpntp ~]# rpm -qa | grep "^ntp"
ntpdate-4.2.6p5-1.el6.centos.x86_64
ntp-4.2.6p5-1.el6.centos.x86_64
[root@dhcpntp ~]#

만약 설치가 되어 있지 않다면 CentOS 6.6 DVD 1번 ISO를 연결하여 rpm 명령으로 관련된 패키지를 설치합니다.

1) NTP 클라이언트 간단 설정

NTP 클라이언트 구성을 위해 /etc/ntp.conf 파일을 수정합니다.

[root@dhcpntp ~]# cat /dev/null > /etc/ntp.conf
[root@dhcpntp ~]# vi /etc/ntp.conf 

server 192.168.80.11
multicastclient 224.0.1.1

[root@dhcpntp ~]#

2). NTP 서버 시작/종료

[root@dhcpntp ~]# service ntpd [ start | stop ]

3). 부팅 시 NTP 서버 자동 시작

[root@dhcpntp ~]# chkconfig ntpd [ on | off ]

4). NTP 클라이언트 테스트

▶ ntpdate 명령을 통한 시간 동기화 ( 테스트를 위해 iptables 방화벽을 내리거나 방화벽 정책에 추가해줘야 함)

[root@centos66temp ~]# date
Fri Jul 22 01:44:58 KST 2016
[root@centos66temp ~]#
[root@centos66temp ~]# date -u 07020312
Sat Jul  2 03:12:00 UTC 2016
[root@centos66temp ~]#
[root@centos66temp ~]# date
Sat Jul  2 12:12:03 KST 2016
[root@centos66temp ~]#
[root@centos66temp ~]# ntpdate -u 192.168.80.11
22 Jul 01:45:33 ntpdate[62677]: step time server 192.168.80.11 offset 1690394.746489 sec
[root@centos66temp ~]#
[root@centos66temp ~]# date
Fri Jul 22 01:45:36 KST 2016
[root@centos66temp ~]# 

▶ NTP 서비스를 통한 시간 동기화 ( 테스트를 위해 iptables 방화벽을 내리거나 방화벽 정책에 추가해줘야 함, 이 테스트는 시간이 좀 걸립니다.)

[root@centos66temp ~]# date -u 07080900
Fri Jul  8 09:00:00 UTC 2016
[root@centos66temp ~]#
[root@centos66temp ~]# service ntpd start
Starting ntpd:                                             [  OK  ]
[root@centos66temp ~]# date
Fri Jul 22 07:36:22 KST 2016
You have new mail in /var/spool/mail/root
[root@centos66temp ~]# 

전산실 내부에 구축된 NTP 서버와 시간을 동기화하기 위해 ntpdate 명령을 cron에 등록하거나 위와 같이 NTP 클라이언트를 구성할 수 있습니다.

■ CentOS 6.6 리눅스에 NTP 서비스를 위한 방화벽 정책 구성

NTP 서비스는 UDP 통신 프로토콜 123번 포트를 사용합니다. 이를 허용하기 위해 iptables에  내용을 추가해줘야 합니다.

▶ NTP 서버

[root@dhcpntp ~]# vi  /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p udp --dport 123 -m state --state NEW -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

▶ NTP 클라이언트

[root@dhcpntp ~]# vi  /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A OUTPUT -p udp --dport 123 -m state --state NEW -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

▶ iptables 방화벽 재시작

[root@dhcpntp ~]# service itpables restart

여기까지 NTP 서버/클라이언트 간단 구성에 대해 알아보았습니다. 다음 게시물에서는 NFS 서비스에 대해 알아보도록 하겠습니다.






No comments:

Post a Comment