Конфигуриране на DNS сървър Bind9 (Създаване на локална зона на домейн)

Днес е невъзможно да си представим интернет без DNS. Въпреки това, много администратори не отделят време да конфигурират тази услуга на своите сървъри, така че не използват цялата й мощност, дори една трета.

И така, планове за днес!

  1. Настройка на главната зона.
  2. Свързване на зони в slave.
  3. Всеки с вкуса си. Конфигурираме параметрите в зависимост от адреса на клиента, от който е дошла заявката.
  4. Свързваме външен DNS филтър.

Въведение

Когато получих работа, броят на услугите в нашата мрежа можеше да се преброи на пръстите на едната ръка. С течение на времето броят на услугите нараства. Имаше само един обслужващ DNS сървър и действаше като главен за една зона (нека я наречем xak.ru). Той просто препрати всички други заявки към DNS сървъра на Google (8.8.8.8). И почти забравих да добавя: този сървър беше виртуален. Тогава един ден сървърът се срина физически. След смяната системата беше вдигната, виртуализацията беше прецакана. Инсталирахме току-що инсталиран Debian и BIND 9 към него. Присвоихме същия IP като DNS сървъра преди срива. Настройките бяха възстановени от архива. След успешен стартзапочна да мисли как да "затегне болтовете".

Успоредно с тази работа беше инсталиран хостинг, който държеше зоната (например) xaker.ru. Разбира се, централният DNS трябва да знае за това или още по-добре да бъде подчинен DNS сървър за тази зона. Освен това се наложи пренасочване на DNS заявки от централния сървър към пренасочвателя, в зависимост от това от коя мрежа е дошла заявката. Това беше направено с цел свързване на външни DNS филтри, но не за всеки. Но само за тези, които имат нужда, а именно образователни градски мрежи – територии образователни институции! Всичко това ще бъде обсъдено по-долу.

Малко теория

Ако искате да се запознаете с "новия" BIND, тогава препоръчвам да го прочетете. Накратко: версия 9 беше последната, след версия 10 правата се прехвърлят на общността и този софтуер сега е известен като Bundy.

Бърза инсталация или отново горе-долу същото

И така, как да инсталирате BIND 9 на Debian / Ubuntu, има много материали в мрежата. Така че нека бързо да преминем през този момент, без да навлизаме в подробности. Първо трябва да инсталирате BIND 9 на вашата система. За потребителите на MS Windows има версия на BIND 9 за тяхната платформа.

$ sudo apt инсталирате bind9

За други дистрибуции има много ръководства за изграждане от изходни кодове в Интернет, вземете го по-бързо, пренапишете го в тетрадки, докато новият „супер полезен“ закон обхване целия интернет или докато не ви се карат за ходене или посещение на сайт със забранена литература. 😉

След инсталирането отидете в директорията / etc / bind9 / и вижте основния конфигурационен файл named.conf там, останалите файлове named.conf са свързани вътре. *. Ще пропуснем как да настроим главната зона, тъй като информацията в мрежата е представена много подробно. Добавете реда към файла named.conf

Включете "/etc/bind/named.conf.acl";

тогава ще включим нов файл в конфигурацията за правилата на подмрежата. След това създайте файла /etc/bind/named.conf.acl и добавете правилата:

Acl "lan" (192.168.181.0/24;); acl "do" (10.0.0.0/24; 192.168.253.0/24;); acl "srv" (192.168.254.0/24;); acl "всички" (10.10.0.0/16;); acl "dou" (192.168.201.0/24; 192.168.202.0/24; 192.168.203.0/24; 192.168.204.0/24; 192.168.205.0/24;); acl "училище" (172.16.0.0/24;);

Тук разделихме мрежите на групи за по-нататъшна обработка. Преди да продължим, ще изясня една точка. За правилна обработка на зоните е необходимо да добавите всички зони към всяка група правила. Можете да направите това в един файл или да преместите настройките на зоната отделен файли след това просто включете на правилните места. И така, правим промени във файла /etc/bind/named.conf.local:

Преглед на "edu" (match-clients (school;); рекурсия да; разрешаване на заявка (school;); пренасочващи (77.88.8.7;); зона "xaker.ru" (тип master; файл "/ etc / bind / xaker) .ru_loc ";); зона" 254.168.192.in-addr.arpa. "(type master; file" /etc/bind/xaker.rev ";); zone" zone2.ru "(type slave; file" / etc / bind / db.zone2.ru "; masters (192.168.254.5;);););

Тук обозначаваме групата, с която BIND ще работи. Ние добавяме клиенти тук от правилата, които дефинирахме по-горе. Ние определяме сървър нагоре по веригата, към който ще се препращат заявки от мрежи, съгласно описаните правила. Това е единствената група адреси на училище тук. DNS сървърът на Yandex, който филтрира „лошо“ съдържание, беше зададен като превъзходен DNS. Други DNS услуги като SkyDNS могат да се използват по подобен начин.

Продължаването е достъпно само за абонати

Вариант 1. Абонирайте се за "Хакер", за да прочетете всички материали в сайта

Абонаментът ще ви позволи да прочетете ВСИЧКИ платени материалисайт. Приемаме плащане банкови карти, електронни пари и преводи от сметки на мобилни оператори.

Редактиране на файла /etc/resolv.conf: първият DNS сървър е обратна връзка към вашия локален DNS сървър (127.0.0.1), вторият е най-близкият до вас DNS сървър (обикновено предоставян от вашия интернет доставчик), списък на останалите на DNS по ваша преценка (те са по избор). Файлът resolv.conf ни казва, че ако е неуспешен DNS заявкакъм вашия сървър (127.0.0.1), заявката автоматично ще бъде пренасочена към втория DNS сървър в списъка и т.н.

