24일차 - 리눅스 (미니프로젝트1-DNS서버)

Jk Lim·2023년 5월 15일
0

MLOps 부트캠프

목록 보기
23/34

24일차는

  1. 리눅스 미니프로젝트 토폴로지와
  2. DNS 서버 구축을 실습하였다.

1. 개요

  • DNS, Web(https), DB, 게시판(wordpress)
  • 총 3개의 가상머신 설정 : DNS 서버, WEB 서버, DB 서버
  • 각각 가상 머신 생성해서 Hostname, IP 주소 설정 ((NAT, Host only 둘 다 설정)
역할DNS 서버WEB 서버DB 서버
FQDN
(서버이름, 도메인네임)
ns.jklim.localweb.jklim.localdb.jklim.local
IP Address
(NAT Network)
10.0.2.10/24
GW) 10.0.2.1
10.0.2.20/24
GW) 10.0.2.1
10.0.2.30/24
GW) 10.0.2.1
IP Address
(Host Only)
192.168.56.110
(static)
192.168.56.111
(static)
192.168.56.112
(static)

(1) FQDN 설정

  • hostnamectl set-hostname ns.jklim.local
  • /etc/hosts > 192.168.56.110 ns … 모든 서버 추가

(2) IP Address - NAT

  • 우분투가 게이트웨이 역할
  • nmcli con add con-name enp0s3 type ethernet ifname enp0s3 ipv4.method manual ipv4.addresses 10.0.2.10/24 ipv4.gateway 10.0.2.1 ipv4.dns 8.8.8.8

(3) IP Address - Host Only

  • 게이트웨이 및 dns는 설정해주지 않음. 해당 대역은 폐쇄망 (막다른길)
  • nmcli con add con-name enp0s8 type ethernet ifname enp0s8 ipv4.method manual ipv4.addresses 192.168.56.110

2. DNS 서버

(1) 데몬 설정을 위한 과정

  • 각각의 서버에 필요한 패키지 설치 : yum, dnf (ubuntu apt)
    • yum repolist
    • yum search 패키지명
    • yum info 패키지명 (버전, 아키텍처)
    • yum install 패키지명
    • 설치 = disk 파일이 복사됨
    • rpm -qa 패키지명 일부
    • rpm -ql 패키지명 : 관련된 파일 전체 보기
    • rpm -qd 패키지명 : 문서 파일만 보기
    • rpm -qc 패키지명 : config 파일만 보기
  • 서비스에 대한 환경설정 파일을 구성 → /etc/데몬명/.conf → 변경사항이 있으면 변경
  • 해당 서비스의 데몬을 시작 / 부팅 시 자동 시작
    • systemctl start 데몬명
    • systemctl enable 데몬명
    • systemctl restart 데몬명
    • systemctl status 데몬명(서비스명)
  • 프로세스가 동작을 함. 프로세스를 확인 하기도 함.
    • ps -ef | grep 서비스명(프로세스명)
  • 데몬은 백그라운드에서 특정 포트를 열고 리스닝 대기를 함.
    • ss -antp | grep :포트번호 ( ex : ss -antp | grep :80)
  • 방화벽에서 해당 서비스 허용해주기 (port = 통신에 대한 목적)
    • firewall-cmd --all-lists
    • firewall-cmd --add-service=서비스프로토콜
    • HTTP : tcp80
    • HTTPS : tcp443
    • SSH : tcp 22
    • 서비스가 운영체제에 미리 기록되어있지 않으면 포트와 프로토콜 둘다 입력해야함
  • 서비스 테스트
    • localhost인 해당 시스템에서 test
    • 원격 시스템에서 test

