Linux

CH.4 서버를 구축하는 데 알아야 할 필수 개념과 명령-4

낑깡꺙냥 2024. 3. 26. 10:08

4.5 네트워크 관련 설정과 명령어

네트워크 관련 필수 개념

TCP/IP

컴퓨터끼리 네트워크상으로 의사소통하는 약속을 '프로토콜'이라고 부르는데, 그중 가장 널리 사용되는 프로토콜의 한 종류 중 하나다.

통신의 전송/수신을 담당하는 TCP와 데이터 통신으로 다루는 IP로 구성된다.

 

호스트 이름과 도메인 이름

호스트 이름은 각각의 컴퓨터에 저장된 이름을 말한다.

도메인 이름(또는 도메인 주소)은 naver.com과 같은 형식으로 표기한다.

도메인은 유일 재산, 호스트는 다수 존재

FQDN: 모든 양식을 충족한 도메인

 

IP 주소

각 컴퓨터의 랜 카드에 부여되며 중복되지 않는 유일한 주소다.

4바이트로 이루어져 있으며 각 자리는 0~255까지의 숫자가 올 수 있다.

 

네트워크 주소

같은 네트워크에 속해 있는 공통 주소다.

 

브로드캐스트 주소

내부 네트워크의 모든 컴퓨터가 수신하는 주소를 말한다.

현재 주소의 제일 끝자리를 255로 바꾼 주소다.(C클래스의 경우)

 

게이트웨이

내부 네트워크를 외부로 연결하기 위한 컴퓨터 또는 장비이다.

인터넷을 사용하기 위해서는 반드시 게이트웨이의 주소를 알아야 한다.

 

넷마스크와 클래스

클래스 -> CIDR

넷마스크는 네트워크의 규모를 결정한다.

사설 네트워크에서 C클래스를 사용하는 경우 넷마스크는 255.255.255.0으로 한다.

 

DNS 서버 주소

인터넷 사용 시 URL을 해당 컴퓨터의 IP 주소로 변환해주는 서버 컴퓨터를 말한다.

설정 파일은 /etc/resolv.conf며, 내용 중애 'nameserver DNS서버IP'형식으로 설정되어 있다.

*DHCP 서버: 자동으로 IP를 할당해주는 서버

 

리눅스에서의 네트워크 장치 이름

랜 카드가 리눅스에 장착되었을 때 CentOS 8을 설치하면 자동으로 이 장치의 이름을 ens160으로 인식한다.

  • ifconfig ens160 -> 네트워크 설정 정보 출력
  • ifup ens160 -> 네트워크 장치 가동
  • ifdown ens160 -> 네트워크 장치 정지

중요한 네트워크 관련 명령어 (주로 nmcli 명령어로 대체)

  • nmtui
    • 자동 IP 주소 또는 고정 IP 주소 사용 설정
    • IP 주소, 서브넷 마스크, 게이트웨이 정보 입력
    • DNS 정보 입력
    • 네트워크 카드 드라이버 설정
    • 네트워크 장치 설정
  • systemctl start/stop/restart/status NetworkManager
    • 네트워크 설정을 면경한 후 변경된 내용을 시스템에 적용시키는 명령어
    • nmtui 명령을 실행한 후 또는 직접 ifcnf-ens160 파일을 편집한 후에는 꼭 systemctl restart NetworkManager 명령을 실행해야 한다.
  • ifup 장치이름
    • 해당 장치를 작동시키는 명령어
  • ifdown 장치이름
    • 해당 장치를 끄는 명령어
  • ifconfig 장치이름
    • 해당 장치의 IP 주소와 관련된 정보를 출력하는 명령어
  • nslookup
    • DNS 서버의 작동을 테스트하는 명령어
    • > server 명령을 입력해서 나오는 결과가 현재 server에 설정된 DNS 서버 주소이다.
  • ping IP주소 또는 URL
    • 해당 컴퓨터가 네트워크상에서 응답하는지 테스트하는 간편한 명령어

네트워크 설정과 관련된 주요 파일

