24일차는
- 리눅스 미니프로젝트 토폴로지와
- DNS 서버 구축을 실습하였다.
1. 개요
- DNS, Web(https), DB, 게시판(wordpress)
- 총 3개의 가상머신 설정 : DNS 서버, WEB 서버, DB 서버
- 각각 가상 머신 생성해서 Hostname, IP 주소 설정 ((NAT, Host only 둘 다 설정)
역할 | DNS 서버 | WEB 서버 | DB 서버 |
---|
FQDN (서버이름, 도메인네임) | ns.jklim.local | web.jklim.local | db.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 환경설정 파일 변경
- ipv4, ipv6 활성화, 요청 / 응답 (etc/named.conf 외)
- /etc/named.conf
- /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) 실습 - 정방향
- sudo yum install bind bind-utils (서비스의 이름은 named) : 패키지 설치
- /etc/named.conf 설정 변경
- /etc/named,rfc1912.zones 설정 변경 → 정방향 / 역방향에 대한 zone 파일 추가
- 도메인 네임 - zone파일 연결 → named.empty를 복사해서 생성하기
- 정방향 : /var/named/jklim.local.zone 파일 생성 / 수정
- 역방향 : /var/named/10.0.2.0.zone 파일 생성 / 수정
- sudo named-checkconf : 에러 확인
- named-checkzone jklim.local /var/named/jklim.local.zone : zone 파일에 대한 에러 확인
[root@ns named]
ipv4.dns: 8.8.8.8
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
- nmcli con modify enp0s3 ipv4.dns 127.0.0.1,8.8.8.8 (저장된 정보만 갱신)
- nmcli con up enp0s3 (현재 메모리에 올라가 있는 정보를 갱신하기 위함)

- systemctl start named.service / systemctl enable named.service
- [root@ns named]# chown :named *.zone : zone 파일의 소유그룹을 named로 변경
- systemctl restart named.service : 서비스 재시작

- 방화벽 설정
[root@ns named]
success
[root@ns named]
success
[root@ns named]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client dns ssh
(4) 실습 - 역방향
- /etc/named.rfc1912.zones → 역방향 주석 처리 해제
- 역방향 zone 파일 레코드 추가

- 데몬 재시작
- named-checkconf : 설정 파일 확인
- named-checkzone 2.0.10.in-addr.arpa /var/named/10.0.2.0.zone : zone 설정 파일 확인
(5) Web, DB 서버에서 확인
- sudo yum install bind-utils
- sudo nmcli con mod enp0s3 ipv4.dns 10.0.2.10 : IP 설정 정보에서 dns 설정 정보는 내부의 DNS 서버 (10.0.2.10)로 변경
- sudo nmcli con up enp0s3
- 테스트
