бухгалтерские шкафы

Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

РуководствоУстановка кеширующего DNS сервер для локальной сети BIND 9 на Mandriva Linux

Предисловие
Долго я искал себе для локального шлюза кеширующий dns сервер. Перепробовал и dnsmasq и pdnsd и nscd и powerdns. Всё не то. Так не хотел, наслышав о тяжелости, дырявости и неповоротливости bind c ним связываться. НО вроде дыры в нём находят не от того что он сильно дырявый, а потому что популярный, культовый и в нём хорошо ищут. И на этот подвиг меня мотивировала вот этот пост и комментарий atommixz за что ребятам большое спасибо. Производил манипуляции в том разумении в котором я это понимаю, так что не взыщите.


Итак начнём.

1. Установка в Mandriva, впрочем как и во всех linux проста: urpmi bind.
(Дабы избежать сарказмы высказанного в комментариях в Ubuntu это будет sudo apt-get install bind9).

После установки получаем такое сообщение

Дополнительная информация о пакете bind-9.7.0-5mdv2010.1.i586

The most significant changes starting from the bind-9.3.2-5mdk package:

o Installs in a chroot environment per default (/var/lib/named) for

security measures.

o Acts as a caching only resolver per default, ip addresses that should be

allowed to use recursive lookups must be defined in the

/var/lib/named/etc/trusted_networks_acl.conf file.


Сие означает, что все файлы конфигурации и результаты работы (логи, пид файл и.т.д.) находятся в chroot окружении в папке /var/lib/named. Значит конфигурить bind мы будем именно там.

2. Итак, сначала отредактируем самый главный файл — файл конфигурации.

Возьмите свой любимый текстовый редактор и откройте файл с именем /var/lib/named/etc/named.conf.

Увидем примерно следующее (жирным выделено, то что нужно изменить):

# cat named.conf

// (oe) Loosely based on the document below and from production server configurations.

// www.cymru.com/Documents/secure-bind-template.html

//

// $Id: named.conf 418249 2009-08-19 18:33:42Z oden $

// $HeadURL: svn+ssh://svn.mandriva.com/svn/packages/cooker/bind/current/SOURCES/named.conf $

// secret must be the same as in /etc/rndc.conf

include "/etc/rndc.key";

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { mykey; };

};

// Access lists (ACL's) should be defined here

// NOTE: the static bogon_acl.conf file has been deactivated per default but

// kept to serve as an example only. You should instead look at:

// www.team-cymru.org/Services/Bogons/

// include "/etc/bogon_acl.conf";

include "/etc/trusted_networks_acl.conf";

// Define logging channels

include "/etc/logging.conf";

// Enable statistics at 127.0.0.1:5380/

statistics-channels {

inet 127.0.0.1 port 5380 allow { 127.0.0.1; };

};

options {

version «FigVam»;

directory "/var/named";

dump-file "/var/tmp/named_dump.db";

pid-file "/var/run/named.pid";

statistics-file "/var/tmp/named.stats";

zone-statistics yes;

// datasize 256M;

coresize 100M;

// fetch-glue no;

// recursion no;

// recursive-clients 10000;

auth-nxdomain yes;

query-source address * port *;

listen-on port 53 { any; };

cleaning-interval 120;

transfers-in 20;

transfers-per-ns 2;

lame-ttl 0;

max-ncache-ttl 10800;

forwarders { 192.168.1.254; 8.8.8.8; 74.82.42.42; }; ### перенаправлять запросы на DNS-сервер провайдера (првайдер для нас локальная cisco, Google и ещё чей0то халявный)

// allow-update { none; };

// allow-transfer { any; };

// Prevent DoS attacks by generating bogus zone transfer

// requests. This will result in slower updates to the

// slave servers (e.g. they will await the poll interval

// before checking for updates).

notify no;

// notify explicit;

// also-notify { secondary_name_server };

// Generate more efficient zone transfers. This will place

// multiple DNS records in a DNS message, instead of one per

// DNS message.

transfer-format many-answers;

// Set the maximum zone transfer time to something more

// reasonable. In this case, we state that any zone transfer

// that takes longer than 60 minutes is unlikely to ever

// complete. WARNING: If you have very large zone files,

// adjust this to fit your requirements.

max-transfer-time-in 60;

// We have no dynamic interfaces, so BIND shouldn't need to

// poll for interface state {UP|DOWN}.

interface-interval 0;

// Uncoment these to enable IPv6 connections support

// IPv4 will still work

// listen-on { 127.0.0.1; 10.10.7.1 };

// listen-on-v6 { any; };

allow-query { 127.0.0.1; 10.10.7.0/27; }; ## от кого принимать запросы

allow-recursion { 127.0.0.1;10.10.7.0/27; }; ## кому отвечать на запросы

// Deny anything from the bogon networks as

// detailed in the «bogon» ACL.

// blackhole { bogon; };

};

