Cache dns — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Установка)
(Настройка)
Строка 37: Строка 37:
 
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
 
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
  
acl net { 192.168.1.0/24 };
+
acl net { 192.168.1.0/24; };
  
 
options {
 
options {
listen-on port 53 { 127.0.0.1; net };
+
listen-on port 53 { 127.0.0.1; net; };
 
//listen-on-v6 port 53 { ::1; };
 
//listen-on-v6 port 53 { ::1; };
 
directory "/var/named";
 
directory "/var/named";
Строка 46: Строка 46:
 
statistics-file "/var/named/data/named_stats.txt";
 
statistics-file "/var/named/data/named_stats.txt";
 
memstatistics-file "/var/named/data/named_mem_stats.txt";
 
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query    { localhost; net };
+
allow-query    { localhost; net; };
 +
allow-query-on { 192.168.1.1/24; };
  
 
/*  
 
/*  
Строка 59: Строка 60:
 
*/
 
*/
 
recursion yes;
 
recursion yes;
forwarders { 8.8.8.8, 8.8.4.4};
+
 
 +
allow-recursion { 127.0.0.1; net; };
 +
allow-recursion-on { 192.168.1.1/24; };
 +
 
 +
forwarders { 8.8.8.8; 8.8.4.4; };
 
forward only;
 
forward only;
  

Версия 14:37, 12 декабря 2017

Развертывание кэширующего сервера DNS

В RHEL7.X стала возможным установка и использование двух рекурсивных кэширующих серверов на выбор - либо bind, либо unbound.

Предварительные требования

  • Виртуальная машина с двумя сетевыми интерфейсами
  • Установленные пакеты: bash-completion, bind, bind-utils

Bind

Установка

На виртуальной машине vm-01 установим пакет:

[root@vm-01 ~]# yum install -y bind

Далее, следует включить сервис в автозагрузку:

[root@vm-01 ~]# systemctl enable named.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@vm-01 ~]#

Настройка

Конфигурационный файл по-умолчанию, практически готов к использованию. Сервер будет работать, как рекурсивный, однако следует запретить запросы из всех сетей, кроме нужной 192.168.1.0/24, плюс указать серверы, которые будут являтся вышестоящими источниками для нашего рекурсивного сервера.

[root@vm-01 ~]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

acl net { 192.168.1.0/24; };

options {
	listen-on port 53 { 127.0.0.1; net; };
	//listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query     { localhost; net; };
	allow-query-on	{ 192.168.1.1/24; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	allow-recursion { 127.0.0.1; net; };
	allow-recursion-on { 192.168.1.1/24; };

	forwarders { 8.8.8.8; 8.8.4.4; };
	forward only;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
	type hint;
	file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";