> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > Linux에서 DNS 서버 (BIND)를 설정하려면 어떻게합니까?

Linux에서 DNS 서버 (BIND)를 설정하려면 어떻게합니까?

Robert Michael Kim
풀어 주다: 2025-03-12 19:02:43
원래의
612명이 탐색했습니다.

Linux에서 BIND DNS 서버 설정

Linux에서 BIND (Berkeley Internet Name Domain) DNS 서버 설정에는 여러 단계가 필요합니다. 먼저 바인드 패키지를 설치해야합니다. 정확한 명령은 분포에 따라 다르지만 일반적으로 sudo apt-get install bind9 (Debian/Ubuntu) 또는 sudo yum install bind (Centos/Rhel)와 같은 것입니다. 설치 후 코어 구성 파일은 일반적으로 /etc/bind/ 에 있습니다. 주로 named.conf.optionsnamed.conf.local 에서 작업합니다.

named.conf.options 청취 주소, 전달기 (다른 DNS 서버를 로컬로없는 경우 쿼리) 및 재귀 설정 (서버가 클라이언트의 쿼리를 재귀 적으로 해결하는지 여부)과 같은 전역 설정을 제어합니다. named.conf.local 서버가 관리 할 영역을 정의합니다. 영역은 DNS 네임 스페이스의 일부입니다 (예 : example.com). named.conf.local 내에서 실제 DNS 레코드 (A, AAAA, MX, CNAME 등)가 포함 된 영역 파일 위치를 지정합니다. 이 레코드는 도메인 이름을 IP 주소 및 기타 정보에 매핑합니다.

예를 들어, exember example.com 을 정의하려면 DNS 레코드가 포함 된 파일 (예 : /etc/bind/db.example.com )을 만듭니다. 이 파일은 named.conf.local 에서 참조됩니다. 이러한 파일을 구성한 후 BIND 서비스 (예 : sudo systemctl restart bind9 )를 다시 시작해야합니다. 설정 테스트하는 것이 중요합니다. nslookup 과 같은 도구를 사용하거나 dig 서버를 쿼리하고 이름을 올바르게 해결하는지 확인하십시오. DNS 트래픽 (일반적으로 UDP 포트 53 및 TCP 포트 53)이 서버에 도달 할 수 있도록 적절한 방화벽 규칙을 구성해야합니다.

BIND DNS 서버의 필수 구성 파일

BIND DNS 서버의 필수 구성 파일은 주로 /etc/bind/ directory에 있습니다. 다음은 주요 파일과 그 역할의 분석입니다.

  • named.conf.options : 이 파일에는 BIND 서버의 전역 옵션이 포함되어 있습니다. 주요 설정에는 다음이 포함됩니다.

    • listen-on port 53 { any; }; : IP 주소를 지정하고 서버가 듣는 포트. any 인터페이스를 의미합니다.
    • allow-query { any; }; : 서버를 쿼리하기 위해 허용되는 IP 주소를 지정합니다. 모든 주소에서 쿼리를 허용하는 any 것은 생산 서버에 일반적으로 불안합니다. 더 나은 보안을 위해이를 특정 IP 주소 또는 네트워크로 제한하십시오.
    • forwarders { 8.8.8.8; 8.8.4.4; }; : 서버가 로컬로 답변이없는 경우 쿼리를 전달할 업스트림 DNS 서버를 지정합니다. Google의 공개 DNS 서버를 사용하는 것은 일반적인 관행입니다.
    • recursion yes; 또는 recursion no; : 서버가 쿼리를 재귀 적으로 해결하는지 여부를 결정합니다. 서버가 클라이언트를위한 재귀적인 리졸버가되지 않는 한 일반적으로 재귀는 비활성화되어야합니다.
    • directory "/var/cache/bind"; : 바인드가 캐시를 저장하는 디렉토리를 지정합니다.
  • named.conf.local : 이 파일에는 영역 정의가 포함되어 있습니다. 각 영역은 zone 지시문을 사용하여 정의되며 도메인 이름, 영역 유형 (마스터, 슬레이브 또는 앞으로) 및 영역 파일의 위치를 ​​지정합니다. 예를 들어:
 <code>zone "example.com" { type master; file "/etc/bind/db.example.com"; };</code>