// workaround stupid stuff… (OE: Wed 17 Sep 2003)

zone «ac» { type delegation-only; };

zone «cc» { type delegation-only; };

zone «com» { type delegation-only; };

zone «cx» { type delegation-only; };

zone «lv» { type delegation-only; };

zone «museum» { type delegation-only; };

zone «net» { type delegation-only; };

zone «nu» { type delegation-only; };

zone «ph» { type delegation-only; };

zone «sh» { type delegation-only; };

zone «tm» { type delegation-only; };

zone «ws» { type delegation-only; };

zone "." IN {

type hint;

file «named.ca»;

};

zone «localdomain» IN {

type master;

file «master/localdomain.zone»;

allow-update { none; };

};

zone «localhost» IN {

type master;

file «master/localhost.zone»;

allow-update { none; };

};

zone «0.0.127.in-addr.arpa» IN {

type master;

file «reverse/named.local»;

allow-update { none; };

};

zone «0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa» IN {

type master;

file «reverse/named.ip6.local»;

allow-update { none; };

};

zone «255.in-addr.arpa» IN {

type master;

file «reverse/named.broadcast»;

allow-update { none; };

};

zone «0.in-addr.arpa» IN {

type master;

file «reverse/named.zero»;

allow-update { none; };

};

3. Затем открываем файл /var/lib/named/etc/trusted_networks_acl.conf и конфигурим наши доверенные зоны. И получаем примерно следующее.

# cat /var/lib/named/etc/trusted_networks_acl.conf


// NOTE: You have to maintain this list yourself. In Mandriva Linux we allow

// the 192.168.0.0/16 network to do recursive lookups per default. If you

// don't like this you need to change this now.

//

// You may need to add specific ip addresses here as well.

//

// $Id: trusted_networks_acl.conf 80849 2007-09-06 11:56:48Z oden $

// $HeadURL: svn+ssh://svn.mandriva.com/svn/packages/cooker/bind/current/SOURCES/trusted_networks_acl.conf $

acl «trusted_networks» {

// If you are using RFC1918 netblocks please remember to

// comment these in the bogon_acl.conf file.

127.0.0.1;

10.10.7.0/27; ## тут наша локалка

// 192.168.0.0/16;

};

4. Далее необходимо указать нашему шлюзу, что первый днс сервер который он будет использовать это он сам (127.0.0.1). Замена первой строки в файле /etc/resolv.conf на nameserver 127.0.0.1 в Mandriva ничего не даёт, т. к. после рестарта сети он затирается настройками из файла /etc/sysconfig/network-scripts/ifcfg-eth0 поэтому пойдём другим путём. Открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0 и в строку DNS1 пишем 127.0.0.1.

Получается примерно так:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.7

NETMASK=255.255.255.0

GATEWAY=192.168.1.254

ONBOOT=yes

METRIC=10

MII_NOT_SUPPORTED=no