nmtui 명령을 사용하지 않아도 아래 4개의 파일을 직접 수정하면 동일한 효과를 낼 수 있다.

  • /etc/sysconfig/network 
    • 네트워크의 기본 정보가 설정되어 있는 파일이며 네트워크 사용 여부가 써 있다.
  • /etc/sysconfig/network-scripts/ifcnf-ens160
    • ens160 장치에 설정된 네트워크 정보가 모두 들어 있는 파일이다.
  • /etc/resolv.conf
    • DNS 서버의 정보와 호스트 이름이 들어 있는 파일이다.
    • vi /etc/resolv.conf 명령을 입력해 resolv.conf 파일에 DNS 서버를 추가로 입력해도 systemctl restart NetworkManager을 실행하면 다시 ifcfg-ens160 파일에 설정된 내용으로 변경된다. 따라서 영구적으로 DNS 설정을 변경하고 싶다면 nmtui 명령으로 DNS를 변경하거나 직접 ifcfg-ens160 파일을 편집해야 한다.
  • /etc/hosts
    • 현재 컴퓨터의 호스트 이름과 FQDN이 들어 있는 파일이다.

네트워크 보안을 위한 SELinux

SELinux는 보안에 취약한 리눅스를 보호하기 위해 탄생했다. 시스템에서 보안에 영향을 미치는 서비스, 권한 등을 제어할 수 있다.

SELinux의 사용 여부는 강제, 허용, 비활성이라는 3가지 레벨 중 선택할 수 있으며, 설정 파일은 /etc/sysconfig/selinux 파일이다. CentOS 8을 설치하면 강제로 기본 설정되어 있다.

/etc/sysconfig/selinux를 직접 편집하지 않고 system-confih-selinux 명령을 실행하여 설정할 수도 있다.

  • 강제: 시스템 보안에 영향을 미치는 기능이 감지되면 아예 그기능이 작동되지 않도록 시스템에서 막는다.
  • 허용: 시스템 보안에 영향을 미치는 기능이 감지되면 허용은 하되 사용 내용이 로그에 남고 화면상에도 출력된다.
  • 비활성: SELinux을 사용하지 않는 것으로 보안에 취약해진다.

연구과제

1. Server B를 초기화하시오.

2. 여러 종류 중 하나를 골라 원격 서버를 구축하고 상대방의 이니셜로 접속할 수 있도록 하시오.
(SSH는 키 교환을 하시오.)

3. 상대방의 호스트에 접속한 상태에서 해당 컴퓨터에 다음 작업을 등록하시오. 매일 05시 50분에 /var 디렉터리를 /various/backup-현재월.현재날짜.tar.gz로 압축하여 보관하려고 한다. 해당 작업이 자동으로 이루어질 수 있도록 cron을 작성하시오.

4. 동료 서버의 DNS 서버를 알고 있는 임의의 주소로 변경하시오. 인터넷이 되는지 확인하시오.

5. 상대방 호스트에서 작업하되, mc 패키지를 해당 로컬 컴퓨터에 복사하여(디스크로부터) 반드시 dnf가 아닌 rpm 명령어로 설치하시오.(미리 동료가 디스크를 마운트할 수 있도록 디스크를 삽입해 놓으시오.) 마운트 포인트는 임의의 경로로 설정하시오. -> 혹시 설치 시 오류가 발생한 경우 해결해 보시오.

mkdir /various
vi /etc/crontab

#######################vi 편집############################
05 50 * * * root run-parts /etc/cron.daily 
cd /etc/cron.daily
vi date.sh
#######################vi 편집############################

#######################vi 편집############################
#!/bin/bash

set $(date)
fname="backup-$2$3tar.gz"

tar cfz /various/$fname /var
#######################vi 편집############################

chmod 755 date.sh
date 03280549.45  #3월 28일 5시 49분 45초
systemctl restart crond

vi /etc/resolv.conf
#######################vi 편집############################
nameserver 8.8.8.8
#######################vi 편집############################

mkdir /cdmount
mount /dev/cdrom /cdmount
cp /cdmount/AppStream/Package/m/mc-[tab]
rpm -Uvh mc-[tab]

dnf -y install mc-[tab]