26일차

장민우·2024년 5월 2일

네트워크 관리


호스트네임

  • Transient Hostname : Kernel이 관리하는 Hostname
  • Static Hostname : 관리자가 직접 지정한 Hostname
    • Pretty Hostname : Unicode(UTF-8) Encoding 방식으로 Hostname 지정

호스트네임 확인

$ hostname
$ hostnamectl status

호스트네임 구성 파일 : /etc/hostname

호스트네임 설정

  • Transient Hostname 설정
    $ hostname HOSTNAME
    재부팅시 원래 설정값으로 돌아감.

  • Static Hostname 설정
    $ hostnamectl set-hostname HOSTNAME

  • Static Hostname 제거
    $ hostnamectl set-hostname ""

OpenSSH


  • SSH(Secure SHell)
    원격접속 프로토콜 중 하나로 통신 구간을 암호화 하는 원격 접속 프로토콜

  • 암호화
    • 대칭키 암호화(Symmetric Cryptography)
      암호화와 복호화할 때 동일한 키를 사용하는 암호화 방식

    • 비대칭키 암호화(Asymmetric Cryptography)
      암호화와 복호화할 때 서로 다른 키를 사용하는 암호화 방식

    • 키페어(keypair)
      공개키(Public Key) : 다른 사람에게 공개하는 키
      개인키(Private Key) : 다른 사람에게 공개하지 않는 키
      공개키로 암호화 -> 개인키로 복호화
      개인키로 암호화 -> 공개키로 복호화
파일 이름설명
moduliDiffie-Hellman 알고리즘에 사용되는 파라미터가 포함되어 있음
ssh_configOpenSSH 클라이언트 설정에 필요한 파일
sshd_configOpenSSH 서버 설정에 필요한 파일
sshdhost*_key*대신 암호화 알고리즘 이름으로 대체
해당 알고리즘의 개인키
sshdhost*_key.pub*대신 암호화 알고리즘 이름으로 대체
해당 알고리즘의 공개키
  • SSH 접속 방법
    $ ssh [OPTION].. HOST
    $ ssh [OPTION].. USER@HOST

  • 원격 호스트에서 SSH 접속 후 명령어 1회 실행
    $ ssh USER@HOST COMMAND

OpenSSH의 구성 파일

$ ls /etc/ssh/

/etc/ssh/sshd_config 파일 - OpenSSH 서버의 설정을 다루는 파일

  • $vim sshds_config


  • 기본 연결 설정

    • #Port : SSH에서 사용할 포트 (기본 22번포트)
    • #ListenAddress 0.0.0.0 : sshd 서비스가 대기할 주소. '0.0.0.0'은 모든 주소에 대해서 대기한다는 의미.
  • 로그 관련 설정

    • #SyslogFacility AUTH : 로그 파일 생성 시에 해당 로그 파일의 종류를 지정.
    • #LogLevel INFO : 로그 파일 생성 시 로그의 우선순위를 지정.
  • 인증 관련 설정

    • #PermitRootLogin prohibit-password
      yes : SSH로 root 직접 로그인 허용
      no : SSH로 root 직접 로그인 차단SSH로 root 직접 로그인 허용
      without-password (prohibit-password) : root 사용자의 직접 로그인을 키 기반 인증 방식으로만 허용 (패스워드 인증 방식 사용 불가)

      (실습할 때 /etc/ssh/sshd_config.d/ 밑에 01-permitrootlogin.conf 파일을 삭제하고 했음.)

    • #PasswordAuthentication yes
      yes : 모든 사용자에 대해 SSH로 키기반 인증 방식, 패스워드 인증 방식 둘다 허용
      no : 모든 사용자에 대해 SSH로 키기반 인증 방식만 허용
  • SSH 키 기반 인증
    사용자의 SSH 공개키를 배포한 후 패스워드 대신 키 기반으로 인증하는 SSH 인증 방식
  1. 사용자의 SSH 키페어 생성(ssh-keygen)
    $ ssh-keygen

  2. SSH 키기반 인증을 위해 사용자의 SSH 공개키를 배포
    $ssh-copy-id USER@HOST

