Aquest tutorial us mostrarà com configurar un servei DNS que sigui fàcil de mantenir, fàcil de configurar i que, en general, sigui més segur que el servei BIND clàssic. Aquest article suposa que esteu executant un VPS amb FreeBSD instal·lat.
Per començar, obriu el vostre terminal i instal·leu aquest paquet:
<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%
La instal·lació instal·larà automàticament paquets addicionals ( daemontoolsi ucspi-tcp).
Creeu dos usuaris gtinydnsi gdnslog. Comenceu amb el primer usuari:
<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!
Ara, afegiu el segon usuari:
<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!
Executeu la següent comanda. Substituïu l'adreça IP per l'adreça del vostre servidor Vultr.
<ceph>[~]# tinydns-conf gtinydns gdnslog /usr/local/etc/tinydns 108.61.100.100
Aquesta ordre crearà directoris, fitxers i altres subdirectoris a /usr/local/etc/tinydns. També posarà l'adreça IP del VPS a /usr/local/etc/tinydns/env/IP.
Creeu el directori /service.
<ceph>[~]# mkdir /service
Editeu el vostre /etc/rc.conffitxer:
<ceph>[~]# ee /etc/rc.conf
... i aquestes línies:
svscan_enable="YES"
svscan_servicedir="/service"
Deseu la configuració i inicieu el svscanservei:
<ceph>[~]# /usr/local/etc/rc.d/svscan start
Starting svscan.
A continuació, aneu a aquest directori:
<ceph>[~]# cd /usr/local/etc/tinydns/root
Editeu el datafitxer:
<ceph>[root]# ee data
... i afegiu algunes dades DNS:
# 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
Desa el fitxer i surt.
Executar ls:
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data
Converteix les teves dades de text al format de base de dades:
<ceph>[root]# make
/usr/local/bin/tinydns-data
lsTorna a córrer :
<ceph>[root]# ls
Makefile add-alias add-childns add-host add-mx add-ns data data.cdb
Observeu el data.cdbfitxer. L'heu creat amb l' makeordre.
I una cosa més, crea un enllaç simbòlic:
<ceph>[root]# ln -s /usr/local/etc/tinydns /service
Ara proveu el vostre nou servidor DNS. Substituïu 108.61.178.110per l'adreça IP del vostre servidor.
<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
Cerca del servidor de noms:
<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.
Cerca del servidor de correu MX:
<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.
Una vegada més per estar segur:
<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
Felicitats! Tens un servidor DNS que funciona. Substitueix domain1.compel teu domini. Després de cada canvi, executeu l' makeordre per crear un data.cdbfitxer nou .
Explicació del fitxer de dades:
Els registres "A" comencen amb un =signe. Àlies o registres CNAME amb un +signe. Els servidors de correu comencen amb el @signe. Servidors de noms amb el &signe.
Exemple 1:
=test1.domain1.com:193.198.184.100:3600
=significa rècord "A". test1.domain1.comés el nom DNS, IP 193.198.184.100és l'adreça en què es test1.domain1.comresol, i 3600 és el TTL (time to live).
Exemple 2:
# MX
@domain1.com::mail1.domain1.com.:10:3600
@domain1.com::mail2.domain1.com.:30:3600
En aquest exemple, mail1i mail2són servidors de correu per a domain1.com. mail1té la prioritat 10 i la mail2prioritat 30. Això vol dir que els servidors de correu primer intentaran lliurar el correu a mail1. Si mail1falla, ho intentaran mail2.
La línia següent marca l'inici de la informació de la zona. És obligatori.
Zdomain1.com:dns1.domain1.com.:ns.domain1.com.:2013101203:604800:86400:2419200:604800:3600
2013101203El número s'utilitza quan teniu DNS secundari en algun altre proveïdor. Quan canvieu el número a 2013101204, el DNS secundari sabrà que hi ha alguns canvis al DNS i recollirà els canvis. Això només té finalitats informatives (necessitareu el servei de transferència DNS AXFR). Alternativament, podeu copiar i enganxar els vostres canvis de DNS entre dos servidors DJBDNS amb el rsyncprograma.
Si teniu PF Firewall al vostre servidor FreeBSD, afegiu aquesta línia per permetre consultes DNS:
pass quick proto {tcp, udp} from any to $me port 53 flags S/SA keep state