(2) DNS Setting 개요

  • 패키지 설치 : bind(server용, ubuntu인 경우 bind9), bind-utils(client용)

  • config 환경설정 파일 변경

    1. ipv4, ipv6 활성화, 요청 / 응답 (etc/named.conf 외)
    2. /etc/named.conf
    3. /etc/named.rfc1912.zone : 도메인 네임과 zone파일(/var/named 의 연결)
    • zone 파일 구성 (이름 - IP 주소 목록이 있어야 함)
    • 이름에 대한 IP 주소 목록 : 정방향 영역
    • IP 주소에 대한 이름 목록 : 역방향 영역
  • 목록 (외부에서 접근하는 목적이므로 DB는 넣지 않음)

    • ns.jklim.local 10.0.2.10
    • web.jklim.local 10.0.2.20
    • ftp.jklim.local 10.0.2.40
    • mail.jklim.local 10.0.2.50
    • subnet 10.0.2.0/24 jklim.local
  • 정방향 영역 zone

    • 도메인 네임 : jklim.local
    • ns - 10.0.2.10
    • web - 10.0.2.20
    • 레코드를 등록함. NS는 네임서버를 뜻함, A (a host) 레코드를 사용하여 등록 cname (별명)
  • 역방햑 영역 zone

    • 서브넷 → 도메인 네임 10.0.2.0/24
    • 2.0.10in-addr.arpa
    • 10 ns.jklim.local
    • 20 web.jklim.local
    • 사용 레코드 : PTR
  • 데몬 시작 / 부팅시 자동 재시작

  • 방화벽에서 dns 서비스 추가

  • 로컬에서 ip 할당할 때, dns를 127.0.0.1, 8.8.8.8 정보 변경, FQDN 정보 확인

  • 원격 시스템에서 ip DNS 서버 정보 변경 10.0.2.10, FQDN test, nslookup, dig, ping 사용가능

  • DNS 관리자를 추가할 때는 보통 named 그룹과 wheel 그룹을 포함시킨 계정을 할당함

(3) 실습 - 정방향

  1. sudo yum install bind bind-utils (서비스의 이름은 named) : 패키지 설치
  2. /etc/named.conf 설정 변경
  3. /etc/named,rfc1912.zones 설정 변경 → 정방향 / 역방향에 대한 zone 파일 추가
  4. 도메인 네임 - zone파일 연결 → named.empty를 복사해서 생성하기
    1. 정방향 : /var/named/jklim.local.zone 파일 생성 / 수정
    2. 역방향 : /var/named/10.0.2.0.zone 파일 생성 / 수정
  5. sudo named-checkconf : 에러 확인
  6. named-checkzone jklim.local /var/named/jklim.local.zone : zone 파일에 대한 에러 확인
### 현재까지는 8.8.8.8로 되어있으므로 현재 dns 서버 정보를 추가해서 1차 2차로 구성
[root@ns named]# nmcli con show enp0s3 | grep ipv4.dns
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
  1. nmcli con modify enp0s3 ipv4.dns 127.0.0.1,8.8.8.8 (저장된 정보만 갱신)
  2. nmcli con up enp0s3 (현재 메모리에 올라가 있는 정보를 갱신하기 위함)
  3. systemctl start named.service / systemctl enable named.service
  4. [root@ns named]# chown :named *.zone : zone 파일의 소유그룹을 named로 변경
  5. systemctl restart named.service : 서비스 재시작
  6. 방화벽 설정
[root@ns named]# firewall-cmd --add-service=dns
success
[root@ns named]# firewall-cmd --add-service=dns --permanent
success
[root@ns named]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: dhcpv6-client dns ssh

(4) 실습 - 역방향

  1. /etc/named.rfc1912.zones → 역방향 주석 처리 해제
  2. 역방향 zone 파일 레코드 추가
  3. 데몬 재시작
  4. named-checkconf : 설정 파일 확인
  5. named-checkzone 2.0.10.in-addr.arpa /var/named/10.0.2.0.zone : zone 설정 파일 확인

(5) Web, DB 서버에서 확인

  1. sudo yum install bind-utils
  2. sudo nmcli con mod enp0s3 ipv4.dns 10.0.2.10 : IP 설정 정보에서 dns 설정 정보는 내부의 DNS 서버 (10.0.2.10)로 변경
  3. sudo nmcli con up enp0s3
  4. 테스트

0개의 댓글