[SK shieldus Rookies 16기][클라우드기반 시스템 운영 및 구축] NTP 서버와 클라이언트 동기화 실습

Jina·2024년 1월 4일
0

SK shieldus Rookies 16기

목록 보기
49/59
post-custom-banner

이전 시간에 실습환경구성을 마쳤다.

1. NTP(Network Time Protocol)

1.1. 정의

1.2. 시간 동기화 목적

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

1.3. Stratum

  • 세계 표준 시간 Atomic clocks에서 얼마나 멀리 떨어져있는지를 나타내는 것.
  • 시간을 전송해주는 서버

2. 설치

1단계. 프로그램 설치
2단계. 환경설정 - /etc
3단계. 방화벽 설정
4단계. 서비스 활성화
5단계. 서비스 상태확인

2.1. Server - SplunkServer(Ubuntu)

  1. 리포지토리 인덱스 업데이트 및 NTP서버 설치
$ apt update
$ apt-get install -y ntp
$ sntp --version

  1. 가장 가까운 NTP server pool로 전환
    https://www.ntppool.org/zone/kr
    기존에 있는 설정은 주석처리 후 임의 서버들로 지정

  1. NTP 서버 재시작 및 실행상태 확인
$ service ntp restart
$ service ntp status

  1. 클라이언트가 NTP 서버에 접근할 수 있도록 방화벽 구성
$ ufw allow from any to any port 123 proto udp
$ ufw enable
$ ufw status

ufw에서 중복된 규칙 삭제하는 방법

# 규칙에 번호 확인하기
$ ufw status numbered
# ufw delete 삭제하려는 규칙 번호
$ ufw delete 4
  1. 현재 동기화중인 NTP 서버정보 확인
$ ntpq -p

  • remote
    • * : 지금 동기화하고 있는 NTP 서버 IP
    • + : 동기화가 가능한 Second NTP 서버 IP
    • 공백 또는 - : 접속이 불가한 IP
  • refi
  • st: 스트라텀(Stratum)
  • t: 시간을 받아들이는 방식(Unicast / Broadcast / Multicast 3가지 방식이 존재함)

현재 내 SplunkServer에서 동기화 하고 있는 서버 IP는
185.125.190.58 인 것을 확인할 수 있다. 만약 이 서버에 문제가 생기면 + 표시가 되어 있는184.125.190.56 이나 alphyn.canonica 서버가 대신 동기화를 수행하게 된다.

# 현재 시스템의 날짜와 시간을 RFC 2822 형식으로 출력
$ date -R

# 현재 날짜, 시간, 타임존, 타임 서버와의 동기화 여부를 모두 출력 
$ timedatectl

2.2. Client - ZeekIDS(Ubuntu)

  1. ntpdate 설치 및 리눅스 시간을 timeserver와 동기화하기
$ apt-get install ntpdate

  1. 호스트 파일에 NTP 서버 IP 및 호스트 이름 지정

  1. NTP 서버와 시간을 동기화하기
$ ntpdate splunk-server

  1. systemd timesyncd 서비스 활성화
# 시스템 시간(리눅스 커널 시간이나 소프트웨어 시간) 동기화 활성화
$ timedatectl set-ntp true
  1. 동기화된 시간 확인
# 현재 시스템의 날짜와 시간을 RFC 2822 형식으로 출력
$ date -R

# 현재 날짜, 시간, 타임존, 타임 서버와의 동기화 여부를 모두 출력 
$ timedatectl

2.3. Client - WebServer(CentOS)

CentOS는 chrony가 기본적으로 설치되어 있기 때문에 ntp를 설치하지 않아도 된다.

chrony란?

  • 레드햇 계열의 리눅스 기본 시간 동기화 프로그램
  • 레드햇 엔터프라이즈 리눅스 8부터 기본 시간 동기화 프로그램으로 채택
  • CentOS 8 chrony 를 기본 시간 동기화 프로그램으로 사용
  • Chrony는 기본설치가 되어 있어서 CentOS 8에서 별도 설치하지 않고 사용 가능

chrony 설치 확인 명령어

# RPM 패키지 데이터베이스에서 chrony 패키지 검색
$ rpm -qa | grep chrony

chrony 사용법

  • 설정 파일에서 해당 지역의 NTP 서버 등록
  • chrony 서비스 재시작
  • 시간 동기화 적용 확인 및 NTP 서버 동작 확인
  1. 호스트 파일에 NTP 호스트명 등록
# 관리자 모드
$ su

# hosts 파일 편집기로 열기
$ gedit /etc/hosts

  1. chrony 설정 파일에 NTP 서버 등록
$ gedit /etc/chrony.conf

  1. chronyd 서비스 활성화 상태 확인
# chronyd 재시작
$ systemctl restart chronyd

# chronyd 상태 확인
$ systemctl status chronyd

# chronyc 데몬 서비스로 현재 사용중인 NTP 소스 서버 상태 표시
$ chronyc sources -v

2.4. Client - Sysmon(Win10)

  1. 호스트 파일에 NTP 서버 호스트 등록
    CMD창을 관리자 권한으로 실행
$ cd C:\Windows\System32\drivers\etc
$ notepad hosts

  1. NTP 서버 시간과 동기화 시키기

  1. 동기화 상태 확인
$ w32tm /query /status

$ w32tm /dumpreg / subkey:parameters

profile
공부 기록
post-custom-banner

0개의 댓글