2.4. DNSSEC 설정
학습 목표
- DNSSEC 설정을 할 수 있다.
DNSSEC(DNS Security Extensions)은 "데이터 위-변조 침해공격"에 취약한 DNS의 문제점을 근본적으로 보완 개선하기 위해 국제인터넷표준화기구인 IETF에서 1990년대 후반부터 논의를 시작, 2005년경 완성된 국제표준기술로, 다양한 시험을 거쳐 2010년에는 전세계 최상위 DNS인 ‘루트DNS’에도 적용되면서, 전세계적으로 적용이 확대되고 있습니다.
- 한국인터넷정보센터(KRNIC) 인용
DNSSEC는 기존의 DNS에 공개키 암호화 방식의 보안 기능을 추가하여 '파밍' 등의 DNS 취약점에 대한 보안성을 높이고자 하는데 있으며 DNSSEC 개념은 클라이언트의 질의에 대해 DNS가 응답 시 전자서명을 통해 응답을 하고 사용자의 DNS에서 무결성을 검증한다면 클라이언트에게 응답하는 방식이 됩니다.
BIND를 통한 DNSSEC 구축 방법은 아래 그림 2-4-2와 같이 도메인에 대한 존파일을 작성하고 존의 Key를 생성하여 Public Key를 Zone에 반영하고 Zone 서명을 한 다음 네임서버에 존을 반영하는 단계로 이루어집니다.
실제 실습에서는 이전에 작업하였던 DNS 가상머신을 그대롤 활용하여 Master DNS에 대한 DNSSEC를 적용해보고 검증해보도록 하겠습니다.
1. 도메인 존파일 작성 ( test.com.zone )
기존의 도메인 존파일 또는 신규 도메인 존 파일을 작성합니다.
2. 존의 Key 생성 ( /var/named/key )
DNSSEC 서명적용 대상 도메인 존의 서명용 키를 생성하는 절차로 존 서명키(ZSK)와 키 서명키(KSK)를 각각 생성합니다.
#dnssec-keygen -a NSEC3RSASHA1 -r /dev/urandom -b 1024 -n ZONE test.com. - 존 서명키(ZSK) 생성
#dnssec-keygen -a NSEC3RSASHA1 -r /dev/urandom -b 2048 -n ZONE -f KSK test.com. - 키 서명키(KSK) 생성
-a : 암호화 알고리즘 -r : 키저장 디렉토리 -b : 키값의 크기 -n : ZONE파일
서명생성 작업을 수행한 디렉토리(/var/named/key)에 아래와 같이 존의 존 서명키(ZSK), 키 서명키(KSK)가 각각 파일로 생성됩니다.
존 서명키(ZSK)
- Ktest.com.+007+52043.key
- Ktest.com.+007+52043.private
키 서명키(KSK)
- Ktest.com.+007+11121.key
- Ktest.com.+007+11121.private
3. Public Key 존 반영
test.com의 공개키(public key)는 키 서명키(KSK)와 존 서명키(ZSK) 각각에 해당하는 DNSKEY 리소스 레코드를 도메인 존 파일에 반영 설정하는 절차로 존 파일( test.com.zone )을 열어서 아래와 같이 존 서명키(ZSK), 키 서명키(KSK) 각각의 공개키 파일(*.key)을 존 파일에 포함시키는 설정을 합니다.
#vi /var/named/test.com.zone
$INCLUDE /var/named/key/Ktest.com.+007+52043.key
$INCLUDE /var/named/key/Ktest.com.+007+11121.key
4. 존 서명
test.com의 기본 존 파일 test.com.zone을 대상으로 DNSSEC 서명처리를 수행하는 절차로 여기서는 서명키들이 /var/named/key에 저장되어 있다고 가정을 하며 아래와 같이 서명처리 명령을 사용하여 서명 처리하며 서명된 존 파일은 'test.com.zone.signed' 라는 이름으로 생성됩니다.
#cd /var/named
#dnssec-signzone -r /dev/urandom –K /var/named/key -o test.com. -S test.com.zone
5. 네임서버에 존 반영
test.com의 서명된 존 파일인 test.com.zone.signed 를 네임서버에 반영하고 설정하는 절차로 네임서버 /etc/named.conf 파일에 아래와 같은 내용으로 설정하여 네임서버 구동 등을 통해 네임서버에 반영처리 합니다.
#vi /etc/named.conf
options {
recursion no;
dnssec-enable yes;
};
zone "test.com" IN {
type master;
file "dnssec/test.com.zone.signed";
key-directory "key";
auto-dnssec maintain;
update-policy local;
};
6. DNSSEC 검증
#dig @199.6.1.30 www.isc.org a +dnssec +multiline
RRSIG(Resource Record Signature)레코드는 도메인 네임 시스템의 각 리소스 레코드 데이터에 대한 전자서명 데이터를 저장하기 위한 리소스 레코드로 ANSWER 부분에 이 레코드가 보이면 dnssec가 설정이 된 것을 알 수 있습니다.
실습을 위해서는 이전의 DNS설정 부분을 참고하여 네임서버가 동작중이어야 하며 그 이후에 DNSSEC 설정을 진행하면 됩니다. 관련 설정 내용은 유튜브 채널 'youtube.com/에듀쉐어'를 통해 확인이 가능하며 구독 및 좋아요 항상 감사드립니다.
'IT강좌 > 서버|클라우드' 카테고리의 다른 글
후티와 떠나는 서버 여행 - #. 로그 서버 구축 1(feat. rsyslog, mariadb, loganalyzer) (0) | 2020.06.11 |
---|---|
후티와 떠나는 서버 여행 - #. 리눅스(CentOS 7)에서 고정 IP주소 설정하기 (2) | 2020.04.06 |
후티와 떠나는 서버 여행 - 11장. DHCP 서버 구축 및 설정 (0) | 2020.03.11 |
후티와 떠나는 서버 여행 - 10장. NTP 서버 구축 및 관리 (0) | 2020.03.08 |
후티와 떠나는 서버 여행 - 8장. NFS 서버 구축 및 설정 (0) | 2020.03.07 |