Information Security
26-1 NTP(Network Time Protocol) 본문
NTP(Network Time Protocol) 시간 동기화 프로토콜
-네트워크상에 분산된 NTP 서버들로부터 각종 컴퓨터, 서버, 네트워크 장비들의 시간을 동기화시켜주는 프로토콜
-NTP는 stratum이라는 계층 구조를 가진다.
Stratum 0 세슘 원자 시계, GPS, 표준 주파수 등을 이용하여 시간을 측정해주는 장비(Primary Reference Clock)
Stratum 1 0계층 장비와 직접 연결되어 시간을 동기화 시키는서버(Prirmary Time Server)
Stratum 2 트리 구조로 구성되어 Stratum 1계층의 시간 서버와 시간을 동기화한다.
우리나라의 NTP 서버 리스트
ntp.ehwa.or.kr 이대부속초등학교
time.bora.net LG U+
time.kornet.net KT
time.kriss.re.kr 한국표준과학연구원(KRISS)
NTP 서버 구축하기
Stratum 3 Server-A (NTP Server)
Stratum 4 Server-B, Client-Linux, Client-Win (NTP Client)
※ 통신이 가능하면 외부의 악의적 목적을 가진 사용자가 접근하여 서버에 피해를 줄 수도 있으므로
피해를 최소화하기 위하여 Server-A만 외부 NTP 서버(time.bora.net)와 통신을 할 수 있도록 구축한다.
Server-A에 NTP 패키지를 설치한다.
NTP 주 설정 파일 수정
-원래 있던 내용들은 모두 지워준다.(9999dd 사용)
-NTP 서버의 목록(NTP Server List)이라고 주석을 달아주고,
Server-A와 동기화하는 상위 계층(2계층) NTP 서버의 IP 주소 혹은 도메인 주소(time.bora.net)를 입력하고 저장한다.
ntp 데몬 활성화
부팅 시 ntp 데몬이 활성화되도록 설정
현재 상태
2계층 time.bora.net
|
3계층 Server-A
그리고 Server-B와 Client-Linux가 Server-A와 동기화할 수 있도록 설정한다.
#yum -y install ntp
#vi /etc/ntp.conf
Server-A로부터 동기화할 것이므로 Server-A의 IP 주소(100.100.100.110)를 입력한다.
#service ntpd start
#chkconfig ntpd on
=> 위의 사항들 Server-B, Client-Linux에 모두 적용
현재 상태
2계층 time.bora.net
|
3계층 Server-A
| |
4계층 Server-B Client-Linux
#ntpq -p ntp 서버 동작 확인
remote 해당 서버와 동기화하는 상위 NTP 서버의 IP 주소 혹은 도메인 주소
remote 필드 첫 부분의 문자
공백 접속 불가능
* 동기화 중인 상태
+ 연결 가능
-> 현재 *time.bora.net 이라고 표시되므로 동기화 중인 상태이다.
refid 해당 서버(Server-A)의 상위 NTP 서버(time.bora.net)의 상위 NTP 서버(1계층 NTP 서버)의 IP 혹은 도메인 주소
동기화가 성공하여 핸드폰 시간과 리눅스 시스템 시간이 완벽하게 일치하는 것을 확인하였다.
※ 동기화 시간이 오래 걸릴 경우 조치 방법
NTP 주 설정 파일을 수정한다.
server [도메인/IP주소] iburst
-iburst 옵션을 추가한 후 저장한다.
ntp 데몬 재시작
-현재 시스템의 시간이 NTP 서버와 차이가 많이 나서 동기화 시간이 길어질 경우 해당 옵션을 통하여 조정할 수 있다.
#rdate [NTP서버 IP/DOMAIN]
-ntp 서버의 시간 정보 확인
-p 지정한 NTP 서버의 시간 확인
-s 지정한 NTP 서버의 시간으로 현재 시스템의 시간을 동기화
rdate 패키지 설치
time.bora.net NTP 서버의 시간 확인
#clock
-CMOS 시간 관리 명령어(하드웨어에 설정하는 시간)
-w 리눅스 시스템 시간으로 CMOS 시간을 변경
-s CMOS 시간으로 리눅스 시스템 시간을 변경
※ 매일 정각마다 명령어를 이용하여 시스템 시간과 CMOS 시간을 동기화하는 예약 작업 설정하기
-시스템이 꺼져 있는 상태에서도 정확한 시간을 측정하고 부팅 시 해당 시간 정보를 이용하여 운영체제에 설정할 수 있도록 해야 한다.
(스크립트 이용 : /root/ntp.sh)
스크립트 작성
-NTP 서버 time.bora.net로부터 시간을 받아와 CMOS 시간 변경
-[명령어1] && [명령어2] 명령어1이 정상적으로 실행되면 명령어2를 실행
cron 데몬이 실행할 수 있도록 실행(x) 권한 부여
허가권 확인
cron 데몬 상태 확인
양식 파일 참고 후 설정
매일 정각마다 해당 스크립트 실행
★서버에서 정확한 시간이 중요한 이유★
1. 로그에 대한 신뢰도
-시스템 장애나 침해가 발생했을 때 가장 먼저 확인하는 파일이 로그 파일이다.
로그 파일에 작성된 시간이 틀리다면 언제 발생한 문제인지 파악할 수 없어 문제를 해결하지 못할 수 있다.
따라서 로그 파일은 언제 어떤 동작을 했는지 정확하게 기록되어야 한다.
2. 예약 작업의 실행 불가능한 상황 방지
-업무 시간 외에 백업, 스크립트 등의 예약 작업이 실행되어야 하는데, 시간이 정확하지 않으면 예약 작업이 잘못된 시간에 실행될 수도 있다.
3. 인증, 백업 시점 불일치 방지
-암호화 인증 관련 프로토콜로 통신을 할 때 현재 시스템의 시간 정보가 상대방에게 전달되는데,
이때 상대방의 시스템 시간과 데이터의 전송된 시간이 일치하지 않을 경우
상대방 컴퓨터가 해당 데이터는 오래되거나 잘못된 데이터로 판단하여 폐기할 수도 있다.(통신이 불가능하게 된다.)
'Linux' 카테고리의 다른 글
27 DNS 서버 구축 (0) | 2017.10.23 |
---|---|
26-2 DNS(Domain Name Server / System) (0) | 2017.10.20 |
25 DHCP(Dynamic Host Configuration Protocol) (0) | 2017.10.20 |
24-4 Bonding (0) | 2017.10.19 |
24-3 환경설정 (0) | 2017.10.19 |