Denne opplæringen viser deg hvordan du konfigurerer en DNS-tjeneste som er enkel å vedlikeholde, enkel å konfigurere, og som generelt sett er sikrere enn den klassiske BIND-tjenesten. Denne artikkelen forutsetter at du kjører en VPS med FreeBSD installert.
For å begynne, åpne terminalen og installer denne pakken:
<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%
Installasjonen vil automatisk installere tilleggspakker ( daemontoolsog ucspi-tcp).
Opprett to brukere, gtinydnsog gdnslog. Start med den første brukeren:
<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!
Legg nå til den andre brukeren:
<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!
Kjør følgende kommando. Erstatt IP-adressen med adressen til Vultr-serveren din.
<ceph>[~]# tinydns-conf gtinydns gdnslog /usr/local/etc/tinydns 108.61.100.100
Denne kommandoen vil opprette kataloger, filer og andre underkataloger i /usr/local/etc/tinydns. Den vil også sette IP-adressen til VPS-en i /usr/local/etc/tinydns/env/IP.
Opprett katalogen /service.
<ceph>[~]# mkdir /service
Rediger /etc/rc.conffilen din :
<ceph>[~]# ee /etc/rc.conf
... og og disse linjene:
svscan_enable="YES"
svscan_servicedir="/service"
Lagre konfigurasjonen og start svscantjenesten:
<ceph>[~]# /usr/local/etc/rc.d/svscan start
Starting svscan.
Gå deretter til denne katalogen:
<ceph>[~]# cd /usr/local/etc/tinydns/root
Rediger datafilen:
<ceph>[root]# ee data
... og legg til noen DNS-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
Lagre filen og avslutt.
Kjør ls:
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data
Konverter tekstdataene dine til databaseformatet:
<ceph>[root]# make
/usr/local/bin/tinydns-data
Kjør lsigjen:
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data data.cdb
Legg merke til data.cdbfilen. Du har opprettet den med makekommandoen.
Og en ting til, lag en symbolsk lenke:
<ceph>[root]# ln -s /usr/local/etc/tinydns /service
Test nå din nye DNS-server. Erstatt 108.61.178.110med IP-adressen til serveren din.
<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
Navnetjener-oppslag:
<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.
Mailserver MX-oppslag:
<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.
En gang til for å være sikker:
<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
Gratulerer! Du har en fungerende DNS-server. Erstatt domain1.commed ditt domene. Etter hver endring, kjør makekommandoen for å lage ny data.cdbfil.
Forklaring av datafilen:
"A"-poster begynner med et =tegn. Aliaser eller CNAME-poster med et +tegn. E-postservere begynner med @tegnet. Navnetjenere med &tegnet.
Eksempel 1:
=test1.domain1.com:193.198.184.100:3600
=står for "A" rekord. test1.domain1.comer DNS-navnet, IP 193.198.184.100er adressen som test1.domain1.comløses i, og 3600 er TTL (time to live).
Eksempel 2:
# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600
I dette eksemplet er mail1og mail2e-postservere for domain1.com. mail1har prioritet 10 og mail2har prioritet 30. Det betyr at e-postservere først vil prøve å levere e-post til mail1. Hvis det mail1mislykkes, vil de prøve mail2.
Følgende linje markerer begynnelsen av soneinformasjonen. Det kreves.
Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600
2013101203nummer brukes når du har sekundær DNS hos en annen leverandør. Når du endrer nummeret til 2013101204, vil den sekundære DNS-en vite at det er noen endringer i DNS og vil fange opp endringene. Dette er kun for informative formål (du trenger AXFR DNS-overføringstjenesten). Alternativt kan du kopiere og lime inn DNS-endringene dine mellom to DJBDNS-servere med rsyncprogrammet.
Hvis du har PF Firewall på FreeBSD-serveren din, legg til denne linjen for å tillate DNS-spørringer:
pass quick proto {tcp, udp} from any to $me port 53 flags S/SA keep state