> ee /etc/resolv.conf домейн your.domen nameserver 127.0.0.1 #DNS вашият ISP сървър за имена x.x.x.x сървър за имена x.x.x.x

Резолвере набор от подпрограми в библиотеката C, които осигуряват достъп до вътрешната. Какво е DNS (система за имена на домейни)? DNS предоставя възможност за преобразуване на символни имена на хостове в IP адреси и обратно в символни имена). Конфигурационен файл /etc/resolv.confтъй като резолверът съдържа информация, която първо се чете от подпрограмите на резолвера, извикани от процес. Този файл е проектиран да бъде четим от човека и съдържа списък с ключови думи и стойности, които предоставят различна информация на разделителя.

В нормално конфигурирана система този файлненужно: заявките ще се обработват от сървъра на локалния хост, името на домейна се определя от името на машината, а пътят за търсене на машината в домейна се изгражда от името на домейна.

Опции за конфигуриране:

Адрес на интернет сървър за имена (в нотация xxx.xxx.xxx.xxx), който ще обработва заявки от преобразувателя. Сървърите за имена могат да бъдат максимум 3(другите се игнорират), по един на всеки ред. Ако са посочени няколко сървъра, библиотеката на резолвера ги анкетира в реда, в който са изброени. Ако няма записи за сървър на имена, по подразбиране е сървърът за имена на локалната машина. (Използваният алгоритъм се опитва да се свърже със сървъра за имена и ако заявката не е била обработена след определен период от време, се опитва да се свърже с следващия сървъримена и така нататък, докато се обработи целият списък със сървъри, след което повторете процедурата, докато се достигне максималният брой повторения).

