반응형
캐시 DNS 서버 - DNSSEC 서명 검증 기능 설정
BIND 설정 파일 수정(/etc/named.conf)
vim /etc/named.conf
아래 옵션을 options 블록 내부에 추가합니다.
options {
...
// ✅ DNSSEC 기능 활성화
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
// ✅ 신뢰 anchor 및 key 경로 설정
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
...
};
// ✅ Root Trust Anchor 키 포함
include "/etc/named.root.key";
참고
dnssec-validation yes : DNS 응답의 서명 검증 활성화
dnssec-enable yes : DNSSEC 관련 쿼리 처리 허용
dnssec-lookaside auto : DLV(DNSSEC Lookaside Validation) 자동 참조
BIND 9.16 이상에서는 dnssec-lookaside 옵션이 deprecated 되었으므로 auto 사용만 권장
Managed Keys 디렉터리 생성
mkdir -p /var/named/dynamic
chown named:named /var/named/dynamic
chmod 750 /var/named/dynamic
디렉터리 권한은 반드시 named 계정에 맞게 설정해야 합니다. 그렇지 않으면 키 갱신 시 permission denied 오류 발생 가능.
키 파일 구성
(1) /etc/named.iscdlv.key
cat > /etc/named.iscdlv.key << 'EOF'
/* $Id: bind.keys,v 1.7 2011-01-03 23:45:07 each Exp $ */
managed-keys {
# ISC DLV key (참고용, deprecated)
dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2
brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+
1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5
ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk
Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM
QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt
TDN0YUuWrBNh";
# Root Zone Key
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
};
EOF
(2) /etc/named.root.key
cat > /etc/named.root.key << 'EOF'
managed-keys {
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
};
EOF
728x90
BIND 서비스 재시작 및 상태 확인
systemctl restart named
systemctl enable named
systemctl status named
DNSSEC 서명 검증 테스트
정상적으로 설정되었는지 dig 명령으로 확인합니다.
dig @127.0.0.1 kisa.or.kr +dnssec +multi
정상 결과 예시
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63811
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
- flags 항목에 ad (Authenticated Data) 가 포함되어 있으면 DNSSEC 검증 성공.
- 응답에 RRSIG 레코드가 함께 표시되면 서명된 레코드임을 의미.
비정상 예시
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL
- 루트 키 불일치, 시스템 시간 오류, 또는 managed-keys 접근권한 문제일 가능성.
간단 점검 자동화
DNSSEC 검증이 동작 중인지 1시간마다 확인하는 스크립트를 추가할 수도 있습니다.
#!/bin/bash
LOGFILE="/var/log/dnssec_check.log"
RESULT=$(dig @127.0.0.1 kisa.or.kr +dnssec | grep flags | grep ad)
if [ -n "$RESULT" ]; then
echo "$(date): DNSSEC OK" >> $LOGFILE
else
echo "$(date): DNSSEC FAIL" >> $LOGFILE
fi
크론 등록
0 * * * * /opt/scripts/dnssec_check.sh >/dev/null 2>&1
참고URL
- https://www.isc.org/bind-keys
728x90
반응형
'네임서버' 카테고리의 다른 글
DNS amplification attacks(DNS 증폭 공격) (0) | 2013.06.18 |
---|---|
권한 DNS서버의 도메인 존 DNSSEC 서명 적용 및 네임서버 반영 절차 (0) | 2013.06.18 |
[네임서버] BIND 관리를 위한 RNDC 설정 (0) | 2013.06.17 |
[네임서버] named 계정 생성 (0) | 2013.06.17 |
BIND DNS 서버의 recursive client 관리 및 장애 대응 방법 (0) | 2013.06.17 |