USERCTL=yes

DNS1=127.0.0.1

DNS2=192.168.1.254

RESOLV_MODS=no

IPV6INIT=no

IPV6TO4INIT=no

ACCOUNTING=no

5. Следующий этап дать знать нашим клиентам для которых наш сервер является шлюзом, чтоб они использовали в качестве dns сервера его. Т. е. dhcpd должен отправлять клиентам адресс dns 10.10.7.1. Открываем файл предварительно настроенного dhcpd сервера и пишем наш шлюз первым dns скрвером. Получаем примерно следующее.

cat /etc/dhcpd.conf


#ddns-update-style none;

subnet 10.10.7.0 netmask 255.255.255.224 {

# default gateway

option routers 10.10.7.1;

option subnet-mask 255.255.255.224;

# option domain-name «domain.org»;

######razdaem adress ntp server ua.pool.ntp.org

option ntp-servers 82.207.71.5;

# Seting up an ip address is better here

option domain-name-servers 10.10.7.1; ####

# option nis-domain «domain.org»;

range dynamic-bootp 10.10.7.2 10.10.7.25;

default-lease-time 21600;

max-lease-time 43200;

}

# we want the nameserver to appear at a fixed address

host mustang {

hardware ethernet 00:1B:FC:84:D3:AF;

fixed-address 10.10.7.12;

}

и.т.д.

6. Далее перезапускаем, для надёжности, и сеть и dhcpd и bind.

#/etc/init.d/network restart

#/etc/init.d/dhcpd restart

#/etc/init.d/named restart

и затем пробуем результаты труда:

Первый запрос

[root@localhost log]# dig zoom.skynet.net.ua


; DiG 9.7.0-P2 zoom.skynet.net.ua

;; global options: +cmd

;; Got answer:

;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 46366

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 0

;; QUESTION SECTION:

;zoom.skynet.net.ua. IN A

;; ANSWER SECTION:

zoom.skynet.net.ua. 3600 IN A 193.160.224.18

;; AUTHORITY SECTION:

ua. 172799 IN NS ns-ua.ripe.net.

ua. 172799 IN NS cd1.ns.ua.

ua. 172799 IN NS he1.ns.ua.

ua. 172799 IN NS ya1.ns.ua.

ua. 172799 IN NS pch.ns.ua.

ua. 172799 IN NS sns-pb.isc.org.

ua. 172799 IN NS sunic.sunet.se.

ua. 172799 IN NS ho1.ns.ua.

;; Query time: 2489 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Nov 4 11:52:07 2010

;; MSG SIZE rcvd: 229

Второй запрос

[root@localhost log]# dig zoom.skynet.net.ua


; DiG 9.7.0-P2 zoom.skynet.net.ua

;; global options: +cmd

;; Got answer:

;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 63862

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 0

;; QUESTION SECTION:

;zoom.skynet.net.ua. IN A

;; ANSWER SECTION:

zoom.skynet.net.ua. 3599 IN A 193.160.224.18

;; AUTHORITY SECTION:

ua. 172798 IN NS cd1.ns.ua.

ua. 172798 IN NS ns-ua.ripe.net.

ua. 172798 IN NS pch.ns.ua.

ua. 172798 IN NS sns-pb.isc.org.

ua. 172798 IN NS ho1.ns.ua.

ua. 172798 IN NS sunic.sunet.se.

ua. 172798 IN NS ya1.ns.ua.

ua. 172798 IN NS he1.ns.ua.

; Query time: 2 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Nov 4 11:52:08 2010

;; MSG SIZE rcvd: 229

Вроде ничего не забыл. Кто может, хочет и знает буду рад любому добавлению или исправлению.

источник
  • 0
  • Diesel
  • 07 ноября 2010, 19:43
  • add twitter 

Комментарии (4) Вконтакте (0) facebook (0)

Комментарии (4)

rss свернуть / развернуть

Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.