새로운 공간

DNSSEC 본문

서버/Centos 7

DNSSEC

jin._. 2023. 9. 11. 11:26

- Domain Name System Security Extensions의 약자

- DNS 쿼리 및 응답의 무결성과 인증을 제공하기 위한 인터넷 보안 프로토콜 세트

 

DNSSEC는 이러한 보안 취약점을 해결하기 위해 디지털 서명을 사용하여 DNS 데이터의 무결성을 보호한다.

 

 

<DNSSEC의 주요 목적과 작동 방식>

1. 무결성 보호: DNSSEC는 DNS 데이터를 디지털 서명으로 보호. 이 디지털 서명을 통해 DNS 데이터가 변경되지 않았음을 검증할 수 있으므로 중간자 공격이나 DNS 데이터 조작을 방지.

2. 인증: DNSSEC는 DNS 데이터의 출처을 인증. 이것은 사용자가 DNS 응답이 실제로 올바른 DNS 서버에서 왔음을 확인할 수 있다.

 

클라이언트

1. 브라우저 캐시 정보
2. dns cache
3. hosts 파일
---------------  : DNS Query 발생

 

취약 : 위변조가 가능하다.  ----> 평문 전송 ---> 해결책 : 무결성(암호화)
          클라이언트는 대상 서버가 주는 정보에 대해 신뢰성을 갖는다.
       ---> 대상이 정상 서버인지 확인이 불가능 ---> 기밀성(인증) ---> 제3자 인증이 필요
        ns.kong.com ---> 대상 서버의 IP가 정상등록되어 있는지 확인이 필요
==> 해결책 : IPSEC

 

 

 

<설정과정>

1. DNS 서버가 동작 중이다.

대상 Zone 파일 : jin.com.zone

 

 

2. ZONE의 KEY 생성

Key의 위치 : /var/named   <--- 이 위치에 생성하자

dnssec-keygen   ----> Key Pair가 생성된다.  ---> 1. ZSK (zone)
                                                                     2. KSK (key)

 

dnssec-keygen

 

 

 

<ZSK 키 생성 (Zone 서명키)>

dnssec-keygen -r /dev/urandom -a RSASHA256 -b 1024 -n zone jin.com

[root@localhost named]# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 1024 -n zone jin.com
Generating key pair.........++++++ ......++++++
Kjin.com.+008+13359
[root@localhost named]# ls
Kjin.co m.+008+13359.key      data          gugroup.com.zone  named.ca         named.loopback
Kjin.com.+008+13359.private  dvwajin.zone  gugroup.zone.com  named.empty      slaves
chroot                       dynamic       jin.com.zone      named.localhost  study.com.zone

Kjin.com.+008+13359.key       <--- 공개키

Kjin.com.+008+13359.private  <--- 비밀키

 

 

 

<KSK 키 생성 (키 서명키)>

dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -n zone -f KSK jin.com

[root@localhost named]# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -n zone -f KSK jin.com
Generating key pair......+++ .................................+++
Kjin.com.+008+22567
[root@localhost named]# ^C
[root@localhost named]# ls
Kjin.co m.+008+13359.key      chroot        gugroup.com.zone  named.empty      study.com.zone
Kjin.com.+008+13359.private  data          gugroup.zone.com  named.localhost
Kjin.com.+008+22567.key      dvwajin.zone  jin.com.zone      named.loopback
Kjin.com.+008+22567.private  dynamic       named.ca          slaves

Kjin.com.+008+22567.key         <--- 공개키

Kjin.com.+008+22567.private    <--- 비밀키

 

 

<키 정보 확인>

ZSK

cat Kjin.com.+008+13359.key

 

KSK

cat Kjin.com.+008+22567.key

 

3. 반영

4. zone 서명

ZSK

공개키: Kjin.com.+008+13359.key

비밀키: Kjin.com.+008+13359.private 

      

KSK

공개키: Kjin.com.+008+22567.key

비밀키: Kjin.com.+008+22567.private

 

<zone 파일 등록>

$INCLUDE "/var/named/Kjin.com.+008+13359.key"      
$INCLUDE "/var/named/Kjin.com.+008+22567.key

 

 

<작성> 중요!

dnssec-signzone -k Kjin.com.+008+22567.private -o jin.com jin.com.zone Kjin.com.+008+13359.private

*-k Kjin.com.+008+22567.private : KSK의 비밀키

*-o jin.com : 대상도메인

*jin.com.zone : 대상 파일명

*Kjin.com.+008+13359.private: ZSK 비밀키 

[root@localhost named]# dnssec-signzone -k Kjin.com.+008+22567.private -o jin.com jin.com.zone Kjin.com.+008+13359.private
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                                           ZSKs: 1 active, 0 stand-by, 0 revoked
jin.com.zone.signed

 

<서명된 Zone 파일 결과값 확인>

cat jin.com.zone.signed

평문정보와 암호화 데이터가 있음.

 

 

<DNS 서버에 DNSSEC을 적용>

수정

 

<named.root.key 생성 확인>

 

2. vim /etc/named.rfc1912.zone

수정 해주기!

 

[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl status named

정상동작 확인 끝@

 

그럼 클라이언트 Kail에서 확인해보자!

 

vim /etc/resolv.conf

-> nameserver 192.168.0.26 

 

nslookup ns.jin.com

 

 dig @192.168.0.26 www.jin.com a +dnssec +multiline

 

 dnsrecon -d jin.com

 

'서버 > Centos 7' 카테고리의 다른 글

Centos7에 rkhunter, clamAV 설치  (0) 2023.08.17
centos7에 E-Mail 서버 구축 및 메일 보내기  (0) 2023.08.16
webgoat 설치하기  (0) 2023.07.03
Quota(쿼타)  (0) 2023.06.22
centos7에서 apache를 사용하여 phpMyAdmin 설치  (0) 2023.06.21