- 이 질문은 특히 DNS, 방화벽 및 ntp 구성 강화와 관련이 있습니다. (프록시, http 액세스, VPN 또는 기타 서비스가 아님)
- 이는 네트워크의 외부 면에 관한 것입니다. DNS 클라이언트는 별도의 인터페이스 카드를 통해 DNS 서버에 로컬로 연결됩니다. 방정식에서 내 DNS 서버의 클라이언트 측이나 기타 내부 항목을 제거하고 싶습니다.
- 스택에서 가능한 한 최소 개수의 포트를 열고 가능한 한 열린 포트(tcp/udp, 소스/대상 포트 등을 통해)를 제한하십시오.
- 가장 큰 우려 사항은 내 DNS 서버에서 다른 DNS 서버로의 쿼리가 1024에서 49152 사이의 소스 포트를 사용하여 이루어질 수 있지만 해당 포트를 모두 열고 싶지 않다는 것입니다.
- 방화벽이 "가장"(NAT)을 사용하고 있습니다.
- DNS는 dns-sec를 사용합니다.
- 보안은 느린 응답 시간보다 우선합니다.
- DNS가 다른 포트와 통신하기 위해 열어야 하는 최소 공격 표면이라고도 하는 최소 포트/프로토콜 수 등("명백한" 포트 포함)을 사용하여 이것이 왜 발생하는지에 대한 답변을 제공할 수 있다면 가장 도움이 될 것입니다. 서버.
FirewallD는 *nix 세계의 최신 프런트 엔드이므로 (직접 iptables나 pf 대신) FirewallD를 사용할 수 있는 모든 예는 가치가 더해질 것입니다.
이것은 본질적으로 일반적인 질문이지만 내 상황에서는 일반적인 표준 응용 프로그램이 있습니다. 즉, 바인딩된 DNS, Squid 프록시 및 방화벽이 있는 RHEL 시리즈 Linux 서버가 모두 동일한 시스템에 있고 외부 인터넷을 향하고 있습니다.
저는 주변을 둘러보며 특정 소프트웨어나 수정 사항에 의존하는 많은 특정 문제를 발견했습니다. 이 질문은 특정 애플리케이션보다는 접근 방식 및 보안과 더 관련이 있습니다. 시간을 내주셔서 미리 감사드립니다.
답변1
바인딩을 사용할 수 있습니다쿼리에 사용되는 소스 포트 집합 제한. DNSSec 외에도 소스 포트를 너무 많이 제한하면 가짜 응답이 삽입되기 더 쉬워집니다.
완전히 잠그려면 8.8.8.8의 Google 8.8.8.8 DNS 서버와 같은 외부 프록시를 사용할 수 있습니다. 단일(내부) 소스. 모든 쿼리에 대한 단일 대상입니다. 하지만 DNSSec에 대해서는 조언을 드릴 수 없습니다.
참조 NTP 구현은 포트 123을 소스 및 대상으로 사용하지만 모든 구현이 이를 수행하는 것은 아닙니다. 업스트림 서버를 제어하지 않는 한아직 보안 페어링을 받지 못했습니다., 따라서 "충분히" 신뢰할 수 있는 서버에 액세스할 수 있어야 합니다. 3~5개가 가장 좋습니다. 확실히 두 가지만 있는 것은 아닙니다("그들은 다르지만 어느 것이 틀렸는가"). Stratum 3 서버를 찾는 것은 매우 쉽습니다. Stratum 2를 찾는 것은 어렵지 않으며 잘 살펴보면 Public Access Stratum 1도 찾을 수 있습니다. (또는 GPS 기반 수신기를 직접 실행할 수도 있습니다. 요즘에는 그다지 비싸지 않습니다.)