NTP 설치 및 설정

NTP 설치 및 설정

NTP는 Network Time Protocol로, 네트워크 장비들의 시간을 동기화 시키기 위해서 Time Server와 장비들 간에 통신하는 프로토콜 입니다.

 

우리 컴퓨터에서 수집한 로그파일들을 중앙관제 서버에게 넘길 것! 방법은 2가지!

1) Agent를 설치해서 전달(SNMP)

2) Agent 없이 그냥 전달(Syslog)

 

[시간 동기화 목적]

=> 로그를 전송할 때, A,B,C가 보내는 로그의 시간이 일치해야 신뢰성이 있음

  • 백업이나 패치 등 예약한 작업들이 실행되지 않는 것을 방지
  • 로그에 대한 신뢰도 : 언제 어떤 작업을 했는지 보여주는 로그의 시간은 정확해야함
  • 보안·암호화 인증 프로토콜 과정시 timestamp 및 lifetime이 추가 : 이때 서버와 클라이언트의 시간이 일치하지 않으면 서비스 접근 차단

*SSL : 인증서 기반의 암호화 기술

 

<서버>

1단계. 프로그램설치

2단계. 환경설정

3단계. 방화벽 설정

4단계. 서비스활성화

*명령어를 통해 서비스 상태를 확인*

 

<클라이언트>

1단계. 프로그램설치

2단계. 환경설정(NTP Server가 누구인지 지정)

*명령어를 통해 서비스 상태를 확인*


1. (Ubuntu : SplunkServer) NTP Server 설치

0) 관리자로 들어가기

$ sudo su - root

1234

 

1) apt 업데이트 및 NTP 서버 설치

# apt update

# apt-get install -y ntp #NTP 서버 설치

# sntp --version #설치확인

 

2) 서버 프로그램 환경설정 - 가장 가까운 NTP Server pool로 전환

https://www.ntppool.org/ko/zone/kr

# ls /etc/ntp.conf

# nano /etc/ntp.conf #파일 수정, 기존 부분은 주석처리

Ctrl + O enter

Ctrl + X

 

3) 방화벽 구성

방화벽 활성화 # ufw enable

UDP 123 활성화 # ufw allow from any to any port 123 proto udp

방화벽 상태 확인 # ufw status

=> 두 번째 실습 진행 중이라 규칙이 존재한다고 출력됨

=> 원래는 "규칙이 추가되었습니다"가 출력

 

4) NTP 서버 활성화 

# service ntp restart

# service ntp status

 

5) 설정 확인 

# ntpq -p #현재 동기화중인 NTP 서버정보 출력

# date -R

# timedatectl #현재 날짜, 시간, 타임존, 타임서버와의 동기화 여부 확인


Stratum

- 시간을 전송하는 장비

=> 내가 Stratum3에 위치해 있다면, 바로 위에 있는 Stratum2에서 정보를 받아오고, Stratum2는 Stratum1에서 받아오고, Stratum1은 Atomic clocks에서 받아옴

=> 실제 내가 위치한 Stratum3와 Atomic coloks과 얼마만큼 떨어져 있는가를 표시하는 것을 Stratum

=> 위 사진에서 NTP server가 Stratum3이면, 밑에 있는 NTP Client는 Stratum4가 됨

 

* : 지금 동기화하고 있는 NTP Server IP

+ : 동기화가 가능한 second NTP Server IP

공백 : 접속이 불가능한 IP

st : Stratum

t : 시간을 받아들이는 방식(Unicast / Broadcast / Multicast)


2. (Ubuntu : ZeekIDS) NTP Client 설치

0) 관리자로 들어가기

$ sudo su - root

1234

 

1) apt 업데이트 및 NTP 설치

# apt update

# apt-get install -y ntp #NTP 서버 설치

# sntp --version #설치확인

 

2) 클라이언트 프로그램 환경설정 - NTP Server 주소설정

192.168.10.10 splunk-server 추가

# ls /etc/hosts

# nano /etc/hosts #파일 수정, 기존 부분은 주석처리

 

3) NTP Server로부터 시간 동기화 시작

# ntpdate splunk-server

처음 실행 시
두번째 실행시

=> 두 번째 실습 진행 중이라 이미 존재한다고 출력됨

 

4) 설정 확인 

# date

# date -R

# timedatectl #현재 날짜, 시간, 타임존, 타임서버와의 동기화 여부 확인


3. (Cent OS 7 : WebServer) NTP Client 설치

chrony

- Redhat 계열 리눅스 기본 시간 동기화 프로그램

- 설정파일에 해당 지역의 NTP 서버등록

- chrony 재시작 : 시간 동기화 적용 확인, NTP 서버동작 확인

 

0) 관리자로 들어가기

$ su - root

1234

 

1) NTP 프로그램(chrony) 설치 확인

# rpm -qa | grep chrony

 

2) 클라이언트 프로그램 환경설정 - NTP Server 지정

# gedit /etc/hosts

# gedit /etc/chrony.conf

gedit /etc/hosts
gedit /etc/chrony.conf

=> 원본코드 주석처리 후 새로운 코드 추가

 

3) chronyd 서비스 활성화 및 상태확인

# systemctl restart chronyd

# systemctl status chronyd

 

4) 설정 확인

# chronyc sources -v

# timedatectl

 


4. (Windows10 : Sysmon) NTP Client 설치

1) 메모장을 관리자 권한으로 실행합니다.

 

2) C:\Windows\System32\drivers\etc\hosts 파일을 열어 수정합니다.

192.168.10.10 splunk-server 추가

 

3) "설정 - 시간 및 언어 - 날짜 및 시간 - 다른 시간대에 대한 시계 추가 - 인터넷 시간 - 설정 변경"을 클릭하고 인터넷 시간 및 설정을 splunk-server로 설정합니다.

 

4) 동기화 상태를 확인합니다.

> w32tm /query /status

> w32tm /dumpreg /subkey:parameters