Име на локален домейн. Повечето заявки за имена на машини в този домейн ще могат да използват само кратки имена, без да посочват име на домейн. Ако няма записи на домейн, тогава домейнът се определя от името на локалната машина, което се връща от функцията gethostname (); частта на домейна на името е всичко, което следва първата точка `.". Накрая, ако името на хоста не съдържа част от домейна, се присвоява основният домейн.

Списък за търсене по имена на машини. Списъкът обикновено се определя от името на локалния домейн; по подразбиране съдържа само името на локалния домейн. В списъка могат да бъдат посочени няколко домейна, които трябва да следват ключовата дума за търсене и да бъдат отделени един от друг с интервали или табулатори. В повечето случаи, ако заявката до преобразувателя посочва кратко имемашина (без част от домейн), след това всеки домейн от даден списъкдокато се намери пълно съвпадащо име на машината. забележи това този процесможе да бъде бавен и да генерира значителен мрежов трафик, ако сървърите, обслужващи изброените домейни, не са локални и заявките ще върнат грешка за изчакване, ако сървърът за един от домейните не е наличен. Списък в този моментограничен до шест домейна с максимална дължина от 256 знака.

Позволява сортиране на адреси, върнати от gethostbyname (). Опцията за сортиране се посочва с помощта на двойка IP адрес/мрежова маска. Мрежовата маска не е задължителна, текущата мрежова маска се използва по подразбиране. Двойките IP адрес и незадължителна мрежова маска са разделени с наклонени черти. Могат да се задават до 10 чифта. пример: sortlist 130.155.160.0/255.255.240.0 130.155.0.0

Тази опция позволява модификацията на определени променливи на резолвера. Синтаксисът е:

Опция за опции ... където опцията може да бъде една от следните стойности: debug --- задава RES_DEBUG на _res.options. ndots: n --- задава прага за броя точки, които трябва да бъдат в името, дадено в res_query (вижте резолвер (@ [защитен с имейл])) преди да бъде създадена първоначалната абсолютна заявка. По подразбиране n `` 1 "" означава, че ако има поне една точка в името, то ще се опита да третира това име като абсолютно, преди да добави елементи от списъка за търсене към него.

Домейнът и ключовите думи за търсене се изключват взаимно. Ако тези думи са дадени и двете, тогава последната ще работи.

Ключовата дума и стойността трябва да са на един и същи ред, а освен това ключовата дума (например сървър на имена) трябва да е първата на реда. Стойността трябва да бъде отделена от ключова думапространство.

Една от най-важните услуги в специален сървър или VDS несъмнено е сървърът за имена на домейни. Една от реализациите на DNS сървъра в Linux е пакетът bind. ще опиша лесна инсталацияи настройка на пакета за свързване на CentOS 4.x linux. Макар и практически непроменена, тази конфигурация може да се използва за всички дистрибуции на Linux.

Инсталирането на bind на сървър е много лесно. Влизаме в конзолата и пишем:

yum инсталирайте bind-chroot caching-nameserver

В резултат на това имаме инсталиран DNS сървър в chroot среда и той е готов да работи като кеширащ сървър. Сървърът се стартира с командата:

Попитайте защо named, когато пакетът се нарича bind? Всичко е правилно. Няма грешка. Просто трябва да запомните:

  • инсталираме DNS сървър;
  • софтуерният пакет се нарича BIND;
  • услугата на сървъра, която е инсталирана в резултат на инсталирането на пакета BIND, е именувана.
  • След това трябва да се уверим, че сървърните услуги използват нашия DNS сървър. За да направите това, отворете файла /etc/resolv.conf в любимия си редактор и добавете следното в първия ред: сървър на имена 127.0.0.1Запазваме и имаме работещ кеширащ сървър за имена, но пълен с дупки. за да увеличите сигурността на сървъра, отворете файла /etc/named.conf в нашия любим редактор и направете промени в секцията с опции:

    опции (директория "/ var / named";
    dump-file "/var/named/data/cache_dump.db";
    статистически файл "/var/named/data/named_stats.txt";
    версия "няма информация за версията";
    разрешаване-прехвърляне (няма;);
    слушане (127.0.0.1; 111.222.333.444;);
    разрешаване на заявка (localhost; 127.0.0.1/8; 111.222.333.444;);
    разрешаване-рекурсия (localhost; 127.0.0.1/8; 111.222.333.444;);
    };

    Малко повече подробности за настройките:
    версия „няма информация за версията“; - когато поискате версията на сървъра, дайте „без информация за версията“. Въпреки че можете да напишете всичко в кавички.
    разрешаване-прехвърляне (няма;); - не разрешавайте на никого да прехвърля зоната.
    порт за слушане 53 (127.0.0.1; 111.222.333.444;); - приемаме заявки само от loopback интерфейса 127.0.0.1 и от адреса 111.222.333.444 - ip адреса на нашия сървър.
    разрешаване-рекурсия (127.0.0.1; 111.222.333.444;); - разрешаване на рекурсивни заявки от loopback интерфейса 127.0.0.1 и ip адреса на нашия сървър.
    разрешаване на заявка (localhost; 127.0.0.1/8; 111.222.333.444;); - разрешаване на заявки към сървъра от loopback интерфейса 127.0.0.1 и ip адреса на нашия сървър.

    Запазете и рестартирайте свързването:

    След такива настройки сигурността на нашия сървър ще се подобри значително. Искам веднага да кажа, че не всичко, което може да се направи, е описано, например, докато не бъде засегнат въпросът за втория DNS сървър и прехвърлянето на зони към него, създаването на зони за домейни и много други. Показва се основната настройка.

    Страж

    Строителен блог ще ви помогне с изграждането на вашия дом.

    Добро време, читатели. Продължавайки теоретичния материал за, в настоящата статия искам да разгледам практически пример инсталации и настройкиразличен BIND сървърни конфигурации.В статията ще опиша конфигуриране на DNS кешаи пълен DNS главен сървър... Ще започна описанието с общи концепции и необходими стъпки за организиране на всякакви DNS сървъри.

    Главна информация

    На имее демон, който е част от пакет bind9и битие сървър за имена на домейни. Наречен демонможе да реализира функциите на сървъри от всякакъв тип: главен, подчинен, кеш... В горната диаграма се опитах да покажа основната Как работи BIND DNS сървърът... Двоичният файл, който върши по-голямата част от работата, се намира в / usr / sbin / име... Той взема настройки от основен конфигурационен файл, наречен named.confи се намира в директорията / etc / обвързване. В основната конфигурацияописано работна директория на сървъра, това често е директория / var / cache / bindв която лъжа файлове с описание на зонатаи други сервизни файлове. Кореспонденция имена на зонии файл с описание на зонатапита зона разделс параметър файл. Зонна секциясъщо така определя вида на отговорността този сървърза зона (главна, подчинена и т.н.), а също така дефинира специални параметри за текущата зона (например на кой интерфейс да се обработват заявки за текущата зона). Във файлове с описание на зонатасъдържа параметри на зоната и записи на ресурси (пътищата, посочени в този параграф, може да се различават, зависи от Linux дистрибуцияили параметри).

    Това обща схемаработа, която ще ви помогне да не се объркате в бъдеще, когато обмисляте конкретни конфигурации.

    Форматът на конфигурационния файл за 4-та версия на програмата се различава от този, който се използва в осмата и деветата версии BIND... Имайки предвид, че с нетърпение очаквам да инсталирам нов DNSсървър и Стара версияНе виждам причина да го поставя, затова ще разгледам конфигурацията на новата версия.

    Първоначални данни

    За правилна работа DNS е необходим за това. DNS в тази статия ще бъде конфигуриран в дистрибуцията на Debian, ще бъдат отбелязани и спецификите на други дистрибуции. Мрежовата конфигурация на стойката е както следва:

    Dns: ~ # cat / etc / network / interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.152 netmask 255.255.255.0 gateway 10.0.0.254 auto eth1 iface1 iface eth0 inet static address 10.0.0.152 netmask 255.255.255.0 gateway 10.0.0.254 auto eth1 iface1 iface 1.5 static.5

    където 10.0.0.152/24 - външен интерфейс (подмрежа, разпределена от доставчика), 192.168.1.1/24 - вътрешна (локална мрежа). Персонализираната зона ще бъде наречена example.com. В примера с подчинен сървър, вторичният сървър ще бъде разположен на IP 10.0.0.191 .

    Инсталиране на BIND9

    За да работи DNS сървърът, трябва bind9 (в някои дистрибуции - обвързвам ). Както е отбелязано на диаграмата - от основния конфигурационен файл BINDе файлът named.conf(този файл може да бъде поставен в директорията / и т.н, понякога в / etc / обвързване).

    Параметри на named.conf (синтаксис)

    Синтаксис на Named.confсе придържа към следните правила:

    IP адреси- IP списъкът трябва да бъде разделен с ";" , възможно е да посочите подмрежа във формат 192.168.1.1/24 или 192.168.1.1/255.255.255.0, (за да изключите IP, трябва да поставите знак!), възможно е да посочите имена "всяко", "няма", "localhost"в двойни кавички.

    Коментари (1)- редове, започващи с #, // и затворени в / * и * / се считат за коментари.

    V файлове с описание на зоната -символ @е "променлива", съхраняваща името на зоната, посочена в конфигурационния файл named.confили в директивата @ $ ПРОИЗХОДтекущото описание на зоната.

    Всеки завършен низпараметрите трябва да завършват със знак; ...

    Acl раздел

    ACL (списък за контрол на достъпа)- ви позволява да зададете списък с имена на мрежи. Формат на раздела: acl "име_на_мрежа" (ip; IP; IP;);

    Раздел с опции

    Раздел с опциипита глобални параметриконфигурационен файл, управляващ всички зони. Този раздел има формат: опции (clause_Options_operators);... Опциите могат да бъдат "вложени" в Зонна секция, като по този начин той отменя глобалните опции. Често се използва изявления за опции:

    • разреши-заявка ( ip_list} - Позволява отговори на заявки само от ip_list... Ако липсва, сървърът отговаря на всички заявки.
    • разреши рекурсия ( ip_list} - Рекурсивни заявки ще се изпълняват при заявки от ip_list. За останалото - итеративно. Ако параметърът не е посочен, сървърът изпълнява рекурсивни заявки за всички мрежи.
    • разрешаване на прехвърляне ( ip_list} - Показва списъка на сървърите, на които е разрешено да вземат зоната от сървъра (по принцип подчинените сървъри са посочени тук)
    • директория / път / към / работа / реж- посочва абсолютен пъткъм работната директория на сървъра. Този оператор е валиден само в секцията с опции.
    • спедитори ( ip порт, ip порт ...} - посочва адресите на хостовете и, ако е необходимо, портовете, към които да се пренасочват заявките (обикновено тук са посочени DNS доставчиците на интернет доставчика).
    • напред САМО или напред ПЪРВО - параметър първопоказва, че DNS сървърът ще се опита да разреши имена, използвайки DNS сървърите, посочени в параметъра за пренасочване, и само ако разделянето на имена, използващи тези сървъри, не успее, той ще се опита да разреши името самостоятелно.
    • уведомете ДА | НЕ - ДА- уведомява подчинения сървър за промени в зоната, НЕ- не уведомявайте.
    • рекурсия ДА | НЕ - ДА- изпълнява рекурсивни заявки, ако е поискано от клиента, НЕ- не се изпълняват (само итеративни заявки). Ако отговорът бъде намерен в кеша, тогава той се връща от кеша. (може да се използва само в секцията Опции)

    Зонна секция

    Определя описанието на зоната(ите). Формат на раздела: зона ( зонови_ключови_оператори}; Операторикоито се използват най-често:

    • разрешаване на актуализация ( ip_list} - показва системи, на които е разрешено динамично да актуализират тази зона.
    • файл "Име на файл "- указва пътя на файла с опции за зона (трябва да се намира в директорията, посочена в секцията с опции от оператора на директорията)
    • майстори ( ip_list} -показва списък с главни сървъри. (важи само в подчинените зони)
    • Тип " тип_зона "- показва типа зона, описана в текущия раздел, zone_type може да приема следните стойности:
      • напред- обозначава зона за пренасочване, която пренасочва заявките, които идват в тази зона.
      • намек- посочва спомагателна зона (този тип съдържа информация за root сървъри, с които сървърът ще се свърже, ако не може да намери отговор в кеша)
      • майстор- показва да работи като главен сървър за текущата зона.
      • роб- показва да работи като подчинен сървър за текущата зона.

    Допълнителни опции за конфигурация

    Стойности за време във файлове на зонипо подразбиране се посочва в секунди, освен ако една от следните букви не стои зад тях: S - секунди, M - минути, H - часове, D - дни, W - седмици. Съответно влизането 2h20m5sще има стойност от 2 часа 20 минути 5 секунди и съответства на 8405 секунди.

    Всяко име/запис на хост, който не завършва с точкаброи не FQDNиме и ще бъде допълнено с името на текущата зона. Например записът на домейн във файла на зоната examle.com ще се разшири до името на FQDN domen.examle.com. ...

    V BIND конфигурационни файловеможе да се приложи следното директиви:

    • $ TTL- дефинира TTL по подразбиране за всички записи в текущата зона.
    • $ ПРОИЗХОД- променя името на зоната от посоченото във файла named.conf. В същото време обхватът на тази директива не се простира "по-горе" (тоест, ако файлът е включен от директивата $ INCLUDE, тогава обхватът на $ ORIGN не се прилага за родителя)
    • $ ВКЛЮЧВА- включва посочен файлкато част от файла на зоната.

    Бих искал да опиша отделно параметър за разрешаване на прехвърляне (10.0.0.191;);. Този параметърописва сървърите, на които е разрешено да изтеглят копие на зоната - т.нар подчинен сървър... В следващия пример ще разбием настройката подчинен DNS.

    За да работи правилно регистрацията, трябва да създадете подходяща директория и да зададете необходимите права:

    Dns: ~ # mkdir / var / log / bind / dns: ~ # chmod 744 / var / log / bind / dns: ~ # ps aux | grep с име bind 4298 0,0 3,4 46792 13272? Ssl Jul05 0:00 / usr / sbin / named -u bind root 4815 0.0 0.1 3304 772 pts / 4 S + 18:19 0:00 grep named dns: ~ # chown bind / var / log / bind / dns: ~ # ls -ld / var / log / bind / drwxr - r-- 2 bind root 4096 6 юли 18:18 / var / log / bind /

    Dns: ~ # cat /var/cache/bind/example.com $ TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601; сериен 8H; опресняване 2H; повторен опит 2W; изтичане 1D); минимум @ IN NS ns.example.com. @ IN NS ns2.example.com. @ IN A 10.0.0.152 @ IN MX 5 mx.example.com. ns IN A 10.0.0.152 ns2 IN A 10.0.0.191 mx IN A 10.0.0.152 www IN CNAME @

    както и в домейна in-addr.arpa.

    Dns: ~ # cat /var/cache/bind/0.0.10.in-addr.arpa $ TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Сериен 3600; Обновяване 900; Повторен опит 3600000; Изтичане 3600); Минимум IN NS ns.examle.com. В NS ns2.example.com. 152 В PTR examle.com. 191 IN PTR ns.example.com. * В PTR examle.com. dns: ~ # cat /var/cache/bind/1.168.192.in-addr.arpa $ TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Сериен 3600; Обновяване 900; Повторен опит 3600000; Изтичане 3600); Минимум IN NS ns.examle.com. В NS ns2.example.com. * В PTR examle.com.

    Нашата мрежа е малка, предполага се, че има много малко машини в мрежата. Всички мрежови услуги се хостват на един и същ хост example.com., следователно и двете главни DNS (ns.example.com.) и пощенски сървър(mx.example.com.) сочи към една машина (10.0.0.152).

    Вторичен (подчинен) авторитетен сървър за зоната

    Главна функция подчинен сървър - автоматично синхронизиранеописания на зоната с главния сървър. Тази задачарегламентирано от документ RFC 1034В гл 4.3.5. Според този документПрепоръчва се обмен на данни между сървъри чрез AXFR заявка. За тази заявка цялата зона трябва да бъде предадена в една TCP връзка (RFC 1035).

    Същия начин, подчинен DNS сървърсподеля натоварването с главния сървър или поема цялото натоварване в случай на повреда на първия сървър.

    Преди да пристъпите към настройка на подчинен DNS сървър, трябва да проверите дали можете ръчно да извлечете зоната от вторичния сървър, като използвате следната команда:

    [защитен с имейл]: ~ # dig @ 10.0.0.152 example.com. axfr;<<>> DiG 9.7.3<<>> @ 10.0.0.152 example.com. axfr; (намерен е 1 сървър) ;; глобални опции: + cmd example.com. 259200 В SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 example.com. 259200 IN NS ns.example.com. example.com. 259200 В NS ns2.example.com. example.com. 259200 В 10.0.0.152 example.com. 259200 В MX 5 mx.example.com. mx.example.com. 259200 В 10.0.0.152 ns.example.com. 259200 В 10.0.0.152 ns2.example.com. 259200 В 10.0.0.191 www.example.com. 259200 В CNAME example.com. example.com. 259200 В SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 ;; Време за заявка: 14 msec ;; СЪРВЪР: 10.0.0.152 # 53 (10.0.0.152) ;; КОГА: пт, 8 юли 15:33:54 2011 г. ;; XFR размер: 11 записа (съобщения 1, байта 258)

    1. копие конфигурационен файл с име.confот главния сървър;
    2. Сменете тип параметърмайсторНа тип роб
    3. Параметър за разрешаване на прехвърляне (10.0.0.191;); замениНа masters (10.0.0.152;);в онези области, за които ще бъде второстепенно;
    4. Изтрийте зони, които текущият сървър няма да обслужва, включително основния, ако подчинения няма да отговори на рекурсивни заявки;
    5. Създаване на директорииза регистрационни файлове, както в предишния пример.

    И така, получаваме конфигурацията на подчинения сървър:

    [защитен с имейл]: ~ # cat /etc/bind/named.conf опции (директория "/ var / cache / bind"; разреши-заявка (всякак); // отговаря на заявки от всички интерфейси рекурсия не; // деактивиране на рекурсивните заявки за удостоверяване- nxdomain no; // за съвместимост с RFC1035 listen-on-v6 (няма;); // IPv6 не се нуждаем от версия "unknown"; // не показвайте версията на DNS сървъра в отговорите); // описаните по-долу зони определят сървъра като авторитетен за loopback // интерфейси, както и за излъчващи зони (съгласно RFC 1912) зона "localhost" (тип master; файл "localhost";); зона "127.in-addr.arpa" (тип master; файл "127.in-addr.arpa";); зона "0.in-addr.arpa" (тип master; файл "0.in-addr.arpa";); зона "255.in-addr.arpa" (тип master; файл "255.in-addr.arpa";); // описание на зоната на основната зона "example.com" (тип slave; файл "example.com"; masters (10.0.0.152;);); // описание на зоната на обратната зона "0.0.10.in-addr.arpa" (тип slave; файл "0.0.10.in-addr.arpa"; masters (10.0.0.152;);); // записване на настройките за регистриране (канал "misc" (файл "/var/log/bind/misc.log" версии 4 размер 4m; време за печат ДА; степен на печат ДА; категория на печат ДА;); канал "заявка" (файл "/var/log/bind/query.log" версии 4 размер 4m; време за печат ДА; сериозност на печат НЕ; категория на печат НЕ;); категория по подразбиране ("misc";); заявки за категории ("заявка ";););

    след рестартиране на нашия подчинен сървърще копира безопасно информацията, от която се нуждае, от главния сървър, което ще бъде показано от наличието на файлове в директорията:

    [защитен с имейл]: ~ # ls -la / var / cache / bind / общо 28 drwxrwxr-x 2 root bind 4096 8 юли 18:47. drwxr-xr-x 10 root root 4096 8 юли 15:17 .. -rw-r - r-- 1 обвързване бинд 416 юли 8 18:32 0.0.10.in-addr.arpa ...... - rw -r - r-- 1 свързване свързване 455 юли 8 18:32 example.com ........

    По принцип / stroallow-transfer (pngp подчинен сървърне може да съхранява копие на зоната самостоятелно файлова система... Това копие е необходимо само в момента на стартиране на DNS. Наличието на копие на зоната във файловата система може да ви спаси от срив, ако главният сървър не е наличен по време на стартиране на подчинен DNS. Ако не посочите опцията за файл в секцията зона, не се прави копие.

    Конфигуриране на netfilter () за DNS BIND

    Всъщност, като настроите сървъра, би било хубаво да го защитите. Знаем, че сървърът работи на порт 53 / udp. След като прочетете статията за това и след като се запознаете, можете да създадете правила за филтриране на мрежовия трафик:

    Dns ~ # iptables-save # моделни правила iptables за DNS * филтър: INPUT DROP: FORWARD DROP: OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate СВЪРЗАН, ESTABLISHED -j ПРИЕМАНЕ -A INPUT -m conntrack -j НЕВАЛИДЕН DROP # позволява LAN достъп до DNS сървър: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 53 -m conntrack --ctstate НОВО -j ACCEPT -A OUTPUT - o lo -j ПРИЕМА -A ИЗХОД -p icmp -j ПРИЕМА -A ИЗХОД -p udp -m udp --sport 32768: 61000 -j ПРИЕМА -A ИЗХОД -p tcp -m tcp --sport 32768: 61000 -A ИЗХОД -m conntrack --ctstate СВЪРЗАН, ESTABLISHED -j ПРИЕМА # разрешаване на достъп до DNS сървър за извършване на изходящи заявки -A ИЗХОД -p udp -m udp --dport 53 -m conntrack --ctstate НОВО -j ПРИЕМА ЗАДАВАНЕ

    Това е типичен пример! За да зададете правила на iptables за вашите задачи и конфигурация на мрежата, трябва да разберете как работи netfilter в Linux, като прочетете горните статии.

    Отстраняване на неизправности

    Основният източник за идентифициране на проблеми с DNS е. Ето пример за грешки при стартиране, при които сгреших с пътя към файл зона на root сървър:

    5 юли 18:12:43 dns-сървър с име: стартиране на BIND 9.7.3 -u bind 5 юли 18:12:43 dns-сървър с име: изграден с "--prefix = / usr" "--mandir = / usr / share / man "" --infodir = / usr / share / info "" --sysconfdir = / etc / bind "" --localstatedir = / var "" --enable-threads "" --enable-largefile "" - -with-libtool "" --enable-shared "" --enable-static "" --with-openssl = / usr "" --with-gssapi = / usr "" --with-gnu-ld "" - -with-dlz-postgres = не "" --with-dlz-mysql = не "" --with-dlz-bdb = да "" --with-dlz-filesystem = да "" --with-dlz-ldap = да "" --with-dlz-stub = да "" --with-geoip = / usr "" --enable-ipv6 "" CFLAGS = -fno-strict-aliasing -DDIG_SIGCHASE -O2 "" LDFLAGS = "" CPPFLAGS = "5 юли 18:12:43 dns-server named: коригирано ограничение за отворени файлове от 1024 до 1048576 юли 5 18:12:43 dns-server named: намерен 1 CPU, използвайки 1 работна нишка, 5 юли 18:12: 43 dns-server named: използва до 4096 гнезда 5 юли 18:12:43 dns-server named: зареждане на конфигурация от "/etc/bind/named.conf" 5 юли 18:12:43 dns-server named: изградено четене -в доверени ключове от файл "/ etc / bind / b ind.keys "Jul 5 18:12:43 dns-server named: използвайки UDP / IPv4 порт по подразбиране: 5 юли 18:12:43 dns-server named: използвайки UDP / IPv6 порт по подразбиране обхват: 5 юли 18:12: 43 dns-server named: слушане на IPv4 интерфейс lo, 127.0.0.1 # 53 юли 5 18:12:43 dns-server named: слушане на IPv4 интерфейс eth1, 192.168.1.1 # 53 юли 5 18:12:43 dns named: генериране на ключ за сесия за динамичен DNS юли 5 18:12:43 dns-server named: Не можех конфигуриране на основни съвети от "/etc/bind/db.root": файлът не е намерен 5 юли 18:12:43 dns-server named: конфигурация за зареждане: файлът не е намерен # файлът не е намерен 5 юли 18:12:43 dns-server named: излизане (поради фатална грешка) 5 юли 18:15:05 dns-server named: стартиране на BIND 9.7.3 -u bind 5 юли 18:15:05 dns-server named: изграден с "--prefix = / usr "" --mandir = / usr / share / man "" --infodir = / usr / share / info "" --sysconfdir = / etc / bind "" --localstatedir = / var "" --enable-threads " "--enable-largefile" "--with-libtool" "--enable-shared" "--enable-static" "--with-openssl = / usr" "--with-gssapi = / usr" "- -with-gnu-ld "" --with-dlz-postgres = не "" --with-dlz-mysql = не "" --with-dlz-bdb = да "" --with-dlz-filesystem = да "" --with-dlz-ldap = да "" --with-dlz-stub = да "" --with-geoip = / usr "" --enable-ipv6 "" CFLAGS = -fno-strict-aliasing - DDIG_SIGCHASE -O2 "" LDFLAGS = "" CPPFLAGS = "5 юли 18:15:05 dns-server named: коригирано ограничение за отворени файлове от 1024 до 1048576 юли 5 18:15:05 dns-server с име: намерен 1 CPU, използващ 1 работна нишка 5 юли 18:15:05 dns-server named: използва до 4096 гнезда 5 юли 18:15:05 dns-server named: зареждане на конфигурация от "/etc/bind/named.conf" 5 юли 18:15:05 dns-server named: използвайки UDP по подразбиране / Диапазон на портовете за IPv4: 5 юли 18:15:05 dns-server наименован: използвайки UDP по подразбиране / диапазон на IPv6 порт: 5 юли 18:15:05 dns-server named: слушане на IPv4 интерфейс lo, 127.0.0.1 # 53 5 юли 18:15:05 dns-server named: слушане на IPv4 интерфейс eth1, 192.168.1.1 # 53 юли 5 18:15:05 dns-server с име: автоматично празна зона: 254.169.IN-ADDR.ARPA 5 юли 18:15: 05 dns-сървър с име: автоматично празна зона: 2.0.192.IN-ADDR.ARPA 5 юли 18:15:05 dns-сървър с име: автоматично празна зона: 100.51.198.IN-ADDR.ARPA 5 юли 18:15: 05 dns-сървър с име: автоматично празна зона: 113.0.203.IN-ADDR.ARPA 5 юли 18:15:05 dns-сървър с име: автоматично празна зона: 255.255.255.255.IN-ADDR.ARPA 5 юли 18:15: 05 dns-сървър с име: автоматично празна зона: 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.0.0.IP6.ARPA 5 юли 18 :15 : 05 dns-сървър с име: автоматично празна зона: 1.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.0.IP6.ARPA 5 юли 18:15:05 dns-сървър с име : автоматично празна зона : DFIP6.ARPA 5 юли 18:15:05 dns-сървър с име: автоматично празна зона: 8.EFIP6.ARPA 5 юли 18:15:05 dns-сървър с име: автоматично празна зона: 9.EFIP6.ARPA 5 юли 18:15:05 dns-сървър име: автоматично празна зона: AEFIP6.ARPA 5 юли 18:15:05 dns-сървър име: автоматично празна зона: BEFIP6.ARPA 5 юли 18:15:05 dns-сървър име: автоматично празна зона: 8. BD0.1.0.0.2.IP6.ARPA 5 юли 18:15:05 dns-сървър с име: зона 0.in-addr.arpa/IN: зареден сериен 1 юли 5 18:15:05 dns-сървър с име: зона 127 . in-addr.arpa / IN: зареден сериен 1 юли 5 18:15:05 dns-сървър с име: зона 255.in-addr.arpa/IN: зареден сериен 1 юли 5 18:15:05 dns-сървър с име: зона localhost / IN: зареден сериен 2 юли 5 18:15:05 dns-server named: run # стартирането беше успешно

    Отличен диагностичен инструмент е.

    Резюме

    В тази статия описах как да настроите основни конфигурации на BIND DNS сървър. Целта на тази статия беше да даде представа за това как BIND сървърът работи на UNIX. На практика не засегнах проблемите със сигурността на DNS и не засегнах такива специфични настройки като работата на сървъра в граничния режим, когато в различни мрежираздадени различна информацияотносно зоната(ите). За по-дълбоко разбиране ще дам списък допълнителни източници, в който, надявам се, ще бъде възможно да се получи необходимата информация. На това сложих точка. До следващия път.

    Система за имена на домейни: http://citforum.ru/internet/dns/khramtsov/
    RFC 1034– Имена на домейни – Концепции и съоръжения: http://tools.ietf.org/html/rfc1034
    RFC 1035– Имена на домейни – Внедряване и спецификация: http://tools.ietf.org/html/rfc1035
    RFC 1537- Често срещани грешки при конфигуриране на файла с данни на DNS: http://tools.ietf.org/html/rfc1537
    RFC 1591- Структура и делегиране на системата за имена на домейни: http://tools.ietf.org/html/rfc1591
    RFC 1713- Инструменти за отстраняване на грешки в DNS: http://tools.ietf.org/html/rfc1713
    RFC 2606- Резервирани DNS имена от най-високо ниво: http://tools.ietf.org/html/rfc2606
    DNS сигурност (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
    Референтно ръководство на администратора BIND 9: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
    Сигурен шаблон за BIND: http://www.cymru.com/Documents/secure-bind-template.html
    Конфигурационните параметри са добре описани заРуски: http://www.bog.pp.ru/work/bind.html
    Автоматично създаване на файл на зона: http://www.zonefile.org/?lang=en#zonefile

    Днес ще говорим за създаване на локална зона на домейн в локална мрежа. За какво е локална домейн зона и DNS сървър? За да споделите (да направите достъпни) вашите локални сайтове за всички потребители на мрежата.

    Ще създам мрежа, в която всички устройства в моята локална мрежа ще могат да използват ресурси във формат site.lan. В моя случай устройствата в локалната мрежа се свързват с интернет чрез рутер. Сървърна машина - на Linux Mint (настолен компютър), клиенти: PC под Контрол на Windows, Linux, телевизор със Smart TV, както и смартфони и таблети. Първо се уверете, че статичен вътрешен IP адрес е запазен за сървъра (машината, на която ще бъде инсталиран DNS сървъра) в рутера. Много е важно да се посочи на всички по-късно мрежови устройствакъде точно се намира нашият DNS сървър.

    Настройка на DNS сървър за имена:

    Първо, трябва да инсталирате пакета Bind:

    Sudo apt-get install bind

    Освен това, за да работят правилно уебсайтовете, се нуждаем от LAMP (Linux Apache MySQL PHP). Прочетете как да инсталирате LAMP на Ubuntu в моята статия. Можете също да настроите локален сайт, като използвате връзката в долната част на статията. Единственото нещо е, че не пишете адреса на сайта в / etc / hosts. тези проблеми ще бъдат разгледани от сървъра на имена. На този етап подготовката приключи.

    Настройка на обвързване

    Влезте в директорията на Bind и направете резервни копияконфигурируеми файлове:

    Cd / etc / bind / cp named.conf.local named.conf.local.back cp named.conf.options named.conf.options.back

    Създайте локален домейн zone.lan:

    Nano named.conf.local

    И добавете следните редове в края на файла:

    Зона "lan" (тип master; файл "/etc/bind/db.lan";);

    Сега създаваме съответния файл за .lan домейн зона и го отваряме за редактиране:

    Докоснете db.lan nano db.lan

    Изпълваме го със съдържание:

    @ В SOA lan. root.lan. (201605019; Сериен 4h 1h 1w 1d @ IN NS ns1.lan. @ IN A 192.168.0.100 ns1 IN A 192.168.0.100 slicks IN A 192.168.0.100 сайт IN A 192.168.0.100 @ IN A 192.10

    Обърнете внимание на Serial 201605019. Тази стойност трябва да се увеличава всеки път, когато редактирате файла на зоната на домейна. Пиша ГГ-ММ-ДД + натрупване сериен номерна 1. 192.168.0.100 - IP адрес на сървъра. Нотацията "slicks IN A" означава, че има a Име на домейн slicks и че този сайт се намира на IP адрес 192.168.0.100. В apache2 е създаден уебсайт с Име на сървъра slicks.lan... Ако сайтът е бил разположен на различен IP от DNS сървъра, тогава записът ще изглежда като хлъзгави в _IP-PC-with-site_ Редактиране named.conf.options:

    Nano named.conf.options

    Трябва да добавите избраните редове към него:

    Acl "дом" (192.168.0.0/24; 127.0.0.1;); опции (директория "/ var / cache / bind"; автоматична проверка на dnssec; разрешаване на рекурсия (127.0.0.1/32; 192.168.0.0/24; 192.168.1.0/24;); разрешаване на трансфер (няма;); auth -nxdomain no; # отговаря на RFC1035 listen-on-v6 (няма;); разрешаване на заявка ("home";););

    Първият ред създава локален DNS групов дом, с диапазон от IP адреси от 192.168.0.0 до 192.168.0.255, както и 127.0.0.1. Вторият ред, който добавяме, съдържа параметъра allow-query и показваме, че искаме да разрешим заявки от домашната група. Приключихме с конфигурацията, можем да рестартираме сървъра

    Рестартирайте Sudo /etc/init.d/bind9

    Посочване на локалния DNS в рутера

    За да не е необходимо да редактирате мрежовата връзка на всеки клиент и ръчно да регистрирате DNS сървъра, можем да посочим локалния DNS IP в настройките на рутера. И всички заявки от потребителите на мрежата ще бъдат изпращани от последните първо до локалния DNS и след това ще отидат в Интернет. Аз имам:

    За да посоча локалния DNS сървър в моя случай, влизам в Настройка -> Мрежови настройки -> Ръчна настройка на интернет връзката и в полето Основно DNS адресРегистрирам IP адреса на сървъра в локалната домейн зона 192.168.0.100, който вече ще действа като основен DNS сървър в локалната мрежа. И като Средно DNS адресипишем 8.8.8.8. Това са DNS адресите на Google. На екранната снимка имам първичен и вторичен DNS адреси, водещи към моя сървър. По някаква причина в началото изглеждаше, че рутерът не пренасочва заявките към моя DNS и го регистрира така. Второ DNS е по-добърпосочете сървъра на Google, така че ако локалният сървър 192.168.0.100 е изключен, интернет няма да бъде загубен за всички други устройства!

    Функционална проверка

    Стартирам клиентски компютър с Windows Xp и тествам връзката. Първата стъпка е да изчистите DNS кеша. Отиваме до командата windows низи напиши:

    Ipconfig / flushdns

    1. Сега проверявам видимостта в мрежата DNS сървър, пинг 192.168.0.100:

    C: \\ Документи и настройки \\ www> ping 192.168.0.100 Обмен на пакети от 192.168.0.100 до 32 байта: Отговор от 192.168.0.100: брой байтове = 32 пъти<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

    Проверка на местния сайт: nslookup slicks.lan:

    C: \\ Документи и настройки \\ www> nslookup slicks.lan *** Не мога да намеря името на сървъра за адрес 192.168.0.1: Несъществуващ домейн *** Сървърите по подразбиране не са налични Сървър: Неизвестен адрес: 192.168.0.1 Име: slicks.lan Адрес: 192.168.0.100

    ping slicks.lan:

    C: \\ Документи и настройки \\ www> ping slicks.lan Обмен на пакети с slicks.lan от 32 байта: Отговор от 192.168.0.100: брой байтове = 32 пъти<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

    Радваме се на резултатите!