티스토리 뷰
리눅스에서 시간을 동기화하는 방법에는 rdate 를 이용한 방법과 ntp 를 이용한 방법이 있다.
여기서는 ntp 서버설정하는 방법에 대해서 설명하도록 하겠습니다.
NTP 서비스는 세계 여러나라의 타임서버에 주기적으로 접속하여 해당서버의 시스템 시간을 맞춰주는 네트워크 타임 프로토콜 서비스로 시스템의 정확한 시간을 동기화시켜주는 서비스이다.
왠만한 리눅스에서는 기본적으로 배포되어있다.
기본적으로, ntp 방식은 staum 이라는 계층구조를 가지는데, straum 0 은 GPS 나 세슘 원자 시계등 시간을 구하는 장비를 의미하며, straum 1 은 GPS 나 세슘 원자시계등에서 직접 시간을 동기화하는 서브들을 의미한다. straum 2 부터는 계속 트리 구조로 내려가게 된다.
여기서 straum 을 설명하는 이유는, 무턱대고 무조건 straum 1 에 동기화를 한다면, 이 straum 1 서버들은 부하를 견디지 못할 것이고, 그렇다면 서비스를 포기하는 현상이 발생할 수 있게된다. 또한, 이렇게 사용하는 것은 ntp 설계 의미를 무시하는 일이기도 하다.
그래서, 보통 사용하는 환경은 straum 2 에서 동기화를 하고, 이 동기화를 받은 straum 3 서버에 나머지 같이 운영하는 서버들을 peer로 해서 동기화를 시키면 된다. ntp protocol 을 이용했을 경우, straum 1 ~ 15 까지의 편차가 micro seconds 이므로, 굳이 straum 1 이나 2 를 고집할 이유가 전혀 없다고 봐도 무방하다.
ntp-4.2.4p2-3.fc7
그러면 서버 표준시각 유지가 왜 필요할지에 대해서 생각해보면....
처음 맞춰둔 시간이 별다른 문제없이 그대로 유지된다면 모르겠으나 실제로는 그렇지 못하고 있다. 따라서 시스템의 설정변경 및 로그를 보기 위해서는 정확한 시간이 필요로 하기에 타임서버를 통한 동기화 작업은 필히 필요한 부분이다.
또한 메일과 DNS 와 같은 서비스들 정확한 시간은 필수적이며 네트워크 공유를 위한 파일시스템들은 표준시간을 유지하는데 필수적인 부분이다.
먼저 CMOS RTC (Real Time Clock) 을 현재 시각으로 변경한다.
주기적으로 일치시켜주기 위해 cron 에 등록
/sbin/clock -w
[root@localhost ~]# chmod 755 time_sync # 실행권한 부여
시스템 설정파일은 /etc/ntp.conf 로 해당파일에 아래의 타임서버 등록
현재 국내에서 운영중인 타임서버
server time.nist.gov
server time.kriss.re.kr
server time.bora.net
server ntp.ewha.net
ntp 데몬 실행
※ 시스템 재시작혹은 데몬 시작이후에는 약 5분정도가 지난후에 반영됩니다.
시간정보 업데이트 여부 확인
remote refid st t when poll reach delay offset jitter
==============================================================================
*115.139.9.150 .GPS. 1 u 54 64 377 6.811 -0.403 0.212
rafi.inha.ac.kr 115.139.9.150 2 u 35 64 377 6.454 0.266 0.339
+165.194.104.130 210.98.16.100 2 u 29 64 377 37.017 -2.868 66.991
remote : sync 를 하는 straum 2 서버주소
refld : 각 straum 2 서버가 현재 sync 를 하고 있는 straum 1 서버를 보여줌
st : 각 라인의 remote 들의 straum 을 나타냄
* 표시 : 실질적으로 선택되서 동기화 되고있는 서버
+ 표시 : ntp 알고리즘에 의해 접속은 가능하지만 sync 를 하고 있지는 않음(일종의 대기상태)
- 표시 : ntp 알고리즘에 의해 접속은 가능하지만 sync 가능 리스트에서 제외
blank 표시 : 접속이 불가능
※ 복수의 타임서버를 넣게 되면 타임서버로의 접속이 불가능하거나 시각이 틀린경우에도 안정적인 표준시각을 제공받을수 있습니다.
reach = reachability
delay = delay
disp = dispersion
reach 값은 타임서버에 완전히 접속하기 위한 8진수로 377이어야 합니다.
또한 delay 값은 양의 수여야 하며 가능한 작은 값이어야 합니다.
disp 값은 서버중 적어도 하나는 1000ms(1초) 미만이어야 하며 서버중 적어도 한개는 반드시 서버명 앞에 * 표시가 되어야 합니다.
ntp 서버를 이용한 클라이언트 서버 동기화
31 May 12:35:59 ntpdate[26304]: step time server xxx.xx.xx.xxx offset 5.120165 sec
# offset 5.120165 sec은 타임서버의 시간과 로컬서버와의 시간 차이를 나타냅니다.
윈도우즈 타임동기화가 간혈적으로 잘 되지 않는 문제
/etc/ntp.conf
disable monitor restrict default nomodify noquery server 127.127.1.0 fudge 127.127.1.0 stratum 10 driftfile /etc/ntp/drift |
보안설정 (딱히 없어서 허용할 대역 외에는 해당 동기화 포트 차단)
-A INPUT -s "오픈할아이피(대역)" -p tcp --dport 37 -j ACCEPT -A INPUT -s "오픈할아이피(대역)" -p udp --dport 37 -j ACCEPT -A INPUT -p tcp --dport 37 -j LOG -A INPUT -p udp --dport 123 -j LOG -A INPUT -p udp --dport 123 -j DROP -A INPUT -p tcp --dport 37 -j DROP |
'Linux' 카테고리의 다른 글
MON tools 설치 (0) | 2015.06.04 |
---|---|
rsync 동기화 설정 (0) | 2015.06.04 |
error getting update info: Cannot retrieve repository metadata (0) | 2015.06.04 |
You have new mail in /var/spool/mail/root (0) | 2015.06.04 |
리눅스 마운트 mount 관련 및 파티션명 변경 (0) | 2015.06.04 |
- Total
- Today
- Yesterday
- kvm
- L2TP
- 베이어다이나믹
- IPSEC
- virtualbox
- ssh
- glusterfs
- Apache
- WAF
- yum
- 리눅스
- mod_security
- centos8
- iptables
- php
- NGINX
- 인증서
- galera
- OpenVPN
- ntp
- HAProxy
- SSL
- GeoIP
- mariadb
- centOS7
- cURL
- pptp
- softether
- MySQL
- gitlab
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |