Hoe kan ek ‘n plaaslike DNS-caching-bediener op Linux instel?

DNS-soek is gewoonlik nie iets waaroor u moet bekommer nie. Soms moet jy!


As die ISP van u huis of kantoor stadige naambedieners het of u bediener baie op soek is, moet u ‘n plaaslike DNS-bediener opspoor.

Hoe kan ‘n cache-DNS-bediener my help??

‘N Cache-DNS-bediener werk deur al die DNS-navrae wat u stelsel doen, uit te voer en dan die resultate in die geheue te stoor, of te stoor. Sodra die resultate in die geheue gebêre is, wanneer u ‘n duplikaatversoek vir ‘n domein rig, word die resultaat byna onmiddellik uit die geheue voorgesit.

Dit lyk miskien nie te belangrik nie, maar as u ISP se DNS-bedieners tyd neem om te reageer, sal u internetblaai aansienlik vertraag. Die tuisblad van die Amerikaanse nuuskanaal MSNBC moet byvoorbeeld meer as 100 unieke domeinname kontak om korrek te laai. As die naambedieners van u ISP selfs ‘n tiende van ‘n sekonde langer neem as om normaal te reageer, beteken dit dat die bladsy tien sekondes langer neem om te laai.

‘N Plaaslike cache-DNS-bediener help nie net in u huis of kantoor nie, dit help ook op u bediener. As u ‘n toepassing het wat baie DNS-soeke maak, byvoorbeeld ‘n besige e-posbediener wat teen spam-sagteware werk, sal dit ‘n vinnige hupstoot kry van ‘n plaaslike cache-DNS-bediener.

Laastens ondersteun die stelsel-resolusie die nuutste, veilige DNS-standaarde DNSSEC en DNSoverTLS of dot. Dit help om u privaatheid aanlyn te beskerm en te behou.

Watter plaaslike cache-DNS sal ons gebruik??

Die plaaslike cache-DNS-bediener wat ons in hierdie gids sal aktiveer en opstel, is systemd-opgelos. Hierdie instrument is deel van die systemd reeks stelselbestuurinstrumente. As u stelsel systemd gebruik, en feitlik al die groot Linux-verspreidings is, sal u reeds die stelseld-resolusie installeer, maar nie loop nie. Die meeste verspreidings gebruik nie systemd-opgelos nie, selfs al is dit teenwoordig.

stelsel-opgelos werk deur die bestuur van ‘n klein plaaslike cache-DNS-bediener wat ons sal instel om met die opstart te begin. Ons sal dan die res van die stelsel herkonfigureer om hul DNS-navrae te rig na die plaaslike caching-stelsel en -opgeloste DNS.

Hoe om te kyk of u reeds stelsel-opgelos gebruik?

Sommige Linux-verspreidings gebruik alreeds stelsel-opgelos soos Ubuntu 19.04.

As u reeds met ‘n stelseloplossing loop, hoef u dit nie in te skakel of u stelsel op te stel om dit te gebruik nie. U moet egter moontlik toesien dat netwerkbestuurinstrumente soos NetworkManager korrek opgestel is, aangesien dit die netwerkopstelling van die stelsel kan ignoreer.

Voordat u verder gaan met die volgende afdeling, voer die volgende opdrag uit om te kontroleer of u reeds met ‘n systemd-resolusie uitgevoer is:

$ resolvectl status

As u die boodskap kry:

$ resolvectl status
Kon nie globale data kry nie: eenheid dbus-org.freedesktop.resolve1.service nie gevind nie.

Jy is nie loop met stelselopgelos en moet oorgaan na die volgende afdeling. As u in plaas daarvan uitsette sien wat begin met iets soos die volgende:

Global
LLMNR-instelling: ja
MulticastDNS-instelling: ja
DNSOverTLS-instelling: opportunisties
DNSSEC-instelling: toelaat-afgradeer
DNSSEC ondersteun: nee
Huidige DNS-bediener: 1.1.1.1
DNS-bedieners: 1.1.1.1
1.0.0.1

Dan loop u alreeds met ‘n stelsel-oplossing en hoef u dit nie in te skakel nie.

Aktiveer en konfigureer systemd-opgelos

Ons hoef nie systemd-resolusie te installeer nie, aangesien dit reeds deel van systemd is. Al wat ons moet doen, is om dit te begin om die DNS-caching-bediener aan die gang te kry en dit dan in staat te stel om dit weer op te begin.

Voer die volgende opdrag vanaf ‘n skulpprompt aan, aangesien ‘n sudo ‘n nie-wortelgebruiker in staat gestel het om met die stelsel te begin:

$ sudo systemctl begin systemd-resolved.service

Voer nou die volgende opdrag uit om die stelsel-opgelos te begin met die opstart van die stelsel:

$ sudo systemctl stel systemd-resolved.service in staat

Die laaste konfigurasie-item wat oor is, is om die DNS-bedieners wat die stelsel-opgelos het, na die opgeloste domeine in te stel. Daar is baie opsies hier, maar een van die volgende pare is gratis, vinnig, en albei ondersteun DNSSEC en DoT:

Google Openbare DNS

  • 8.8.8.8
  • 8.8.4.4

Cloudflare openbare DNS

  • 1.1.1.1
  • 1.0.0.1

Maak die hoofstelsel-opgeloste konfigurasielêer oop met u gunsteling teksredakteur, hier het ek nano gebruik:

$ sudo nano /etc/systemd/resolved.conf

Wysig die lyn begin

# DNS =

Sodat ‘n paar van die IP-adresse gelys word. Hier word die Cloudflare DNS-bedieners gewys:

DNS = 1.1.1.1 1.0.0.1

Stoor en verlaat die teksredakteur. Ons moet nou weer met die systemd-oplossing begin sodat die naambedieners begin gebruik:

$ sudo systemctl herbegin systemd-resolved.service

systemd-resolved is nou aan die gang en is gereed om te begin versnel en DNS-vrae te beveilig sodra ons die stelsel opstel om dit te begin gebruik.

Stel die stelsel op om stelsel-opgelos te gebruik

U stelsel kan op verskillende maniere gekonfigureer word om stelsel-opgelos te gebruik, maar ons sal kyk na twee konfigurasies wat die meeste gebruiksgevalle dek. Die eerste is die aanbevole konfigurasie, en die tweede die versoenbaarheidskonfigurasie. Die verskil tussen die twee is hoe die /etc/resolv.conf-lêer bestuur word.

Die /etc/resolv.conf-lêer bevat die IP-adresse van die naambedieners wat programme op die stelsel moet bevraagteken. Programme wat DNS-navrae moet maak, sal hierdie lêer raadpleeg om uit te vind met watter bedieners hulle moet kontak om hierdie vrae te stel.

Die twee maniere van stelsel-opgelos konsentreer rondom die bestuur van die inhoud van hierdie lêer. In die aanbevole modus word /etc/resolv.conf ‘n simskakel gemaak na /run/systemd/resolve/stub-resolv.conf. Hierdie lêer word bestuur deur systemd-opgelos en daarom bestuur systemd-resolusie die DNS-konfigurasie-inligting vir alle ander programme op die stelsel.

Dit kan probleme veroorsaak wanneer ander programme die inhoud van /etc/resolv.conf probeer bestuur. Verenigbaarheidsmodus laat /etc/resolv.conf in plek sodat ander programme dit kan bestuur terwyl die stelsel-opgeloste DNS-inligting gebruik word. In hierdie modus moet die ander programme wat /etc/resolv.conf bestuur, gekonfigureer word om 127.0.0.53 as die stelselnaambediener in /etc/resolv.conf te stel.

Stel die aanbevole modus op

As ons hierdie modus opstel, sal systemd-resolved /etc/resolv.conf bestuur deur dit ‘n simlink na /run/systemd/resolve/stub-resolv.conf te maak. Ons sal dit met die hand moet doen, aangesien dit nie outomaties gekonfigureer is nie.

Vee eers die bestaande /etc/resolv.conf-lêer uit of hernoem dit. Die herbenaming is ‘n beter opsie om dit uit te vee, aangesien dit dieselfde effek sal hê, maar u kan altyd na die oorspronklike verwys as u die inligting wat dit bevat benodig. Hier verander ons /etc/resolv.conf met behulp van die mv-opdrag:

$ sudo mv /etc/resolv.conf /etc/resolv.conf.original

Skep nou die simlink:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Laastens, herbegin systemd-resolusie:

$ sudo systemctl herbegin systemd-resolved.service

Stel die versoenbaarheidsmodus op

