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)
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
allow-transfer {slave ip;}; 추가
# named-checkconf -> 문법 확인
# systemctl restart named
# vim /var/named/domain.zone(ex.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 |