DNS(Domain Name System)는 오랜 역사를 지닌 방법으로, IP 주소가 있는 컴퓨터에 도메인 이름을 할당하여 컴퓨터가 문자 이름을 갖도록 할 수 있습니다. 예를 들어 IP 주소가 207.46.193.254인 컴퓨터는 Microsoft 서버 www. microsoft.com. DNS는 잘 설계되었으며 대부분의 경우 매우 잘 작동합니다. 그러나 항상 불만족스러운 상황이 발생하고 이로 인해 관리자는 두통을 겪게 됩니다. 그렇다면 실패의 단서를 찾는 방법은 무엇입니까? DNS 시스템에서 이상적이지 않은 영역은 무엇입니까?
따라야 할 패턴이 있나요? 대답은 '예'입니다. 참고할 수 있는 DNS 서버의 7가지 죄악은 다음과 같습니다.
1. 이전 버전의 BIND를 사용하세요.
오픈 소스 DNS 서버 소프트웨어인 Bind는 현재 전 세계에서 가장 널리 사용되는 DNS 서버 소프트웨어입니다. BIND의 거의 대부분의 이전 버전에는 심각하고 잘 알려진 취약점이 있습니다. 공격자는 이러한 취약점을 악용하여 DNS 이름 서버를 다운시키고 이를 실행하는 호스트를 손상시킬 수 있습니다. 그러므로 반드시 최신 BIND를 사용하고 적시에 패치해야 한다.
2. 중요한 도메인 이름 서버를 모두 동일한 서브넷에 배치합니다.
이 경우 스위치나 라우터와 같은 장비에 오류가 발생하거나 네트워크 연결에 오류가 발생하면 인터넷 사용자가 귀하의 웹사이트에 액세스하거나 귀하에게 이메일을 보낼 수 없게 됩니다.
3. 무단 쿼리에 대한 재귀를 허용합니다.
다음과 같은 상황으로 설정된 경우:
(재귀 예|아니요; [예] 허용 재귀 { address_match_list } [모든 호스트] |
안전하지 않습니다. 여기서 재귀 옵션은 클라이언트를 대신하여 명명된 쿼리가 다른 도메인 이름 서버인지 여부를 지정합니다. 네임서버는 일반적으로 재귀를 끄도록 설정되지 않습니다. 최소한 우리 자신의 클라이언트에 대해서는 재귀를 허용해야 하지만 외부 쿼리에 대해서는 재귀를 비활성화해야 합니다. 클라이언트에 대한 재귀 쿼리를 처리할 수 있다면 이름 서버가 캐시 중독 및 서비스 거부 공격에 노출되기 때문입니다.
4. 승인되지 않은 보조 이름 서버가 영역 전송을 수행하도록 허용합니다.
영역 전송은 여러 DNS 서버 간에 영역 데이터베이스 파일을 복사하는 프로세스를 나타냅니다. 임의의 쿼리자에게 영역 전송 서비스를 제공하면 도메인 이름 서버가 공격자에게 노출되어 서버가 중단될 수 있습니다.
5. DNS 전달자가 사용되지 않습니다.
DNS 전달자는 다른 DNS 서비스를 대신하여 DNS 쿼리를 수행하는 서버입니다. Microsoft의 DNS 서버 및 일부 이전 BIND 이름 서버를 포함한 많은 이름 서버 소프트웨어는 캐시 중독으로부터 자신을 적절하게 보호하지 않으며 다른 DNS 서버 소프트웨어에도 악의적인 응답에 의해 악용될 수 있는 취약점이 있습니다. 그러나 많은 관리자는 전달자를 전혀 사용하지 않고 이러한 이름 서버가 인터넷의 다른 이름 서버에 직접 쿼리할 수 있도록 허용합니다.
6. SOA(권한 시작) 값을 잘못 설정했습니다.
SOA는 Zone 데이터의 시작을 표시하고 전체 Zone에 영향을 미치는 매개변수를 정의합니다. 많은 관리자가 영역 값을 너무 낮게 설정하여 쿼리 플러시 또는 영역 전송이 실패하기 시작하면 시스템이 중단될 수 있습니다. RFC가 SOA를 재정의한 이후 일부 사람들은 네거티브 캐싱 TTL을 재설정하여 TTL이 너무 높아졌습니다.
7. 승인 및 영역 데이터의 NS 레코드가 일치하지 않습니다.
일부 관리자는 기본 이름 서버를 추가하거나 제거하지만 해당 영역의 위임 데이터(소위 위임 데이터)를 해당 변경하는 것을 잊어버립니다. 이렇게 하면 도메인 이름을 확인하는 데 걸리는 시간이 늘어나고 유연성이 감소합니다.
물론 이는 관리자가 범할 수 있는 몇 가지 일반적인 실수일 뿐이지만 DNS 서버 구성을 위한 기본 참조 역할을 할 수 있습니다.