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

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

Robert Michael Kim
Robert Michael Kim원래의
2025-03-12 19:02:43620검색

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으로 문의하세요.