로그인 후 복사
  • Zone 파일 (예 : /etc/bind/db.example.com ) : 이 파일에는 각 영역의 실제 DNS 레코드가 포함되어 있습니다. 형식은 BAND에 의해 정의 된 특정 구문입니다. A, A, AAAA, MX, NS, CNAME 등과 같은 레코드가 포함되어 있습니다.

공통 바인드 DNS 서버 오류 문제 해결

바인딩 오류 문제 해결에는 종종 로그 및 구성 파일을 확인하는 것이 포함됩니다. 기본 로그 파일은 일반적으로 /var/log/syslog (또는 분포에 따라 유사한 위치)에 있으며 바인드 오류 메시지가 포함됩니다. 구성 파일, 권한 문제 또는 네트워크 연결 문제의 구문 오류와 관련된 오류 메시지를 찾으십시오.

일반적인 오류는 다음과 같습니다.

  • 구성 파일의 구문 오류 : 오타 또는 잘못된 구문의 경우 named.conf.options named.conf.local 을주의 깊게 검토합니다. 단일 잘못 배치 된 세미콜론조차도 서버가 시작되지 않을 수 있습니다.
  • 영역 파일 오류 : 영역 파일에 올바른 구문이 있고 모든 레코드가 올바르게 형식화되어 있는지 확인하십시오. named-checkzone 명령을 사용하여 서버를 다시 시작하기 전에 영역 파일을 확인하십시오.
  • 네트워크 연결 문제 : 서버에 네트워크 연결이 있고 방화벽이 DNS 트래픽을 허용하는지 확인하십시오 (포트 53 UDP 및 TCP).
  • 이름 서버를 찾을 수 없습니다 : 이것은 다른 시스템에서 DNS 서버에 도달 할 수 없음을 나타냅니다. 서버의 IP 주소 및 네트워크 구성을 확인하십시오. 방화벽이 DNS 트래픽을 허용하고 있는지 확인하십시오.

Linux의 BIND DNS 서버에 대한 보안 조치

BIND DNS 서버 보안은 공격을 방지하고 데이터 무결성을 유지하는 데 중요합니다. 중요한 보안 조치는 다음과 같습니다.

  • allow-query 제한 : allow-query { any; } 생산 환경에서. 서버를 쿼리 할 수있는 IP 주소 또는 네트워크를 엄격히 제한합니다.
  • 강력한 비밀번호 사용 : 서버 및 구성 파일에 액세스하면 모든 사용자 계정에 강력하고 고유 한 비밀번호를 사용하십시오.
  • 정기적 인 업데이트 : BIND 소프트웨어를 최신 버전으로 업데이트하여 보안 취약점을 패치하십시오.
  • 재귀 비활성화 (필요하지 않은 경우) : 서버가 재귀 리졸버가되지 않는 한, 재귀를 비활성화하여 DNS 증폭 공격에 사용되는 것을 방지하십시오.
  • 방화벽 규칙 : 방화벽 규칙을 구현하여 필요한 트래픽 (포트 53 UDP 및 TCP의 DNS 트래픽) 만 서버에 도달 할 수 있습니다. 다른 모든 트래픽을 차단하십시오.
  • 일반 백업 : 데이터 손실로부터 보호하기 위해 구성 파일 및 영역 데이터를 정기적으로 백업합니다.
  • 모니터링 로그 : 의심스러운 활동을 위해 서버 로그를 정기적으로 모니터링하십시오.
  • DNSSEC 사용 : DNSSEC (DNS Security Extensions) 구현을 고려하여 DNS 응답에 대한 인증 및 무결성을 제공하십시오. 이를 통해 DNS 스푸핑 및 캐시 중독 공격을 방지합니다.
  • 영역 전송 제한 : 공인 된 슬레이브 서버로 구역 전송 만 허용합니다.

이러한 보안 조치를 구현하고 모범 사례를 따르면 BIND DNS 서버의 보안을 크게 향상시킬 수 있습니다. 최신 정보 및 보안 권장 사항에 대한 공식 바인드 문서에 문의하십시오.

위 내용은 Linux에서 DNS 서버 (BIND)를 설정하려면 어떻게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