Овај водич ће вам показати како да конфигуришете ДНС услугу која је лака за одржавање, лака за конфигурисање и која је генерално сигурнија од класичне БИНД услуге. Овај чланак претпоставља да користите ВПС са инсталираним ФрееБСД-ом.
За почетак отворите свој терминал и инсталирајте овај пакет:
<ceph>[~]# pkg install djbdns
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 3 packages will be affected (of 0 checked):
New packages to be INSTALLED:
djbdns: 1.05_20,1
ucspi-tcp: 0.88_2
daemontools: 0.76_17
The process will require 1 MB more space.
251 KB to be downloaded.
Proceed with this action? [y/N]: y
Fetching djbdns-1.05_20,1.txz: 100% 139 KB 142.4k/s 00:01
Fetching ucspi-tcp-0.88_2.txz: 100% 62 KB 63.1k/s 00:01
Fetching daemontools-0.76_17.txz: 100% 51 KB 51.7k/s 00:01
Checking integrity... done (0 conflicting)
[1/3] Installing ucspi-tcp-0.88_2...
[1/3] Extracting ucspi-tcp-0.88_2: 100%
[2/3] Installing daemontools-0.76_17...
[2/3] Extracting daemontools-0.76_17: 100%
[3/3] Installing djbdns-1.05_20,1...
[3/3] Extracting djbdns-1.05_20,1: 100%
Инсталација ће аутоматски инсталирати додатне пакете ( daemontoolsи ucspi-tcp).
Креирајте два корисника gtinydnsи gdnslog. Почните са првим корисником:
<ceph>[~]# adduser
Username: gtinydns
Full name: gtinydns
Uid (Leave empty for default):
Login group [gtinydns]:
Login group is gtinydns. Invite gtinydns into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh rzsh nologin) [sh]: nologin
Home directory [/home/gtinydns]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]: yes
Lock out the account after creation? [no]:
Username : gtinydns
Password : <random>
Full Name : gtinydns
Uid : 1002
Class :
Groups : gtinydns
Home : /home/gtinydns
Home Mode :
Shell : /usr/sbin/nologin
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (gtinydns) to the user database.
adduser: INFO: Password for (gtinydns) is: rTsada2131sa1Mg
Add another user? (yes/no): no
Goodbye!
Сада додајте другог корисника:
<ceph>[~]# adduser
Username: gdnslog
Full name: gdnslog
Uid (Leave empty for default):
Login group [gdnslog]:
Login group is gdnslog. Invite gdnslog into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh rzsh nologin) [sh]: nologin
Home directory [/home/gdnslog]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]: yes
Lock out the account after creation? [no]:
Username : gdnslog
Password : <random>
Full Name : gdnslog
Uid : 1003
Class :
Groups : gdnslog
Home : /home/gdnslog
Home Mode :
Shell : /usr/sbin/nologin
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (gdnslog) to the user database.
adduser: INFO: Password for (gdnslog) is: jWsdad33aasdaFa0
Add another user? (yes/no): no
Goodbye!
Покрените следећу команду. Замените ИП адресу адресом вашег Вултр сервера.
<ceph>[~]# tinydns-conf gtinydns gdnslog /usr/local/etc/tinydns 108.61.100.100
Ова команда ће креирати директоријуме, датотеке и друге поддиректоријуме у /usr/local/etc/tinydns. Такође ће ставити ИП адресу ВПС-а у /usr/local/etc/tinydns/env/IP.
Креирајте директоријум /service.
<ceph>[~]# mkdir /service
Уредите своју /etc/rc.confдатотеку:
<ceph>[~]# ee /etc/rc.conf
... и и ове редове:
svscan_enable="YES"
svscan_servicedir="/service"
Сачувајте конфигурацију и покрените svscanуслугу:
<ceph>[~]# /usr/local/etc/rc.d/svscan start
Starting svscan.
Затим идите у овај директоријум:
<ceph>[~]# cd /usr/local/etc/tinydns/root
Уредите dataдатотеку:
<ceph>[root]# ee data
... и додајте неке ДНС податке:
# domain1.com
Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600
&domain1.com::dns1.domain1.com.:3600
&domain1.com::dns2.domain1.com.:3600
# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600
# IP's (A records)
=dns1.domain1.com:108.61.210.99:3600
=dns2.domain1.com:89.201.163.42:3600
=mail1.domain1.com:89.201.163.42:3600
=mail2.domain1.com:85.114.41.8:3600
=www.domain1.com:108.61.178.194:3600
=test1.domain1.com:193.198.184.100:3600
=test2.domain1.com:108.61.178.215:3600
# Aliases
+domain1.com:108.61.178.194:3600
+smtp.domain1.com:89.201.163.42:3600
+imap.domain1.com:89.201.163.42:3600
Сачувајте датотеку и изађите.
Трчи ls:
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data
Претворите своје текстуалне податке у формат базе података:
<ceph>[root]# make
/usr/local/bin/tinydns-data
Покрени lsпоново:
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data data.cdb
Обратите пажњу на data.cdbфајл. Направили сте га makeкомандом.
И још нешто, направите симболичку везу:
<ceph>[root]# ln -s /usr/local/etc/tinydns /service
Сада тестирајте свој нови ДНС сервер. Замените 108.61.178.110ИП адресом вашег сервера.
<ceph>[root]# host www.domain1.com 108.61.178.110
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases:
www.domain1.com has address 108.61.178.194
Тражење сервера имена:
<ceph>[root]# host -t ns domain1.com 108.61.178.110
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases:
domain1.com name server dns1.domain1.com.
domain1.com name server dns2.domain1.com.
МКС претрага маилсервера:
<ceph>[root]# host -t mx domain1.com 108.61.178.110
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases:
domain1.com mail is handled by 10 mail1.domain1.com.
domain1.com mail is handled by 30 mail2.domain1.com.
Још једном да будем сигуран:
<ceph>[root]# host mail1.domain1.com 108.61.178.110
Using domain server:
Name: 108.61.178.110
Address: 108.61.178.110#53
Aliases:
mail1.domain1.com has address 89.201.163.42
Честитам! Имате исправан ДНС сервер. Замените domain1.comсвојим доменом. Након сваке промене, покрените makeкоманду да направите нову data.cdbдатотеку.
Објашњење датотеке са подацима:
"А" записи почињу =знаком. Алијаси или ЦНАМЕ записи са +знаком. Маил сервери почињу са @знаком. Намесервери са &знаком.
Пример 1:
=test1.domain1.com:193.198.184.100:3600
=означава "А" рекорд. test1.domain1.comје ДНС име, ИП 193.198.184.100је адреса у којој се test1.domain1.comрешава, а 3600 је ТТЛ (време за живот).
Пример 2:
# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600
У овом примеру, mail1и mail2су сервери поште за domain1.com. mail1има приоритет 10 и mail2приоритет 30. То значи да ће сервери поште прво покушати да испоруче пошту на mail1. Ако mail1не успе, онда ће покушати mail2.
Следећи ред означава почетак информација о зони. То је неопходно.
Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600
2013101203број се користи када имате секундарни ДНС код неког другог провајдера. Када промените број у 2013101204, секундарни ДНС ће знати да постоје неке промене у ДНС-у и покупиће промене. Ово је само у информативне сврхе (требаће вам АКСФР ДНС услуга преноса). Алтернативно, помоћу rsyncпрограма можете копирати и налепити своје ДНС промене између два ДЈБДНС сервера .
Ако имате ПФ заштитни зид на вашем ФрееБСД серверу, додајте ову линију да бисте дозволили ДНС упите:
pass quick proto {tcp, udp} from any to $me port 53 flags S/SA keep state