In hierdie modus moet u seker maak dat die plaaslike naambediener wat deur die stelseloplossing begin is, uitgevra word deur stelseldienste. Open /etc/resolv.conf in ‘n teksredakteur, hier word die nano-redakteur gebruik:

$ sudo nano /etc/resolv.conf

Vee alle reëls uit wat met ‘n naambediener begin ‘en voeg hierdie reël by:

naambediener 127.0.0.53

Hierdie wysiging kan verander word deur enige ander program wat /etc/resolv.conf bestuur. As dit die geval is, moet u die programme instel om hierdie naamserver te gebruik om die bewerking permanent te maak.

Ontfoutingstelsel is opgelos

Dit kan moeilik wees om presies te ontdek hoe u DNS-navrae doen nadat u hierdie veranderinge aangebring het. Die mees effektiewe metode om na te sien wat gebeur, is om die stelsel-opgeloste in foutopsporingmodus te plaas en na die loglêer te kyk.

systemd-resolved is ‘n systemd-diens, wat beteken dat dit maklik in ontfoutingsmodus geplaas kan word deur ‘n inloopdienslêer te skep wat die ontfoutinstelling bevat. Die volgende opdrag skep die regte lêer op die regte plek:

$ sudo systemctl wysig systemd-resolved.service

Plak die volgende reëls in die redigeerder en stoor en gaan dan uit:

[Service]
Omgewing = SYSTEMD_LOG_LEVEL = debug

Die stelsel-opgeloste diens word outomaties herlaai op ‘n suksesvolle stoor en uitgang.

Maak ‘n tweede terminale oop vir dieselfde bediener en volg die joernaallogboek vir die stelsel-opgeloste diens:

$ sudo journalctl -f -u stelseld-opgelos

‘N Lyn wat begin met “DNS-bediener gebruik”, bv .:

Met behulp van DNS-bediener 1.1.1.1 vir transaksie 19995.

Vertel u presies watter DNS-bediener vir DNS-vrae gebruik word. In hierdie geval is die Cloudflare DNS-bediener op 1.1.1.1 gevra.

Lyne wat “Cache miss” is, dui aan dat die domeinnaam nie gekas is nie. Bv .:

Cache mis byvoorbeeld.com IN SOA

Lyne wat begin met “Positive cache hit”, bv .:

Positiewe kas slaan byvoorbeeld.com IN A

Dui aan dat systemd-resolusie hierdie domein voorheen bevraagteken het en die antwoord is vanuit die kas in die plaaslike geheue bedien.

U moet ontfoutingsmodus deaktiveer as u klaar is met die stelsel-oplossing, aangesien dit ‘n baie groot loglêer op ‘n besige stelsel sal skep. U kan die ontfout-logging deaktiveer deur te loop:

$ sudo systemctl wysig systemd-resolved.service

en die twee reëls te verwyder, wat u bygevoeg het en die redigeerder gestoor en verlaat het.

Gebruik veilige DNS-navrae

systemd-resolved is een van die min beskikbare DNS-bedieners wat beide DNSSEC en DNSoverTLS ondersteun. Beide help om te verseker dat u ware DNS-inligting (DNSSEC) ontvang en dat niemand u DNS-verkeer kan inslaan as dit oor die internet gaan nie. (Dot).

Hierdie opsies word maklik aangeskakel deur die hoofkonfigurasie-lêer van systemd-resolusie met ‘n teksredakteur oop te maak:

$ sudo nano /etc/systemd/resolved.conf

En die lêer redigeer sodat die volgende twee reëls opgestel word:

DNSSEC = toelaat-afgradering
DNSOverTLS = opportunistiese

Stoor en verlaat die redakteur en laai dan weer die stelsel opgelos:

$ sudo systemctl herbegin systemd-resolved.service

Solank die DNS-bediener wat u ingestel het, DNSSEC en DoT ondersteun, sal u DNS-vrae beskerm word. Die openbare DNS-bedieners van Google en Cloudflare ondersteun albei hierdie protokolle.

Afsluiting

U stelsel is nou opgestel om DNS-navrae vinnig en doeltreffend te maak, selfs as u ISP se DNS-bediener nie so vinnig reageer as wat hulle moes nie. Verder is u digitale lewe veiliger, aangesien u die nuutste, veilige DNS-protokolle gebruik om u DNS-vrae te beskerm.

As u ‘n Linux-entoesias is en meer wil leer, kyk dan na hierdie fantastiese aanlyn kursus.

Tags:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map