Kuweka Bind Kama Seva ya Kibinafsi ya DNS kwenye RHEL 8


Mfumo wa Majina ya Kikoa (DNS) ni mbinu inayotumiwa kutafsiri majina ya vikoa vinavyoweza kusomeka na binadamu (au Majina ya Vikoa Yanayohitimu Kabisa (FQDN)) kwa anwani za IP zinazoweza kusomeka na mashine, ili kutafuta kompyuta katika mtandao kama vile Mtandao.

Katika mifumo ya kompyuta na mtandao, hii ni muhimu kwa sababu, ingawa FQDN ni rahisi kwa binadamu kukumbuka na kutumia, kompyuta (wateja) hufikia rasilimali au huduma kwenye kompyuta (seva) nyingine kulingana na anwani za IP.

Katika suala hili, seva ya DNS (pia inajulikana kama seva ya jina) hudumisha saraka ya FQDN na kuzitafsiri kwa anwani za IP; inaweza pia kurudisha anwani ya IP wakati jina la mwenyeji/FQDN limetolewa. Kuna aina tofauti za seva za DNS ikijumuisha seva ya jina iliyoidhinishwa, seva ya jina la kache na zingine nyingi.

Katika makala haya, tutakupitia hatua za kusakinisha na kusanidi seva ya DNS ya kibinafsi/ya ndani, yenye mamlaka kwenye RHEL 8 kwa kutumia programu huria ya BIND.

  1. RHEL 8 yenye Usakinishaji Ndogo
  2. RHEL 8 na Usajili wa RedHat Umewashwa
  3. RHEL 8 yenye Anwani Tuli ya IP

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

Hatua ya 1: Kusakinisha Bind DNS kwenye RHEL 8

1. Ili kusakinisha bind na huduma zake kwenye seva yako, endesha amri ifuatayo ya cdnf.

# dnf install bind bind-utils

2. Ifuatayo, anza huduma ya DNS kwa sasa, kisha uiwezesha kuanza kiotomatiki kwenye boot ya mfumo na uangalie ikiwa iko na inafanya kazi kwa kutumia amri za systemctl.

# systemctl start named
# systemctl enable named
# systemctl status named

Hatua ya 2: Kusanidi BIND DNS kwenye RHEL 8

3. Ili kusanidi Bind DNS server, kwanza unahitaji kuchukua chelezo ya faili asili ya usanidi /etc/named.conf kwa kutumia ifuatayo amri ya cp.

# cp /etc/named.conf /etc/named.conf.orig

4. Sasa fungua /etc/named.conf faili ya usanidi kwa ajili ya kuhariri kwa kutumia kihariri chako cha maandishi cha mstari wa amri unachokipenda kama ifuatavyo.

# vi /etc/named.conf 

Chini ya chaguo sehemu ya usanidi, toa maoni kwa mistari ifuatayo.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. Kisha, tafuta kigezo cha ruhusu-ulizio na uweke thamani yake kwa mtandao wako, ambayo ina maana kwamba wapangishi kwenye mtandao wako wa ndani pekee ndio wanaoweza kuuliza seva ya DNS.

allow-query  {localhost; 192.168.56.0/24}

Hatua ya 3: Kuunda Kanda za Mbele na Nyuma za DNS

Eneo la Mbele ni mahali ambapo jina la mpangishaji (au FQDN) hadi mahusiano ya anwani ya IP yanahifadhiwa; inarudisha anwani ya IP kwa kutumia jina la mwenyeji. Kumbuka kuwa hoja za kawaida za DNS ni hoja za utafutaji wa mbele. Kwa upande mwingine, Eneo la Nyuma hurejesha FQDN ya mwenyeji kulingana na anwani yake ya IP.

6. Ili kufafanua kanda za mbele na nyuma, ongeza mistari ifuatayo mwishoni mwa faili /etc/named.conf.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

Wacha tueleze kwa ufupi chaguzi katika usanidi wa kanda hapo juu:

  • aina: Inafafanua jukumu la seva hii kwa ukanda. Thamani bwana inamaanisha ni seva inayoidhinishwa ambapo nakala kuu ya data ya eneo hudumishwa.
  • faili: hubainisha faili ya hifadhidata ya eneo.
  • ruhusu kusasisha: hubainisha wapangishi ambao waliruhusu kuwasilisha masasisho ya Dynamic DNS kwa maeneo makuu. Hakuna katika kesi hii.

Hatua ya 4: Kuunda Faili ya Eneo la Mbele la DNS

7. Kwanza, unda faili ya eneo la Mbele chini ya saraka ya /var/named.

# vi /var/named/tecmint.lan.db

Ongeza usanidi ufuatao ndani yake.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

