BIND. Centos 7. BIND 9 install: различия между версиями
Cless (обсуждение | вклад) (Новая страница: «<nowiki>------------------</nowiki> BIND 9 НА CENTOS 7 <nowiki>------------------</nowiki> yum install bind bind-utils systemctl enable named 1. Кэшир...») |
Cless (обсуждение | вклад) |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
< | = Установка = | ||
<code>yum install bind bind-utils</code> | |||
<code>systemctl enable named</code> | |||
< | = Кэширующий DNS сервер = | ||
<code>nano /etc/named.conf</code><blockquote>добавляем DNS сервера нашего провайдера. | |||
также для подстраховки можно добавить после DNS-ов провайдера еще и публичные DNS-ы google. | |||
Всё это вписывается в параметр forwarders Также обратите внимание на параметр listen-on — он определяет на каких интерфейсам будет запущен bind. | |||
Для кэширующего DNS тут нужно перечислить локальный и все внутренние интерфейсы. | |||
Внешние интерфейсы сюда вписывать не стоит, мы же не хотим чтобы весь Интернет имел возможность через наш DNS резолвить адреса ??</blockquote> | |||
// | |||
// 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 | |||
options { | |||
forwarders { | |||
193.34.12.2; 8.8.8.8; | |||
}; | |||
auth-nxdomain no; # conform to RFC1035 | |||
listen-on port 53 { 127.0.0.1; 192.168.17.252; }; | |||
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"; | |||
// named.conf | memstatistics-file "/var/named/data/named_mem_stats.txt"; | ||
allow-query { localhost; }; | |||
// | /* | ||
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. | |||
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS | - If you are building a RECURSIVE (caching) DNS server, you need to enable | ||
recursion. | |||
// server as a caching only nameserver (as a localhost DNS resolver only). | - 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 | |||
// See /usr/share/doc/bind*/sample/ for example named configuration files. | reduce such attack surface | ||
*/ | |||
// | recursion yes; | ||
dnssec-enable yes; | |||
// See the BIND Administrator's Reference Manual (ARM) for details about the | dnssec-validation yes; | ||
/* Path to ISC DLV key */ | |||
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html | bindkeys-file "/etc/named.iscdlv.key"; | ||
managed-keys-directory "/var/named/dynamic"; | |||
options { | pid-file "/run/named/named.pid"; | ||
session-keyfile "/run/named/session.key"; | |||
forwarders { | }; | ||
logging { | |||
193.34.12.2; 8.8.8.8; | channel default_debug { | ||
file "data/named.run"; | |||
}; | severity dynamic; | ||
}; | |||
auth-nxdomain no; # conform to RFC1035 | }; | ||
zone "." IN { | |||
listen-on port 53 { 127.0.0.1; 192.168.17.252; }; | type hint; | ||
file "named.ca"; | |||
listen-on-v6 port 53 { ::1; }; | }; | ||
include "/etc/named.rfc1912.zones"; | |||
directory "/var/named"; | include "/etc/named.root.key"; | ||
<code>systemctl restart named</code> | |||
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; }; | |||
/* | |||
- 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; | |||
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"; | |||
systemctl restart named | |||
В итоге мы получаем кэширующий DNS сервер. Убедимся в этом с помощью утилиты dig: | В итоге мы получаем кэширующий DNS сервер. Убедимся в этом с помощью утилиты dig: | ||
dig @127.0.0.1 bbc.com | <code>dig @127.0.0.1 bbc.com</code> | ||
<nowiki>;</nowiki> <<>> DiG 9.9.3-2+deb8u3-Debian <<>> @127.0.0.1 bbc.com | |||
<nowiki>;</nowiki> (1 server found) | |||
<nowiki>;;</nowiki> global options<nowiki>:</nowiki> +cmd | |||
<nowiki>;</nowiki> <<>> DiG 9.9.3-2+deb8u3-Debian <<>> @127.0.0.1 bbc.com | <nowiki>;;</nowiki> Got answer<nowiki>:</nowiki> | ||
<nowiki>;;</nowiki> ->>HEADER<<- opcode<nowiki>:</nowiki> QUERY, status: NOERROR, id: 43628 | |||
<nowiki>;</nowiki> (1 server found) | <nowiki>;;</nowiki> flags<nowiki>:</nowiki> qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 16 | ||
<nowiki>;;</nowiki> OPT PSEUDOSECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> global options<nowiki>:</nowiki> +cmd | <nowiki>;</nowiki> EDNS<nowiki>:</nowiki> version: 0, flags:; udp: 4096 | ||
<nowiki>;;</nowiki> QUESTION SECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> Got answer<nowiki>:</nowiki> | <nowiki>;</nowiki>bbc.com. IN A | ||
<nowiki>;;</nowiki> ANSWER SECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> ->>HEADER<<- opcode<nowiki>:</nowiki> QUERY, status: NOERROR, id: 43628 | bbc.com. 9 IN A 212.58.246.104 | ||
bbc.com. 9 IN A 212.58.244.18 | |||
bbc.com. 9 IN A 212.58.244.20 | |||
bbc.com. 9 IN A 212.58.246.103 | |||
<nowiki>;;</nowiki> AUTHORITY SECTION<nowiki>:</nowiki> | |||
com. 10178 IN NS i.gtld-servers.net. | |||
............ | |||
Ответ мы получили, значит все работает как надо. | |||
Настройки DHCP-сервера уже содержит данный DNS сервер как основной и единственный для клиентов локальной сети. | |||
Если же вы по каким-то причинам не хотите настраивать себе DHCP сервер, | |||
Не забудьте вручную на данном сервере и на компах локальной сети сменить DNS сервера в конфиге /etc/resolv.conf. | |||
Теперь он может выглядеть следующим образом: | |||
< | <code>cat /etc/resolv.conf</code> | ||
nameserver 127.0.0.1 | |||
= Внутренние зоны = | |||
Создаем файл для нашей зоны | |||
<code>nano /etc/named/db.cless.pro</code> | |||
$TTL 3600 ; 1 hour default TTL | |||
cless.pro. IN SOA ns1.cless.pro. admin.cless.pro. ( | |||
2015042009 ; Serial | |||
8H ; Refresh | |||
1H ; Retry | |||
1W ; Expire | |||
1D ) ; minimum, seconds | |||
<nowiki>;</nowiki> DNS Servers | |||
IN NS ns1.cless.pro. | |||
<nowiki>;</nowiki> MX Records | |||
<nowiki>;;</nowiki> IN MX 10 mail.cless.pro. | |||
<nowiki>;</nowiki> HOST A | |||
<nowiki>;</nowiki>cless.pro. IN A 192.168.111.252 | |||
ns1 IN A 192.168.17.252 | |||
gw IN A 192.168.17.8 | |||
d-apps IN A 192.168.17.252 | |||
<nowiki>*</nowiki>.d-apps IN A 192.168.17.252 | |||
<nowiki>;</nowiki> CNAME | |||
www IN CNAME gw.cless.pro. | |||
включаем файл в конфиг bind | |||
<code>nano /etc//named.rfc1912.zones</code> | |||
... | |||
zone "cless.pro" { | |||
type master; | |||
file "db.cless.pro"; | |||
notify no; | |||
allow-transfer { none; }; | |||
allow-update { none; }; | |||
allow-query { 127.0.0.1; 192.168.17.0/24; }; | |||
... | |||
Сохраняем конфиг и перезапускаем сервис: | |||
<code>systemctl restart named</code> | |||
< | |||
Пробуем отрезолвить какой-нибудь host из локалки: | Пробуем отрезолвить какой-нибудь host из локалки: | ||
dig @127.0.0.1 ns1.cless.pro | <code>dig @127.0.0.1 ns1.cless.pro</code> | ||
<nowiki>;</nowiki> <<>> DiG 9.9.5-9+deb8u10-Debian <<>> @127.0.0.1 ns1.cless.pro | |||
<nowiki>;</nowiki> <<>> DiG 9.9.5-9+deb8u10-Debian <<>> @127.0.0.1 ns1.cless.pro | <nowiki>;</nowiki> (1 server found) | ||
<nowiki>;;</nowiki> global options<nowiki>:</nowiki> +cmd | |||
<nowiki>;</nowiki> (1 server found) | <nowiki>;;</nowiki> Got answer<nowiki>:</nowiki> | ||
<nowiki>;;</nowiki> ->>HEADER<<- opcode<nowiki>:</nowiki> QUERY, status: NOERROR, id: 9116 | |||
<nowiki>;;</nowiki> global options<nowiki>:</nowiki> +cmd | <nowiki>;;</nowiki> flags<nowiki>:</nowiki> qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 | ||
<nowiki>;;</nowiki> OPT PSEUDOSECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> Got answer<nowiki>:</nowiki> | <nowiki>;</nowiki> EDNS<nowiki>:</nowiki> version: 0, flags:; udp: 4096 | ||
<nowiki>;;</nowiki> QUESTION SECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> ->>HEADER<<- opcode<nowiki>:</nowiki> QUERY, status: NOERROR, id: 9116 | <nowiki>;</nowiki>ns1.cless.pro. IN A | ||
<nowiki>;;</nowiki> ANSWER SECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> flags<nowiki>:</nowiki> qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 | ns1.cless.pro. 3600 IN A 192.168.111.249 | ||
<nowiki>;;</nowiki> AUTHORITY SECTION<nowiki>:</nowiki> | |||
<nowiki>;;</nowiki> OPT PSEUDOSECTION<nowiki>:</nowiki> | cless.pro. 3600 IN NS ns1.cless.pro. | ||
<nowiki>;;</nowiki> Query time<nowiki>:</nowiki> 0 msec | |||
<nowiki>;</nowiki> EDNS<nowiki>:</nowiki> version: 0, flags:; udp: 4096 | <nowiki>;;</nowiki> SERVER<nowiki>:</nowiki> 127.0.0.1#53(127.0.0.1) | ||
<nowiki>;;</nowiki> WHEN<nowiki>:</nowiki> Sun Apr 16 20:18:31 MSK 2017 | |||
<nowiki>;;</nowiki> QUESTION SECTION<nowiki>:</nowiki> | <nowiki>;;</nowiki> MSG SIZE rcvd<nowiki>:</nowiki> 72 | ||
<nowiki>;</nowiki>ns1.cless.pro. IN A | |||
<nowiki>;;</nowiki> ANSWER SECTION<nowiki>:</nowiki> | |||
ns1.cless.pro. 3600 IN A 192.168.111.249 | |||
<nowiki>;;</nowiki> AUTHORITY SECTION<nowiki>:</nowiki> | |||
cless.pro. 3600 IN NS ns1.cless.pro. | |||
<nowiki>;;</nowiki> Query time<nowiki>:</nowiki> 0 msec | |||
<nowiki>;;</nowiki> SERVER<nowiki>:</nowiki> 127.0.0.1#53(127.0.0.1) | |||
<nowiki>;;</nowiki> WHEN<nowiki>:</nowiki> Sun Apr 16 20:18:31 MSK 2017 | |||
<nowiki>;;</nowiki> MSG SIZE rcvd<nowiki>:</nowiki> 72 | |||
Как видите, резолвится отлично! | Как видите, резолвится отлично! | ||
[[Категория:BIND]] | |||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | |||
Текущая версия на 10:32, 9 сентября 2023
Установка
yum install bind bind-utils
systemctl enable named
Кэширующий DNS сервер
nano /etc/named.conf
добавляем DNS сервера нашего провайдера.
также для подстраховки можно добавить после DNS-ов провайдера еще и публичные DNS-ы google.
Всё это вписывается в параметр forwarders Также обратите внимание на параметр listen-on — он определяет на каких интерфейсам будет запущен bind.
Для кэширующего DNS тут нужно перечислить локальный и все внутренние интерфейсы.
Внешние интерфейсы сюда вписывать не стоит, мы же не хотим чтобы весь Интернет имел возможность через наш DNS резолвить адреса ??
//
// 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
options {
forwarders {
193.34.12.2; 8.8.8.8;
};
auth-nxdomain no; # conform to RFC1035
listen-on port 53 { 127.0.0.1; 192.168.17.252; };
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; };
/*
- 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;
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";
systemctl restart named
В итоге мы получаем кэширующий DNS сервер. Убедимся в этом с помощью утилиты dig:
dig @127.0.0.1 bbc.com
; <<>> DiG 9.9.3-2+deb8u3-Debian <<>> @127.0.0.1 bbc.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43628 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 16 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;bbc.com. IN A ;; ANSWER SECTION: bbc.com. 9 IN A 212.58.246.104 bbc.com. 9 IN A 212.58.244.18 bbc.com. 9 IN A 212.58.244.20 bbc.com. 9 IN A 212.58.246.103 ;; AUTHORITY SECTION: com. 10178 IN NS i.gtld-servers.net. ............
Ответ мы получили, значит все работает как надо.
Настройки DHCP-сервера уже содержит данный DNS сервер как основной и единственный для клиентов локальной сети.
Если же вы по каким-то причинам не хотите настраивать себе DHCP сервер,
Не забудьте вручную на данном сервере и на компах локальной сети сменить DNS сервера в конфиге /etc/resolv.conf.
Теперь он может выглядеть следующим образом:
cat /etc/resolv.conf
nameserver 127.0.0.1
Внутренние зоны
Создаем файл для нашей зоны
nano /etc/named/db.cless.pro
$TTL 3600 ; 1 hour default TTL cless.pro. IN SOA ns1.cless.pro. admin.cless.pro. ( 2015042009 ; Serial 8H ; Refresh 1H ; Retry 1W ; Expire 1D ) ; minimum, seconds ; DNS Servers IN NS ns1.cless.pro. ; MX Records ;; IN MX 10 mail.cless.pro. ; HOST A ;cless.pro. IN A 192.168.111.252 ns1 IN A 192.168.17.252 gw IN A 192.168.17.8 d-apps IN A 192.168.17.252 *.d-apps IN A 192.168.17.252 ; CNAME www IN CNAME gw.cless.pro.
включаем файл в конфиг bind
nano /etc//named.rfc1912.zones
...
zone "cless.pro" {
type master;
file "db.cless.pro";
notify no;
allow-transfer { none; };
allow-update { none; };
allow-query { 127.0.0.1; 192.168.17.0/24; };
...
Сохраняем конфиг и перезапускаем сервис:
systemctl restart named
Пробуем отрезолвить какой-нибудь host из локалки:
dig @127.0.0.1 ns1.cless.pro
; <<>> DiG 9.9.5-9+deb8u10-Debian <<>> @127.0.0.1 ns1.cless.pro ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9116 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ns1.cless.pro. IN A ;; ANSWER SECTION: ns1.cless.pro. 3600 IN A 192.168.111.249 ;; AUTHORITY SECTION: cless.pro. 3600 IN NS ns1.cless.pro. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Apr 16 20:18:31 MSK 2017 ;; MSG SIZE rcvd: 72
Как видите, резолвится отлично!