Een Centos DNS-server installeren. Controle van de werking van de DNS-server. BIND installeren en uitvoeren

Wij presenteren onder uw aandacht nieuwe cursus van het team De Codeby- "Penetratietesten van webapplicaties vanaf nul." Algemene theorie, voorbereiding van de werkomgeving, passieve fuzzing en vingerafdrukken, actieve fuzzing, kwetsbaarheden, post-uitbuiting, Hulpmiddelen, Sociale Techniek en nog veel meer.


Domeinen hebben er minimaal twee DNS-server a, de ene wordt de primaire naamserver (ns1) genoemd en de andere de secundaire naamserver (ns2). Secundaire servers worden meestal gebruikt als er problemen zijn met de primaire DNS-server: als één server niet beschikbaar is, wordt de tweede actief. Er zijn er meer mogelijk complexe circuits met behulp van load-balancing, firewalls en clusters.

Alle DNS-records specifiek domein worden toegevoegd primaire server namen Secundaire server synchroniseert eenvoudigweg alle informatie en ontvangt deze van de primaire server, op basis van de parameters die op de primaire server zijn opgegeven.

Deze instructie beschrijft, hoe u een primaire DNS-server maakt die op CentOS draait. Houd er rekening mee dat de DNS-server die in deze handleiding wordt gepresenteerd een openbare DNS zal zijn, wat betekent dat de server zal reageren op verzoeken van elk IP-adres. Hoe u de toegang tot de server kunt beperken, wordt beschreven in deze handleiding.

Voordat we beginnen, wil ik vermelden dat DNS kan worden geïnstalleerd met of zonder een chroot-jailomgeving. chroot-omgeving jail beperkt de DNS-server tot een specifieke map op het systeem, in tegenstelling tot volledige systeemtoegang tot de server. Op deze manier zal een eventuele kwetsbaarheid van de DNS-server niet het hele systeem in gevaar brengen. Het beperken van de DNS-server tot een specifieke map (een proces dat chrooting wordt genoemd) is ook handig in testomgevingen.

Doel

We zullen onder testomstandigheden een DNS-server opzetten voor het example.tst-domein, wat een hypothetisch (niet-bestaand) domein is. Op deze manier zullen we niet willekeurig echte domeinen verstoren.

Er zijn drie volgende servers in dit domein.

Server IP-adres Gehoste diensten FQDN
Server A 172.16.1.1 Mail mail.voorbeeld.tst
Server B 172.16.1.2 Web, FTP www.voorbeeld.tst
ftp.voorbeeld.tst
Server C 172.16.1.3 Primair DNS-server ns1.voorbeeld.tst

We zullen de primaire DNS-server configureren en het vereiste domein en DNS-records toevoegen zoals weergegeven in de tabel.

Hostnamen instellen

Alle hosts moeten correct worden geïdentificeerd in termen van FQDN. Dit kan gedaan worden met behulp van de volgende methode.

Zij die liefhebben GUI, kan NetworkManaget-tools gebruiken. Om dit te doen, typt u de opdracht nmtui. De volgende pseudo-grafische interface wordt geopend:

Selecteer “Hostnaam wijzigen” en voer ns1.example.tst in

Als u klaar bent, klikt u op OK.

Een andere manier, met slechts één commando:

Hostnamectl set-hostnaam ns1.voorbeeld.tst

Eenmaal geïnstalleerd, kan de hostnaam worden gecontroleerd met de volgende opdracht.

# hostnaam ns1.voorbeeld.tst

Hostnaamctl-status

Voordat u doorgaat naar de volgende stap, moet u ervoor zorgen dat de hostnaam voor alle servers correct is ingesteld.

Pakketten installeren

We zullen bind gebruiken voor DNS, wat eenvoudig kan worden ingesteld met het yum-commando.

DNS installeren zonder chroot:

# yum installeren binden

DNS instellen met chroot:

# yum installeer bind bind-chroot

Configuratiebestanden voorbereiden

Zoals eerder vermeld, kan binding worden geconfigureerd met of zonder chroot. De paden variëren enigszins, afhankelijk van of chroot is geïnstalleerd.

Weg naar configuratiebestand Pad naar zonebestanden
Geen chroot /enz/ /var/naam/
Met chroot /var/named/chroot/etc/ /var/named/chroot/var/named/

U kunt het configuratiebestand Named.conf gebruiken, dat standaard wordt meegeleverd. Voor gebruiksgemak zullen we echter een ander voorbeeldconfiguratiebestand gebruiken.

Een reservekopie maken van het bestand /etc/named.conf

Cp /etc/named.conf /etc/named.conf.bak

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /etc/named.conf

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

Nu dat zo is back-up configuratiebestand en het originele bestand zelf is gewijzigd, gaan we verder.

# vim /etc/named.conf

# vim /var/named/chroot/etc/named.conf

De volgende regels zijn toegevoegd/gewijzigd.