SSH 기반 파일 복사

  • 로컬의 파일을 원격 Host에 복사
    $ scp FILE_PATH USER@HOST:/REMOTE/PATH/

  • 원격 Host의 파일을 로컬에 복사
    $ scp USER@HOST:/REMOTE/FILE LOCAL_PATH

  • 로컬의 디렉터리를 원격 Host에 복사
    $ scp -r DIR_PATH USER@HOST:/REMOTE/PATH/

  • 원격 Host의 디렉터리를 로컬에 복사
    $ scp -r USER@HOST:/REMOTE/DIR LOCAL_PATH


NTP(chrony)


NTP(Network Time Protocol)

  • 네트워크를 통해 컴퓨터의 시간을 동기화하기 위한 프로토콜

chrony

  • RHEL7 부터 Redhat 계열 리눅스 배포판에 탑재된 시간동기화 소프트웨어
  • chrony는 클라이언트와 서비스 데몬으로 구성됨

Chrony 설정 파일 : /etc/chrony.conf


NTP계층 구조

NTP 계층설명
Stratum 0NTP의 가장 최상위 계층으로 Primary Reference Clock이라고 함. 원자시계, GPS
Stratum 1에 정확한 시간 정보를 제공하는 용도로 사용함.
Stratum 1Stratum 0으로부터 시간정보를 수신하고 동기화 함.
일반 클라이언트가 요청할 수 있는 최상위의 NTP 서버
일반적으로 Stratum 2에 정확한 시간 정보를 제공함.
Stratum 2Stratum 1으로부터 시간정보를 수신하고 동기화 함.
일반적인 시간 동기화 요청에 응답하는 계층
Stratum n각각 자신보다 상위 단계의 계층 서버로부터 시간을 동기화 함. 계층이 낮을수록 시간 정확도는 떨어질 수 있음.

  • Chrony 주요 설정 내용 /etc/chrony.conf

# NTP Server Pool 지정
pool 2.rocky.pool.ntp.org iburst

# NTP Server 지정
server NTP_SERVER iburst

iburst : 짧은 주기로 시간 동기화

# 시스템 클락 오차를 저장하는 drift file 경로 지정
driftfile /var/lib/chrony/drift

# 시간 교정 간격 지정
makestep 1.0 3

# Kernel이 RTC에 시스템 시간 동기화
rtcsync

# NTP 프로토콜 인증에 필요한 키 파일
keyfile /etc/chrony.keys

# chrony 로그 저장 경로
logdir /var/log/chrony

Chronyc 주요 명령어

  • 동기화 시간 정보 확인

$ chronyc tracking

시간 정보내용
Reference ID시간 동기화 된 서버의 주소
Stratum현재 시스템까지의 Stratum 계층 수
Ref TimeUTC 기준의 시간 정보 표시
System timeNTP와 시스템간 오차
Update Interval업데이트 주기

  • $ chronyc sources -v

    M - Source Mode
    S - Source State
    Name/IP address - NTP Server Host
    Stratum : Stratum level
    Poll : NTP Poll 주기
    Reach : 전송에 대한 유효한 응답 횟수
    LastRx : 마지막 샘플 수신 시간
    LastSample : 마지막 측정시 오차

  • 시간을 수동으로 설정하는 명령어

시간 확인
$ date

시간 설정
$ date --set "YYYY-mm-dd HH:MM"

시간 정보 확인
$ timedatectl status

시간 설정
$ timedatectl set-time "YYYY-mm-dd HH:MM:SS"

Timezone 목록
$ timedatectl list-timezones

Timezone 설정
$ timedatectl set-timezone 대륙/도시

NTP를 사용하여 시간 동기화 설정
$ timedatectl set-ntp true

NTP를 사용하여 시간 동기화 설정 해제
$ timedatectl set-ntp false

0개의 댓글