Domain Name Server의 약자

도메인 이름을 ip로 변환해주는 역할

 

  • 마스터 DNS

1번 컴퓨터

# yum -y install httpd

# systemctl restart httpd

# systemctl enable httpd

# vim /var/www/html/index.html

<h1>Homepage</h1>

# systemctl stop firewalld

# setenforece 0

 

2번 컴퓨터

# yum -y install vsftpd

# systemctl restart vsftpd

# systemctl enable vsftpd

# systemctl stop firewalld

# setenforce 0

 

1번 컴퓨터

# yum -y install bind

# vim /etc/named.conf

listen-on port 53 { any; }; -> ipv4 53포트 아무나 가능

listen-on-v6 port 53 { none; }; -> ipv6 사용안함

allow-query { any; }; -> 아무나 가능

 

zone "domain.com" IN {

type master;

file "domain.zone";

allow-update { none; };

};

# named-checkconf -> named.conf 파일 문법 확인

# cd /var/named

# vim domain.zone(ex.sh.zone)

$TTL   3H -> Time to live, 질의 시 ip를 케시에 저장하는 시가 ㄴ설정

@        SOA     @     root. (오늘날짜 1D 1H 1W 1H) -> SOA : Start Of Authority 정책의 시작을 알림

            IN         NS   @ -> IN : Internet 약자, NS : nameserver @ : named.conf에 정의된 domain,  domain으로 대체 가능

            IN         A      ip -> A : ipv4, AAA : ipv6를 의미

www    IN         A      ip -> www.domain에 ip 할당

ftp        IN         A      ip -> ftp.domain에 ip 할당

# named-checkzone domain.com(ex.sh.com) domain.zone(ex.sh.zone) -> zone 파일 문법 확인

# vim /etc/resolv.conf 에서 nameserver를 방금 만든 서버로 변경 -> 127.0.0.1 또는 실제 ip

# vim /etc/sysconfig/network-scripts/ifcfg-ens32에 DNS 또한 변경하여 변경값을 고정

# systemctl restart network

# systemctl restart named

# nslookup

> www.domain.com

> ftp.domain.com

웹 브라우저에서 domain.com 을 입력해 index.html이 나오는지 확인

 

  • 라운드 로빈 DNS

# cd /var/named

# vim domain.zone(ex.sh.zone)

sh.zone

CNAME은 Canonical NAME의 약자(별칭) -> web을 참조

100, 200은 우선순위

같은 도메인에 여러 개의 ip를 정의
# named-checkzone sh.com sh.zone -> zone 파일 문법 확인

# systemctl restart named

다른 ip에서도 웹 서버 구축

웹 브라우저에서 도메인으로 접속

 

  • 마스터-슬레이브 DNS

master PC에서

# vim /etc/named.conf

named.conf

allow-transfer {slave ip;}; 추가

# named-checkconf -> 문법 확인

# systemctl restart named

# vim /var/named/domain.zone(ex.sh.zone)

sh.zone

@   IN   NS   ns2.domain

ns2 IN   A      slave ip           추가

# named-checkzone sh.com sh.zone

# systemctl restart named

 

slave PC에서

# yum -y install bind bind-utils bind-libs bind-chroot

# vim /etc/named.conf

listen-on port 53 { any; };

listen-on-v6 port 53 { none; };

allow-query { any; };

 

zone "domain.com" IN {

type slave;

file "slaves/domain.zone"; -> zone파일 저장 경로

masters {master ip;};

};

# named-checkconf

# systemctl restart named

# cd /var/named

# cat slaves/domain.zone 하면 암호화되어 넘어온 것을 확인 가능

# vim /etc/named.conf 로 가서 암호화 설정을 풀기

allow-query 아래에 masterfile-format text; 추가

# systemctl restart named

# cat slaves/domain.zone 으로 다시 확인

 

  • zone 파일 암호화

# mkdir /var/named/keys

# cd /var/named/keys

# dnssec-keygen -a NSEC3RSASHA1 -r /dev/urandom -b 1024 -n ZONE sh.com.

# dnssec-keygen -a NSEC3RSASHA1 -r /dev/urandom -b 1024 -n ZONE -f KSK sh.com.

# ls로 키 만들어진거 확인(4개 : 공개키 2개, 개인키 2개)

# vim /var/named/sh.zone

아래 내용처럼 공개키만 추가

# cd ..

# dnssec-signzone -S -K /var/named/keys -3 96e920 -o sh.com. /var/named/sh.zone -> 암호화 작업 완료

# vim /etc/named.conf

zone file을 암호화된 파일로 변경

file "sh.zone.signed";

slave PC에서

# ls /var/named/slaves에 암호화 된 zone file 확인하고 conf 파일 위와 같이 변경

웹브라우저에서 도메인으로 접속해 확인

 

  • bind-chroot 사용

# yum -y install chroot

# cd /var/named/

# systemctl stop named

# systemctl restart named-chroot

# systemctl enable named-chroot

 

  • acl

# vim /etc/named.conf
option위에 해당 내용 추가

# named-checkconf

 

  • ubuntu

/etc/bind/named.conf.local에서 slave 또는 master 지정(zone파일 받아올 때 권한 설정 확인 필요)

/etc/bind/named.conf.options에서 option 지정(ipv4 any 등)

slave 지정 시 홈디렉터리는 /var/cache/bind

 

  • rocky

dnssec 명령어가 다름

# dnssec-keygen -a ECDSAP256SHA256 -b 2048 -n ZONE benmin.com

# dnssec-keygen -a ECDSAP256SHA256 -b 4096 -n ZONE -f KSK benmin.com

'🔐 [정보보안] 모의해킹 침해대응 전문가 취업캠프 > Server' 카테고리의 다른 글

[Linux] PXE 설치 서버  (0) 2023.09.15
[Linux] Mail Server  (2) 2023.09.13
[Linux] DHCP  (0) 2023.09.12
[Linux] NFS, Samba  (0) 2023.09.12
[Linux] FTP  (0) 2023.09.12