Opties (## pad naar zonebestanden ## directory "/var/named"; ## verzoeken omleiden naar openbare DNS Google-server voor niet-lokale domeinen ## forwarders ( 8.8.8.8; ); ); ## declaratie van een directe zone, bijvoorbeeld.tst ## zone "example.tst" IN (type master; bestand "example-fz"; ## bestand voor de directe zone bevindt zich in /var/named ## allow-update ( geen; ) ; ; ## aangifte van een omgekeerde zone voor netwerk 172.16.1.0 ## zone "1.16.172.in-addr.arpa" IN (type master; bestand "rz-172-16-1"; ## bestand voor de omgekeerde zone is bevindt zich in /var /named ## allow-update ( geen; );

Zonebestanden voorbereiden

Standaard zonebestanden worden automatisch aangemaakt in /var/named of /var/named/chroot/var/named (voor chroot).

Ervan uitgaande dat de standaard zonebestanden niet aanwezig zijn, kunnen we de voorbeeldbestanden kopiëren van /usr.

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/chroot/var/named

Geweldig. Nu de standaard zonebestanden klaar zijn, maken we de onze eigen bestanden zones bijvoorbeeld.tst en netwerk 172.16.1.0. Terwijl we zonebestanden maken, moeten we het volgende onthouden.

  • Het '@'-symbool betekent NULL in zonebestanden.
  • Elke volledig gekwalificeerde domeinnaam (FQDN) eindigt met een punt '.' mail.voorbeeld.tst. Zonder punt zullen er problemen zijn.

1. Directe zone

De directe zone bevat een kaart met vertalingen van namen naar IP-adressen. Voor publieke domeinen zijn DNS-domeinen die worden gehost op hostingservices opgenomen in het directe zonebestand.

# vim /var/named/example-fz

# vim /var/named/chroot/var/named/example-fz $TTL 1D @ IN SOA ns1.example.tst. mial.voorbeeld.tst. (0; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; verlopen 3H) ; minimum IN NS ns1.voorbeeld.tst. IN A 172.16.1.3 mail IN A 172.16.1.1 IN MX 10 mail.voorbeeld.tst. www IN A 172.16.1.2 ns1 IN A 172.16.1.3 ftp IN CNAME www.voorbeeld.tst.

Uitleg: Binnen een zonebestand betekent SOA het begin van de autorisatie. Dit is voltooid domeinnaam gezaghebbende naamserver. Na de volledige domeinnaam komen de contactgegevens e-mailadres. Omdat we '@' niet kunnen gebruiken [e-mailadres beveiligd], herschrijven we het e-mailadres als mial.example.tst.

  • NS: Servernaam
  • A: Een record of adresrecord is een IP-adres
  • MX: Mailwisselaar dossier. Hier gebruiken we slechts één MX met prioriteit 10. Bij meerdere MX’s kunnen we verschillende digitale prioriteiten gebruiken. Onderste nummer wint. MX 0 is bijvoorbeeld beter dan MX 1.
  • CNAME: naam erin canonieke vorm. Als een server veel services host, is het zeer waarschijnlijk dat veel namen naar één server worden omgezet. CNAME geeft aan dat de server mogelijk andere namen heeft en verwijst naar de naam in het A-record.

2. Omkeerzone

De omgekeerde zone bevat een kaart met conversies van IP-adressen naar namen. Hier creëren we een omgekeerde zone voor netwerk 172.16.1.0. In een echt domein bevindt de DNS-server van de eigenaar van het openbare IP-blok zich in het omgekeerde zonebestand.

# vim /var/named/rz-172-16-1

# vim /var/named/chroot/var/named/rz-172-16-1 $TTL 1D @ IN SOA ns1.example.tst. sarmed.voorbeeld.tst. (0; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; verlopen 3H) ; minimum IN NS ns1.voorbeeld.tst. 1 IN PTR mail.voorbeeld.tst. 2 IN PTR www.voorbeeld.tst. 3 IN PTR ns1.voorbeeld.tst.

Uitleg: De meeste parameters die worden gebruikt in omgekeerde zone identiek aan de rechte zone, op één ding na.

  • PTR: PTR of pointerrecord, het verwijst naar de volledig gekwalificeerde domeinnaam

Voltooiing

Nu de zonebestanden gereed zijn, gaan we de resolutie van de zonebestanden configureren.

# chgrp genaamd /var/named/*

# chgrp genaamd /var/named/chroot/var/named/*

Nu gaan we het IP instellen DNS-adres server.

# vim /etc/resolv.conf naamserver 172.16.1.3

Eindelijk kunnen we rennen DNS-service en zorg ervoor dat het wordt toegevoegd aan autorun.

# service met de naam restart # chkconfig met de naam on

DNS-testen

We kunnen dig of nslookup gebruiken om DNS te testen. Eerst zullen we de benodigde pakketten installeren.

# yum installeer bind-utils

1. Directe zonetests met behulp van dig

# dig voorbeeld.tst ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 31184 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 172.16.1.3 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 86400 IN A 172.16.1.3

2. Controleer PTR met behulp van dig

Wanneer u dig gebruikt om te testen, moet u altijd zoeken naar de status "NOERROR". Elke andere voorwaarde betekent dat er iets mis is.

# dig -x 172.16.1.1 ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 27415 ;; QUESTION SECTION: ;1.1.17.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.16.172.in-addr.arpa. 86400 IN PTR mail.example.tst. ;; AUTHORITY SECTION: 1.16.172.in-addr.arpa. 86400 IN NS ns1.example.tst. ;; ADDITIONAL SECTION: ns1.example.tst. 86400 IN A 172.16.1.3

3. MX controleren met behulp van dig

# dig voorbeeld.tst mx ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 35405 ;; QUESTION SECTION: ;example.tst. IN MX ;; ANSWER SECTION: example.tst. 14366 IN MX 10 mail.example.tst.

Tips voor het oplossen van problemen

  1. Ik heb SELinux uitgeschakeld.
  2. Zorg ervoor dat uw firewall UDP-poort 53 niet blokkeert
  3. /var/log/messages zou nuttige informatie moeten bevatten voor het geval er iets mis is
  4. Zorg ervoor dat de eigenaar van de zonebestanden gebruiker 'named' is
  5. Zorg ervoor dat het IP-adres van de DNS-server als eerste wordt vermeld in /etc/resolv.conf
  6. Als u example.tst in een laboratoriumomgeving gebruikt, zorg er dan voor dat u de server loskoppelt van het internet, omdat example.tst een niet-bestaand domein is.

Samenvattend richt deze tutorial zich op het hosten van het example.tst-domein in een laboratoriumomgeving voor demonstratiedoeleinden. Houd er rekening mee dat dit geen handleiding is voor het maken van een openbare DNS-server, zoals een DNS-server die reageert op verzoeken van elk IP-adres. Als u een productie-DNS-server instelt, controleer dan welk beleid van toepassing is op openbare DNS. Een andere les gaat over het maken van een secundaire DNS, het beperken van de toegang tot de DNS-server en het implementeren van DNSSEC.

De Garant is een vertrouwde tussenpersoon tussen de Deelnemers tijdens de transactie.


Een van de belangrijke diensten die het functioneren van het moderne internet garanderen, is de dienst voor het omzetten van een sitenaam in een IP-adres. We zullen de implementatie van de DNS-service in dit artikel opzetten aan de hand van het voorbeeld van het instellen van Bind 9 (genoemd) op een server waarop CentOS 7 draait. We zullen de minimaal noodzakelijke basisfunctionaliteit voorbereiden en wat dieper ingaan op de loginstellingen.

Binden- de meest voorkomende implementatie van een DNS-server vandaag de dag, die zorgt voor de conversie van IP-adressen naar DNS-namen en vice versa. Het wordt ook wel benoemd genoemd, bijvoorbeeld in Freebsd. Afgaande op informatie van Wikipedia draaien nu 10 van de 13 root-DNS-servers op internet op binding. Het wordt standaard op bijna alle Linux-distributies geïnstalleerd. Ik zal kijken of ik het op een CentOS 7-server kan installeren.

Bind 9 (benoemd) installeren op CentOS 7

Laten we eerst controleren of we een DNS-server op het systeem hebben geïnstalleerd:

# rpm -qa bind* bind-libs-lite-9.9.4-14.el7.x86_64 bind-licentie-9.9.4-14.el7.noarch

Ik heb het niet geïnstalleerd omdat ik het minimale softwarepakket heb gekozen. Onze naamserver werkt in een chroot-omgeving, dus installeer de juiste pakketten:

# yum - y installeer bind bind - utils bind - chroot

Houd er nogmaals rekening mee dat we inbinden gebruiken chroot omgeving om de veiligheid te vergroten. Dit legt bepaalde functies op bij het instellen en beheren van de server. Je moet voorzichtig zijn met deze kleine dingen. Laten we dus bind uitvoeren:

# systemctl start benoemd-chroot# systemctl inschakelen benoemd-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

De inhoud van de chroot-map controleren:

# ls -l /var/named/chroot/etc

Alles is in orde, de server is gestart, de benodigde bestanden zijn aangemaakt, alles is klaar voor configuratie. Laten we ervoor zorgen.

Een DNS-server instellen in CentOS 7

Ons serverconfiguratiebestand bevindt zich op /var/named/chroot/etc/named.conf. We openen het en brengen het naar de volgende vorm:

# mcedit /var/named/chroot/etc/named.conf options ( luister-op poort 53 (elk;); luister-on-v6 poort 53 ( geen; ); map "/var/named"; dump-bestand " /var/named/data/cache_dump.db"; allow-query ( 127.0.0.1; 192.168.7.0/24; ); recursie ja; allow-recursie ( 127.0.0.1; 192.168.7.0/24; ); forwarders ( 8.8 .8.8); versie "DNS-server"; beheerde-sleutelmap "/var/named/dynamic"; pid-bestand "/run/named/named.pid"; sessie-sleutelbestand "/run/named/session.key "; dnssec-enable nee; dnssec-validatie nee; ); zone "." IN (type hint; bestand "named.ca"; ); neem "/etc/named.rfc1912.zones" op; neem "/etc/named.root.key" op; loggen (kanaal standaard_bestand ( bestand "/var/log/named/default.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja;); categorie standaard (standaard_bestand; ); );

Deze configuratie zorgt voor de werking van een reguliere caching-server op een lokaal netwerk. Opmerkingen over enkele parameters:

Vergeet niet de firewallregels te bewerken voor de juiste werking van de DNS-server - open UDP-poort 53 voor de caching-server, die we nu hebben geconfigureerd, en TCP-poort 53 voor doorstuurzones, die later zullen worden besproken

Laten we nu een map voor logboeken maken. Vergeet niet dat we in een chroot-omgeving werken:

# cd /var/named/chroot/var/log && mkdir genaamd && chown genaamd. genoemd

Eigen zone-ondersteuning

Laten we zeggen dat we onze eigen zone site1.ru in onze naam moeten plaatsen. Allereerst maken we een zonebestand aan dat door de DNS-server wordt bediend:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ IN SOA site1.ru. site1.ru.local. (2015092502 43200 3600 3600000 2592000) IN NS ns1.site1.ru.

IN NS ns2.site1.ru.

IN A 192.168.7.254 IN MX 10 mx.site1.ru. poort IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231

De beschrijving van de syntaxis van zonebestanden wordt vrij goed besproken op internet; ik wil hier niet in detail op ingaan. Indien gewenst kan iedereen zelf kijken of hij ondersteuning voor de eigen zone moet configureren.

We stellen de nodige rechten in:

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone Zone "site1.ru" (type master; bestand "site1.ru.zone";);:

We herlezen de genoemde configuratie met behulp van

rndc

# rndc opnieuw configureren

Toevoegen aan bindingsslavezone

Als u een kopie wilt bewaren van een zone afkomstig van een andere DNS-server op uw server, voeg dan de volgende instellingen toe aan de config.

Zone "site.ru" IN (type slave; masters ( 10.1.3.4;); bestand "site.ru.zone";);

10.1.3.4 - IP-adres van de DNS-server waarvan we de zone halen. Vergeet niet zoneoverdracht naar uw DNS-server toe te staan. U moet schrijfrechten toevoegen aan de genoemde groep, zodat deze er als volgt uitziet: Hierna kunt u de binding opnieuw starten en controleren of het slave-zonebestand is aangemaakt. Met de bovenstaande instellingen bevindt deze zich op

/var/named/chroot/var/named/site.ru.zone

. Als bind geen rechten heeft om een ​​bestand aan te maken, krijgt u een foutmelding in het logbestand:

Bind biedt uitgebreide logmogelijkheden. U kunt vrijwel alles opnemen dat verband houdt met de werking van de server. Ik zal je nu laten zien hoe dit werkt aan de hand van eenvoudige voorbeelden.

Allereerst stellen we in de configuratie het kanaal in waar logs voor bepaalde gebeurtenissen worden opgeslagen. Hier is een voorbeeld van zo’n kanaal:

Kanaal algemeen (bestand "/var/log/named/general.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja;

Hier wordt de naam van het kanaal aangegeven, die we zelf bedenken - algemeen wordt het pad naar het bestand aangegeven, er wordt gezegd dat we 3 versies van het logboek zullen opslaan van niet meer dan 5 megabytes groot. Parameter ernst kan de volgende waarden aannemen:

Parameter afdruktijd geeft aan dat het tijdstip van de gebeurtenis in het logboek moet worden vastgelegd. Naast de instellingen die ik heb opgegeven, kunnen de volgende parameters aan de kanaalconfiguratie worden toegevoegd:

  • afdruk-ernst ja | nee — specificeert of de ernstparameter al dan niet naar het logboek moet worden geschreven
  • print-categorie ja | nee — specificeert of de naam van de logcategorie wel of niet moet worden geschreven

Ik heb deze parameters niet opgegeven, omdat de standaardwaarde is ingesteld op Nee, wat mij persoonlijk bevalt.

Categorie algemeen ( algemeen; );

Beschrijving van logboekcategorieën in binding (benoemd)
standaardGebeurtenissen van alle categorieën uit deze tabel vallen hier als ze niet afzonderlijk zijn gedefinieerd, met uitzondering van de categorie zoekopdrachten, die specifiek moet worden opgenomen. Dat wil zeggen: als u alleen de standaardcategorie aanwijst, zullen gebeurtenissen van alle categorieën daarin terechtkomen.
algemeenDeze categorie is voor alle logboeken die niet in een van de vermelde categorieën zijn opgenomen.
databaseBerichten gerelateerd aan zoneopslag en caching.
beveiligingBevestiging en weigering van verzoeken.
configuratieAlles wat te maken heeft met het lezen en uitvoeren van het configuratiebestand.
oplosserNaamresolutie, inclusief informatie over recursieve zoekopdrachten die namens de client worden uitgevoerd door de cachingserver.
xfer-inInformatie over het verkrijgen van zones.
xfer-uitInformatie over zonetransfers.
op de hoogte stellenNotify-protocolbewerkingen registreren.
cliëntHet vervullen van klantverzoeken.
ongeëvenaardBerichten met een naam konden aan geen enkele klasse worden toegewezen of waarvoor geen toewijzing is gedefinieerd.
netwerkRegistratie van netwerkbewerkingen.
updateDynamische updates.
update-beveiligingBevestiging of afwijzing van updateverzoeken.
vragenLogboekaanvragen bij de DNS-server. Om deze categorie in te schakelen, moet u de parameter afzonderlijk instellen in de serverconfiguratie. Dit komt doordat deze categorie veel vermeldingen in het logbestand genereert, wat de serverprestaties kan beïnvloeden.
query-foutenFouten in verzoeken aan de server.
verzendenBinnenkomende pakketten omleiden naar servermodules voor verwerking.
dnssecWerking van de DNSSEC- en TSIG-protocollen.
lame-serversEr zijn fouten opgelost die ontvangsten binden bij het contacteren van externe servers in een poging een naamomzettingsverzoek uit te voeren.
alleen delegatieLogboekaanvragen die NXDOMAIN hebben geretourneerd.
edns-uitgeschakeldVerzoeken die gedwongen worden gewone DNS te gebruiken vanwege het overschrijden van time-outs.
RPZAlle operaties die verband houden met de implementatie van de Response Policy Zone (RPZ).
tarieflimietBewerkingen gerelateerd aan een of meer snelheidslimietinstructies in opties of weergave.

Om alle categorieën logboeken in afzonderlijke bestanden weer te geven, moet u dus de volgende constructie aan de genoemde configuratie toevoegen:

Logging (kanaalstandaard (bestand "/var/log/named/default.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja;); kanaal algemeen (bestand "/var/log/named/general.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja); /var/log/named/security.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaalconfiguratie (bestand "/var/log/ benoemd/config.log" versies 3 grootte 5 m; ernst dynamisch; afdruktijd ja; ); kanaalresolver (bestand "/var/log/named/resolver.log" versies 3 grootte 5 m; ernst dynamisch; afdruktijd ja; ); kanaal xfer-in (bestand "/var/log/named/xfer-in.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); /xfer-out.log" versies 3 grootte 5 m; ernst dynamisch; afdruktijd ja; ); kanaalmelding ( bestand "/var/log/named/notify.log" versies 3 grootte 5 m; ernst dynamisch; afdruktijd ja ); /client.log" versies 3 grootte 5m; ernst dynamisch; printtijd ja; ); kanaal ongeëvenaard (bestand "/var/log/named/unmatched.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaalnetwerk (bestand "/var/log/named/network.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaalupdate (bestand "/var/log/named/update.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaal update-security ( bestand "/var/log/named/update-security.log" versies 3 grootte 5m; ernst dynamisch; printtijd ja; ); kanaalquery's (bestand "/var/log/named/queries.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja;); kanaalquery-errors (bestand "/var/log/named/query-errors.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaalverzending (bestand "/var/log/named/dispatch.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaal dnssec ( bestand "/var/log/named/dnssec.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaal lame-servers (bestand "/var/log/named/lame-servers.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); alleen kanaaldelegatie (bestand "/var/log/named/delegation-only.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja;); kanaal edns-disabled (bestand "/var/log/named/edns-disabled.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaal rpz (bestand "/var/log/named/rpz.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); kanaalsnelheidslimiet (bestand "/var/log/named/rate-limit.log" versies 3 grootte 5m; ernst dynamisch; afdruktijd ja; ); categorie standaard(standaard;); categorie algemeen(algemeen;); categoriedatabase (database; ); categorie beveiliging ( beveiliging; ); categorie config(config;); categorie oplosser(oplosser;); categorie xfer-in ( xfer-in; ); categorie xfer-uit ( xfer-uit; ); categorie melden ( melden; ); categorie klant ( klant; ); categorie ongeëvenaard ( ongeëvenaard; ); categorie netwerk ( netwerk; ); categorie-update(update;); categorie update-beveiliging ( update-beveiliging; ); categoriequery's (query's; ); categorie query-fouten ( query-fouten; ); categorie verzending ( verzending; ); categorie dnssec ( dnssec; ); categorie lame-servers ( lame-servers; ); categorie alleen delegatie (alleen delegatie; ); categorie edns-uitgeschakeld ( edns-uitgeschakeld; ); categorie rpz ( rpz; ); categorie tarieflimiet ( tarieflimiet; ); );

Als we alle verzoeklogboeken van een categorie willen verzamelen vragen, dan moet je in het optiegedeelte van het configuratiebestand een parameter toevoegen die dit mogelijk maakt:

Querylog ja;

Binding opnieuw starten:

# systemctl herstart genaamd-chroot.service

Controle van de werking van de DNS-server

Laten we eerst naar de map met logs gaan en kijken wat we daar hebben:

# cd /var/named/chroot/var/log/named # ls -l

Alle logbestanden zijn aangemaakt en beginnen vol te raken. Je kunt er één controleren. Laten we bijvoorbeeld eens kijken hoe onze centos-server (192.168.7.246) gebruikersverzoeken registreert. Laten we proberen nslookup yandex.ru uit te voeren vanaf computer 192.168.7.254 (Windows) en kijken hoe dit wordt weerspiegeld in het logbestand:

26-sep-2015 19:25:30.923 klant 192.168.7.254#56374 (yandex.ru): vraag: yandex.ru IN A + (192.168.7.246) 26-sep-2015 19:25:31.013 klant 192.168.7.254# 56375 (yandex.ru): vraag: yandex.ru IN AAAA + (192.168.7.246)

Laten we nu site1.ru pingen om te controleren hoe de server onze zone ondersteunt:

Laten we eens kijken wat er in de logboeken staat:

26-sep-2015 19:28:01.660 klant 192.168.7.254#49816 (site1.ru): zoekopdracht: site1.ru IN A + (192.168.7.246)

Dit maakt het erg handig om te volgen waar de computer naartoe gaat. U kunt bijvoorbeeld tijdelijk de DNS-server verhogen en het querylogboek inschakelen. Geef in de client de enige DNS-server op die we hebben geconfigureerd. Dan kunnen we bijvoorbeeld volgen waar Windows naartoe gaat na het laden zonder dat we het weten. Of waar advertenties op Skype worden geladen. Alle verzoeken worden netjes verzameld in een bestand, dat vervolgens eenvoudig kan worden geanalyseerd, en vervolgens bijvoorbeeld .

Dat is alles wat ik je in dit materiaal wilde vertellen. Het onderwerp van het instellen van binding (genoemd) is behoorlijk uitgebreid. Misschien kom ik er nog eens op terug.

Online cursus "Linux Beheerder"

Als u wilt leren hoe u zeer beschikbare en betrouwbare systemen kunt bouwen en onderhouden, raad ik u aan kennis te maken met online cursus “Linux Beheerder” in OTUS. De cursus is niet voor beginners; om je in te schrijven heb je basiskennis nodig van netwerken en het installeren van Linux op een virtuele machine. De training duurt 5 maanden, waarna succesvolle afgestudeerden interviews met partners kunnen ondergaan. Test jezelf tijdens de toelatingstest en bekijk het programma voor meer details.

DNS- domeinnaamsysteem - een gedistribueerd systeem dat op verzoek zijn IP-adres kan rapporteren, inclusief een hostnaam. De DNS-structuur is vergelijkbaar met het Linux-bestandssysteem; de hele database heeft een boomstructuur, met de root bovenaan ( . ). Vanaf de punt begint het hele domeinnaamsysteem. De punt kan worden gevolgd door ru, com, net, info, etc. Domeinen die afkomstig zijn van de root, d.w.z. Ru., com.,netto. worden genoemd domeinen op het eerste niveau, websitetype domeinen. worden genoemd domeinen op het tweede niveau, maar van de vorm file.site. - domeinen op het derde niveau enzovoort. Let op de punt aan het einde van de voorbeelden. Namen die op deze manier worden geschreven, worden absolute namen (FQDN) genoemd. Als de punt niet is opgegeven, wordt de naam als relatief beschouwd. Dat wil zeggen: de website.

Waarom DNS gebruiken?

1) Stel je voor dat je toegang nodig hebt tot een netwerkbron onder de naam gastheer(dit is de bestandsserver waarin alle medewerkersbestanden worden opgeslagen) naam gastheer heeft IP het adres is 192.168.200.20 en als u niet over een service beschikt die IP-adressen in namen omzet, moet u het IP-adres 192.168.200.20 bellen om bij de bestandsserver te komen. Wat is gemakkelijker om de hostnaam of de reeks cijfers 192.168.200.20 te onthouden?

2) De tweede optie heeft betrekking op toegang tot internet. U moet bijvoorbeeld naar een FTP-server op internet gaan met de naam ftp.site, en het IP-adres is 89.111.176.87.

Dus als u bij de eerste optie helemaal geen DNS-server hoeft te installeren en configureren, maar u eenvoudigweg snel bijvoorbeeld de WINS-service kunt instellen, dan heeft u deze eenvoudigweg nodig om toegang te krijgen tot internet (we zullen ' We onthouden voortdurend cijfers wanneer we toegang proberen te krijgen tot bronnen op internet). Een andere vraag is: moet u dit configureren als de provider u zijn eigen DNS-servers heeft geleverd?

De DNS-server kan worden gebruikt als: primaire en secundaire, recursieve en query-redirector.

Primair(master) laadt gegevens voor de zone vanuit een bestand op de servermachine, en secundair (slave) ontvangt gegevens van de primaire DNS. Een DNS-server kan primair zijn voor de ene zone en secundair voor een andere.

Recursieve server gemaakt in grote organisaties met snelle netwerkverbindingen. Het is niet gebonden aan de servers van de provider, is flexibel en veilig.

Redirector aanvragen stuurt een verzoek van de client naar de server van de provider. De server van de provider verwerkt veel klantverzoeken, heeft een grote cache en een snelle verbinding.

Basis DNS-records.

A - correspondentie tussen naam en IP-adres
AAAA - correspondentie tussen naam en IPv6-adres
CNAME - canonieke naam (synoniem)
MX - verwijst naar de mailserver voor dit domein
NS - DNS-server voor het domein
PTR - canonieke naam
SOA is het initiële record dat aangeeft waar informatie over de server is opgeslagen.
SRV - servers voor services.

BIND installeren.
We zullen BIND installeren op centOs5.
Heeft een server met de naam ns1..168.200.1

yum installeren binden

Instellingen BINDEN
Maak het configuratiebestand aan en vul het in

vi /var/named/chroot/etc/named.conf

opties (
map "/var/named/";
dumpbestand "/var/run/named_dump.bd";
statistiekenbestand "/var/run/named.stats";
};
zone "site" in (
type meester;
bestand "site.db";
};
zone "200.168.192.IN-ADDR.ARPA." IN (
type meester;
bestand "192.168.200.db";
};

zone "0.0.127.IN-ADDR.ARPA." IN (
type meester;
bestand "127.0.0.db";
};

zone "." (
type hint;
bestand "genaamd.ca";
};

We maken zonebestanden voor site.db, 192.168.0.db, 127.0.0.db, genaamd.ca.

vi /var/named/chroot/var/named/site.db# directe zone voor het toewijzen van namen aan adressen.

$TTL 1H; 1 uur
IN SOA-website ns1.site. root.site (22
3H
1H
1W
1 uur)

; Naamservers
NS ns1.site

;Voor caconische namen
ns1.site. IN 1U A 192.168.200.1
host1.site. IN 1H EEN 192.168.200.154
;Aliassen
gw1.site. IN 1H CNAME host1.site.
www.site. IN 1H CNAME host1.site.

vi /var/named/chroot/var/named/192.168.200.db# omgekeerde zone voor het toewijzen van adressen aan namen.

$ TTL 3600; 1 uur
200.168.192.in-adr.arpa IN SOA ns1.site. root.site (21
3H
1H
1W
1 uur)
; Naamservers
200.168.192.in-addr.arpa IN NS ns1.site

; canonieke namen
1.200.168.192.in-addr.arpa PTR ns1.site.
154.200.168.192.in-addr.arpa PTR host1.site.

vi /var/named/chroot/var/name/127.0.0.db# loopback-adres voor het verzenden van pakketten naar uzelf.

$ TTL 3600; 1 uur
0.0.127.in-addr.arpa IN SOA ns1.site. root.site (21
3H
1H
1W
1 uur)

0.0.127.in-addr.arpa IN NS ns1.site
0.0.127.in-adr.arpa. IN PTR localhost.

vi /var/named/chroot/var/named/named.ca#rootservers

A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; voorheen NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; voorheen C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; voorheen TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; voorheen NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; voorheen NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; voorheen NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; voorheen AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; voorheen NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; beheerd door RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; beheerd door ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; beheerd door WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; Einde van bestand

De server starten en stoppen/etc/init.d/named (start stop herstart)
DNS-testhulpprogramma's: host, nslookup, graven.
Voor meer gedetailleerde DNS-instellingen, lees man bind, het DNS- en BIND-boek, etc.

In dit artikel zullen we kijken naar de implementatie van Master en Slave BIND (Berkeley Internet Name Domain) DNS-servers op CentOS 6.4 minimaal. Voordat u alle stappen in dit artikel kunt voltooien, moet uw netwerk zijn geconfigureerd, system-config-firewall-tui en Midnight Commander zijn geïnstalleerd. U kunt de volledige initiële installatie van CentOS lezen.

Op beide machines:

installeer MidnightCommander:

installeer system-config-firewall-tui:

yum installeer system-config-firewall-tui –y

voer in op de opdrachtregel

iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

BIND installeren:

yum installeer bind-chroot bind-utils –y

Laten we het fstarten en configureren:

systeem-config-firewall-tui

Markeer met een asterisk DNS

Klik "Vooruit". Markeer de interface eth0 en klik "Vooruit"

Klik "Vooruit". Markeer de interface voor de eth0-maskerade en klik "Vooruit"

Klik "Vooruit".

Klik "Vooruit".

Klik "Vooruit".

Klik "Vooruit".

Klik "Dichtbij".

Klik "OK".

Klik "Ja". Klaar.

SELINUX uitschakelen:

in /etc/selinux/config zullen we dit corrigeren SELINUX=uitgeschakeld

Laten we nu de sleutel genereren:

dnssec-keygen -a HMAC-MD5 -b 128 -n GEBRUIKER rndckey

Met deze opdracht worden twee bestanden in de huidige map gemaakt. In het *.private-bestand op de derde regel staat een sleutel van de vorm: wGmtcnMtn9od+ndTc20tGg==

Open daarna het bestand /etc/resolv.conf en helemaal aan het begin zullen we erin schrijven:

naamserver 192.168.0.191

naamserver 192.168.0.192

Master DNS-server (IP: 192.168.0.191 hostnaam: ns1.localserver12.ru):

maak een map /etc/named/master

mkdir /etc/named/master

We zullen Bindu overbrengen naar de boerderij

chown -R genaamd: genaamd /etc/named/master

Opening /etc/named.conf. Daarin controleren we de beschikbaarheid van de onderstaande opties. Als ze er niet zijn, voeg ze dan toe en corrigeer ze:

luisterpoort 53 ( 127.0.0.1; 192.168.0.191; );

overdracht toestaan ​​(192.168.0.192; );

melden ja;

zone "localserver12.ru" IN (

type meester;

bestand "/etc/named/master/localserver12.ru";

/* Pad naar ISC DLV-sleutel */)

dnssec inschakelen ja;

dnssec-validatie ja;

dnssec-lookaside auto;

Laten we een bestand maken lokaleserver12.ru in de map /etc/named/master

raak /etc/named/master/localserver12.ru aan

Laten we het overhandigen aan de bindu-boerderij:

chown -R genaamd: genaamd /etc/named/master/localserver12.ru

Laten we er het volgende in schrijven (ongeveer zoals op de afbeelding):

Laten we beginnen met binden

We hebben BIND bij het opstarten geplaatst, zodat het tijdens het opstarten van het systeem start

Master DNS-server is gereed.

Slave DNS-server (IP: 192.168.0.192 hostnaam: ns2.localserver12.ru):

maak een map /etc/named/slave

Laten we het aan de Bindu-boerderij overhandigen

chown -R genaamd: genaamd /etc/named/slave

Open /etc/named.conf. Daarin controleren we de beschikbaarheid van de onderstaande opties. Als ze er niet zijn, voeg ze dan toe en corrigeer ze:

luisterpoort 53 ( 127.0.0.1; 192.168.0.192; );

allow-recursie ( 192.168.0.0/24; );

recursie ja;

toestaan-overdracht (geen; );

geen melding maken;

zone "localserver12.ru" (

type slaaf;

bestand "/etc/named/slave/localserver12.ru";

meesters(192.168.0.191;);

We controleren ook op de aanwezigheid van dergelijke regels (zo niet, voeg dan vóór de regel toe /* Pad naar ISC DLV-sleutel */)

Dnssec-enable ja;

Dnssec-validatie ja;

Dnssec-lookaside auto;

Laten we beginnen met binden

We hebben het bij het opstarten gezet, zodat het tijdens het opstarten van het systeem start

Slave DNS-server is gereed. Bovendien wordt het bestand na een herstart automatisch naar de map /etc/named/slave getrokken lokaleserver12.ru

Laten we nu eens kijken:

voer op de slave het commando in

dig @ns1.localserver12.ru localserver12.ru axfr

en zo op de meester

dig @ns2.localserver12.ru localserver12.ru axfr

in beide gevallen worden gegevens en DNS-records weergegeven vanuit het bestand localserver12.ru

Alle. DNS-servers zijn gereed.


Als dit artikel je heeft geholpen, kun je de auteur bedanken:
overboeking naar WMR-portemonnee (WebMoney): R301575071888
overbrengen naar Yandex.Wallet: 410011003938168
of op PayPal:

Wij presenteren onder uw aandacht een nieuwe koers van het team De Codeby- "Penetratietesten van webapplicaties vanaf nul." Algemene theorie, voorbereiding van de werkomgeving, passief fuzzen en vingerafdrukken, actief fuzzen, kwetsbaarheden, post-uitbuiting, tools, sociale techniek en nog veel meer.


Domeinen hebben ten minste twee DNS-servers, één genaamd de primaire naamserver (ns1) en de andere genaamd de secundaire naamserver (ns2). Secundaire servers worden meestal gebruikt als er problemen zijn met de primaire DNS-server: als één server niet beschikbaar is, wordt de tweede actief. Complexere schema's zijn ook mogelijk met behulp van load-balancing, firewalls en clusters.

Alle DNS-records voor een bepaald domein worden toegevoegd aan de primaire naamserver. De secundaire server synchroniseert eenvoudigweg alle informatie die wordt ontvangen van de primaire server, op basis van de parameters die zijn opgegeven op de primaire server.

Deze instructie beschrijft, hoe u een primaire DNS-server maakt die op CentOS draait. Houd er rekening mee dat de DNS-server die in deze handleiding wordt gepresenteerd een openbare DNS zal zijn, wat betekent dat de server zal reageren op verzoeken van elk IP-adres. Hoe u de toegang tot de server kunt beperken, wordt beschreven in deze handleiding.

Voordat we beginnen, wil ik vermelden dat DNS kan worden geïnstalleerd met of zonder een chroot-jailomgeving. Een chroot jail-omgeving beperkt de DNS-server tot een specifieke map op het systeem, in tegenstelling tot volledige systeemtoegang tot de server. Op deze manier zal een eventuele kwetsbaarheid van de DNS-server niet het hele systeem in gevaar brengen. Het beperken van de DNS-server tot een specifieke map (een proces dat chrooting wordt genoemd) is ook handig in testomgevingen.

Doel

We zullen onder testomstandigheden een DNS-server opzetten voor het example.tst-domein, wat een hypothetisch (niet-bestaand) domein is. Op deze manier zullen we niet willekeurig echte domeinen verstoren.

Er zijn drie volgende servers in dit domein.

Server IP-adres Gehoste diensten FQDN
Server A 172.16.1.1 Mail mail.voorbeeld.tst
Server B 172.16.1.2 Web, FTP www.voorbeeld.tst
ftp.voorbeeld.tst
Server C 172.16.1.3 Primaire DNS-server ns1.voorbeeld.tst

We zullen de primaire DNS-server configureren en het vereiste domein en DNS-records toevoegen zoals weergegeven in de tabel.

Hostnamen instellen

Alle hosts moeten correct worden geïdentificeerd in termen van FQDN. Dit kan gedaan worden met behulp van de volgende methode.

Degenen die van een grafische interface houden, kunnen de NetworkManaget-tools gebruiken. Om dit te doen, typt u de opdracht nmtui. De volgende pseudo-grafische interface wordt geopend:

Selecteer “Hostnaam wijzigen” en voer ns1.example.tst in

Als u klaar bent, klikt u op OK.

Een andere manier, met slechts één commando:

Hostnamectl set-hostnaam ns1.voorbeeld.tst

Eenmaal geïnstalleerd, kan de hostnaam worden gecontroleerd met de volgende opdracht.

# hostnaam ns1.voorbeeld.tst

Hostnaamctl-status

Voordat u doorgaat naar de volgende stap, moet u ervoor zorgen dat de hostnaam voor alle servers correct is ingesteld.

Pakketten installeren

We zullen bind gebruiken voor DNS, wat eenvoudig kan worden ingesteld met het yum-commando.

DNS installeren zonder chroot:

# yum installeren binden

DNS instellen met chroot:

# yum installeer bind bind-chroot

Configuratiebestanden voorbereiden

Zoals eerder vermeld, kan binding worden geconfigureerd met of zonder chroot. De paden variëren enigszins, afhankelijk van of chroot is geïnstalleerd.

Pad naar het configuratiebestand Pad naar zonebestanden
Geen chroot /enz/ /var/naam/
Met chroot /var/named/chroot/etc/ /var/named/chroot/var/named/

U kunt het configuratiebestand Named.conf gebruiken, dat standaard wordt meegeleverd. Voor gebruiksgemak zullen we echter een ander voorbeeldconfiguratiebestand gebruiken.

Een reservekopie maken van het bestand /etc/named.conf

Cp /etc/named.conf /etc/named.conf.bak

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /etc/named.conf

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

Nu er een reservekopie van het configuratiebestand is en het originele bestand zelf is gewijzigd, gaan we verder.

# vim /etc/named.conf

# vim /var/named/chroot/etc/named.conf

De volgende regels zijn toegevoegd/gewijzigd.

Opties (## pad naar zonebestanden ## directory "/var/named"; ## verzoeken doorsturen naar de openbare DNS-server van Google voor niet-lokale domeinen ## forwarders ( 8.8.8.8; ); ); ## declaratie van een directe zone, bijvoorbeeld.tst ## zone "example.tst" IN (type master; bestand "example-fz"; ## bestand voor de directe zone bevindt zich in /var/named ## allow-update ( geen; ) ; ; ## aangifte van een omgekeerde zone voor netwerk 172.16.1.0 ## zone "1.16.172.in-addr.arpa" IN (type master; bestand "rz-172-16-1"; ## bestand voor de omgekeerde zone is bevindt zich in /var /named ## allow-update ( geen; );

Zonebestanden voorbereiden

Standaard zonebestanden worden automatisch aangemaakt in /var/named of /var/named/chroot/var/named (voor chroot).

Ervan uitgaande dat de standaard zonebestanden niet aanwezig zijn, kunnen we de voorbeeldbestanden kopiëren van /usr.

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/chroot/var/named

Geweldig. Nu de standaard zonebestanden gereed zijn, maken we onze eigen zonebestanden, bijvoorbeeld.tst en netwerk 172.16.1.0. Terwijl we zonebestanden maken, moeten we het volgende onthouden.

  • Het '@'-symbool betekent NULL in zonebestanden.
  • Elke volledig gekwalificeerde domeinnaam (FQDN) eindigt met een punt '.' mail.voorbeeld.tst. Zonder punt zullen er problemen zijn.

1. Directe zone

De directe zone bevat een kaart met vertalingen van namen naar IP-adressen. Voor publieke domeinen zijn DNS-domeinen die worden gehost op hostingservices opgenomen in het directe zonebestand.

# vim /var/named/example-fz

# vim /var/named/chroot/var/named/example-fz $TTL 1D @ IN SOA ns1.example.tst. mial.voorbeeld.tst. (0; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; verlopen 3H) ; minimum IN NS ns1.voorbeeld.tst. IN A 172.16.1.3 mail IN A 172.16.1.1 IN MX 10 mail.voorbeeld.tst. www IN A 172.16.1.2 ns1 IN A 172.16.1.3 ftp IN CNAME www.voorbeeld.tst.

Uitleg: Binnen een zonebestand betekent SOA het begin van de autorisatie. Dit is de volledig gekwalificeerde domeinnaam van een gezaghebbende naamserver. Na de volledige domeinnaam staat een contact-e-mailadres. Omdat we '@' niet kunnen gebruiken [e-mailadres beveiligd], herschrijven we het e-mailadres als mial.example.tst.

  • NS: Servernaam
  • A: Een record of adresrecord is een IP-adres
  • MX: Post Ingang wisselaar. Hier gebruiken we slechts één MX met prioriteit 10. Bij meerdere MX’s kunnen we verschillende digitale prioriteiten gebruiken. Het onderste getal wint. MX 0 is bijvoorbeeld beter dan MX 1.
  • CNAME: naam in canonieke vorm. Als een server veel services host, is het zeer waarschijnlijk dat veel namen naar één server worden omgezet. CNAME geeft aan dat de server mogelijk andere namen heeft en verwijst naar de naam in het A-record.

2. Omkeerzone

De omgekeerde zone bevat een kaart met conversies van IP-adressen naar namen. Hier creëren we een omgekeerde zone voor netwerk 172.16.1.0. In een echt domein bevindt de DNS-server van de eigenaar van het openbare IP-blok zich in het omgekeerde zonebestand.

# vim /var/named/rz-172-16-1

# vim /var/named/chroot/var/named/rz-172-16-1 $TTL 1D @ IN SOA ns1.example.tst. sarmed.voorbeeld.tst. (0; serieel 1D; vernieuwen 1H; opnieuw proberen 1W; verlopen 3H) ; minimum IN NS ns1.voorbeeld.tst. 1 IN PTR mail.voorbeeld.tst. 2 IN PTR www.voorbeeld.tst. 3 IN PTR ns1.voorbeeld.tst.

Uitleg: De meeste parameters die in de achterwaartse zone worden gebruikt, zijn identiek aan de voorwaartse zone, op één na.

  • PTR: PTR of pointerrecord, het verwijst naar de volledig gekwalificeerde domeinnaam

Voltooiing

Nu de zonebestanden gereed zijn, gaan we de resolutie van de zonebestanden configureren.

# chgrp genaamd /var/named/*

# chgrp genaamd /var/named/chroot/var/named/*

Nu gaan we het IP-adres van de DNS-server instellen.

# vim /etc/resolv.conf naamserver 172.16.1.3

Ten slotte kunnen we de DNS-service starten en ervoor zorgen dat deze wordt toegevoegd aan autostart.

# service met de naam restart # chkconfig met de naam on

DNS-testen

We kunnen dig of nslookup gebruiken om DNS te testen. Eerst zullen we de benodigde pakketten installeren.

# yum installeer bind-utils

1. Directe zonetests met behulp van dig

# dig voorbeeld.tst ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 31184 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 172.16.1.3 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 86400 IN A 172.16.1.3

2. Controleer PTR met behulp van dig

Wanneer u dig gebruikt om te testen, moet u altijd zoeken naar de status "NOERROR". Elke andere voorwaarde betekent dat er iets mis is.

# dig -x 172.16.1.1 ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 27415 ;; QUESTION SECTION: ;1.1.17.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.16.172.in-addr.arpa. 86400 IN PTR mail.example.tst. ;; AUTHORITY SECTION: 1.16.172.in-addr.arpa. 86400 IN NS ns1.example.tst. ;; ADDITIONAL SECTION: ns1.example.tst. 86400 IN A 172.16.1.3

3. MX controleren met behulp van dig

# dig voorbeeld.tst mx ;; ->>KOP<<- opcode: QUERY, status: NOERROR, id: 35405 ;; QUESTION SECTION: ;example.tst. IN MX ;; ANSWER SECTION: example.tst. 14366 IN MX 10 mail.example.tst.

Tips voor het oplossen van problemen

  1. Ik heb SELinux uitgeschakeld.
  2. Zorg ervoor dat uw firewall UDP-poort 53 niet blokkeert
  3. /var/log/messages zou nuttige informatie moeten bevatten voor het geval er iets mis is
  4. Zorg ervoor dat de eigenaar van de zonebestanden gebruiker 'named' is
  5. Zorg ervoor dat het IP-adres van de DNS-server als eerste wordt vermeld in /etc/resolv.conf
  6. Als u example.tst in een laboratoriumomgeving gebruikt, zorg er dan voor dat u de server loskoppelt van het internet, omdat example.tst een niet-bestaand domein is.

Samenvattend richt deze tutorial zich op het hosten van het example.tst-domein in een laboratoriumomgeving voor demonstratiedoeleinden. Houd er rekening mee dat dit geen handleiding is voor het maken van een openbare DNS-server, zoals een DNS-server die reageert op verzoeken van elk IP-adres. Als u een productie-DNS-server instelt, controleer dan welk beleid van toepassing is op openbare DNS. Een andere les gaat over het maken van een secundaire DNS, het beperken van de toegang tot de DNS-server en het implementeren van DNSSEC.

De Garant is een vertrouwde tussenpersoon tussen de Deelnemers tijdens de transactie.