Hebu tueleze kwa ufupi ufafanuzi wa eneo la juu na vigezo.

  • TTL: inabainisha muda wa kuishi wa RR na maagizo ya $TTL yanatoa TTL chaguo-msingi kwa kila RR bila seti mahususi ya TTL.
  • @: Ni lakabu la jina la kikoa (k.m. tecmint.lan) lililofafanuliwa katika faili kuu ya usanidi.
  • KATIKA: inamaanisha Mtandao.
  • SOA: inabainisha Mwanzo wa Mamlaka: seva ya jina iliyoidhinishwa ni nani (dns-primary.tecmint.lan), maelezo ya mawasiliano ya msimamizi (admin.tecmint.lan, alama ya @ inabadilishwa na kipindi) na nyingine zinazohusiana habari.
  • NS: inamaanisha seva ya jina.
  • Msururu: thamani hii inatumiwa na seva ya DNS ili kuthibitisha kuwa maudhui ya faili fulani ya eneo ni ya kisasa.
  • Onyesha upya: hubainisha ni mara ngapi seva ya DNS ya mtumwa inapaswa kutekeleza uhamishaji wa eneo kutoka kwa bwana.
  • Jaribu tena: inabainisha ni mara ngapi mtumwa anapaswa kujaribu tena uhamishaji wa eneo ulioshindwa.
  • Muda wake unaisha: huamua muda ambao seva ya mtumwa inapaswa kusubiri kabla ya kujibu swali la mteja wakati bwana hawezi kufikiwa.
  • Kima cha chini zaidi: huweka kiwango cha chini kabisa cha TTL kwa eneo.
  • A: Anwani ya mwenyeji.

Hatua ya 5: Kuunda Faili ya Eneo la Reverse DNS

8. Vile vile, tengeneza faili ya eneo la Reverse chini ya saraka ya /var/named.

# vi /var/named/tecmint.lan.rev

Kisha ongeza mistari ifuatayo ndani yake. Hapa, PTR ni kinyume cha rekodi inayotumiwa kuweka anwani ya IP kwa jina la mwenyeji.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. Weka ruhusa sahihi za umiliki kwenye faili za eneo kama ifuatavyo.

# chown :named /var/named/tecmint.lan.db
# chown :named /var/named/tecmint.lan.rev

10. Hatimaye, angalia usanidi wa DNS na faili za eneo zina syntax sahihi baada ya kufanya mabadiliko yaliyo hapo juu, kwa kutumia matumizi ya jina-checkconf (hakuna nje inamaanisha hakuna kosa):

# named-checkconf
# named-checkzone tecmint.lan /var/named/tecmint.lan.db
# named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. Mara tu umefanya usanidi wote muhimu, unahitaji kuanzisha upya huduma ya DNS ili mabadiliko ya hivi karibuni yaanze kutumika.

# systemctl restart named

12. Kisha, kabla ya mteja yeyote kufikia usanidi wa huduma ya DNS kwenye seva, unahitaji kuongeza huduma ya DNS katika usanidi wa ngome ya mfumo na upakie upya mipangilio ya ngome kwa kutumia huduma ya firewall-cmd, kama ifuatavyo:

# firewall-cmd --permanent --zone=public --add-service=dns 
# firewall-cmd --reload

Hatua ya 6: Kujaribu Huduma ya DNS Kutoka kwa Mteja

13. Katika sehemu hii, tutaonyesha jinsi ya kupima huduma ya DNS kutoka upande wa mteja. Ingia kwenye mashine ya mteja, isanidi ili kutumia seva ya DNS iliyo hapo juu. Kwenye mfumo wa Linux, fungua faili /etc/resolve.conf ukitumia kihariri cha maandishi unachokipenda.

# vi /etc/resolve.conf 

Ongeza ingizo lifuatalo ndani yake, ambalo linamwambia msuluhishi kutumia seva maalum ya jina.

nameserver  192.168.56.100

Hifadhi faili na uifunge. Kumbuka kwamba unapaswa pia kutaja seva ya DNS katika faili ya usanidi wa kiolesura cha mtandao.

14. Ongeza seva za DNS IP 192.168.56.100 kama kisuluhishi kwenye faili ya usanidi ya kiolesura cha mtandao wa mashine ya mteja /etc/sysconfig/network-scripts/ifcfg-enp0s3 kama inavyoonyeshwa kwenye mchoro ufuatao.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. Kisha tumia matumizi ya nslookup kuuliza IP kwa kutumia jina la mpangishaji na kinyume chake, ya seva za www, barua pepe na hati katika mtandao wako kama inavyoonyeshwa.

# nslookup 192.168.56.5
# nslookup www.tecmint.lan
# nslookup 192.168.56.10
# nslookup mail.tecmint.lan
# nslookup 192.168.56.20
# nslookup docs.tecmint.lan
# nslookup 192.168.56.100
# nslookup dns-primary.tecmint.lan

Katika makala hii, tumeonyesha jinsi ya kusakinisha na kusanidi seva ya DNS ya faragha, yenye mamlaka kwenye RHEL 8 kwa kutumia programu ya BIND. Tunatumahi kuwa kila kitu kilikufaa, vinginevyo, tutumie maswali yako au maoni mengine yoyote kupitia fomu ya maoni iliyo hapa chini.