Protejați rezolv.conf de la DHCP pe FreeBSD 10

Dacă executați propriul dvs. rezolvator sau doriți să utilizați unul de la un furnizor terț, puteți constata că /etc/resolv.conffișierul dvs. este suprascris de DHCP. Există o serie de moduri de a rezolva această problemă. Întrucât probabil că veți dori să reporniți pentru a vă asigura că modificările dvs. vor fi blocate și din moment ce veți efectua în primul rând montarea cu setările de rețea, vă recomand să faceți acest lucru pe o instanță de testare și / sau în afara valorii maxime. ore.

Acum, iată trei metode, de la cel mai rău la cel mai bun. Rețineți că toate metodele din acest ghid au fost scrise pentru FreeBSD 10. Utilizatorii Linux se pot referi la acest ghid .

Metoda 1: Utilizați setările interfeței statice

În testarea mea limitată, aceasta duce la perioade de pornire ușor mai rapide, deoarece nu trebuie să aștepți ca DHCP să-ți atribuie setările rețelei. Cu toate acestea, am văzut mențiuni în mai multe documente Vultr că utilizarea setărilor de interfață statică este încruntată și că ar trebui să te lipești la DHCP. Presupun că au un motiv bun pentru acest lucru și, prin urmare, am continuat să folosesc DHCP singur. Cu toate acestea, dacă decideți să parcurgeți această rută, urmați pașii de mai jos.

  • Determinați IP-ul serverului dvs., masca de rețea și IP-ul gateway-ului.
  • Modificați /etc/rc.confsă utilizați aceste valori în loc de DHCP.
  • Reporniți setările de testare.

Determinați IP / netmask / gateway

Presupunând că interfața dvs. este vtnet0, efectuați următoarele:

ifconfig vtnet0 | grep inet

Aceasta ar trebui să vă aducă adresa IP și masca de net pentru serverul dvs.

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

FreeBSD îi place să folosească hex pentru masca net. Cele de mai sus se transformă în 255.255.255.0dacă ești curios. Puteți găsi un tabel util aici , dar nu vă temeți: puteți doar să copiați adresa hex în fișierele de configurare (sau să le convertiți în zecimale, dacă doriți).

Puteți găsi gateway-ul în mai multe moduri. Iată unul:

route get default | grep gateway va întoarce ceva pe linia:

gateway: 10.10.10.1

Modificați /etc/rc.confcu noi valori

Înarmat cu IP, netmask și gateway, acum este timpul să le adăugați la configurația sistemului. Vă recomand cu încredere să faceți o copie de siguranță a acestui fișier înainte de a face orice modificări, deoarece va face mult mai ușor de anulat în cazul în care vă încurcați. Acum, deschideți-vă /etc/rc.confîn editorul ales și faceți următoarele modificări:

# Comment out this line:
# ifconfig_vtnet0="dhcp"

# Add these lines:
defaultrouter="10.10.10.1"
ifconfig_vtnet0="inet 10.10.10.10 netmask 0xffffff00"

Evident, ar trebui să fii sigur că îți înlocuiești IP-ul, măștile de net și gateway-ul pentru falsurile mele evidente.

Reporniți și testați

Reporniți serverul utilizând shutdown -r nowși asigurați-vă că va reveni corect. Efectuați testele pe care le considerați necesare pentru a vă asigura că totul funcționează corect. Dacă rețeaua este inaccesibilă, conectați-vă prin consolă și readuceți-vă modificările. Dacă totul este în regulă, în acest moment puteți pune orice doriți, resolv.conffără teamă ca acesta să fie șters.

Dacă, din orice motiv, nu puteți reporni, acest lucru ar trebui să funcționeze, dar aș face într-adevăr o repornire corectă dacă aș fi:

service netif restart && service routing restart

Metoda 2: Faceți resolv.confimuabil

Acesta este un pic de hack, dar este ușor cea mai rapidă soluție. Nu o recomand, deoarece nu pot garanta că acest lucru nu va provoca o ciudățenie în viitor atunci când faceți upgrade la o nouă versiune a sistemului de operare, iar dhclient este probabil să se plângă o grămadă. Acestea fiind spuse, un simplu chflags schg /etc/resolv.confeste tot ceea ce este necesar. Fișierul este acum complet protejat de scriere, chiar și de la root. Puteți verifica astfel:

vultr [~]# chflags schg /etc/resolv.conf
vultr [~]# ls -ol /etc/resolv.conf
-rw-r--r--  1 root  wheel  schg 50 Nov 29 06:28 /etc/resolv.conf
vultr [~]# echo "so very untouchable" >> /etc/resolv.conf
/etc/resolv.conf: Operation not permitted.

Anulează cu: chflags noschg /etc/resolv.conf

Metoda 3: Spune-i politicii lui FreeBSD să-ți lase setările în pace

Acesta este de departe cel mai curat, cel mai potrivit mod de a realiza acest lucru. Puteți adopta două abordări:

Configurare dhclient

Să luăm exemplul de la început, și să spunem că tot ce doriți să faceți este să introduceți serverul dvs. de nume personalizat resolv.confși să nu doriți să-l pierdeți de fiecare dată când DHCP își face lucrurile. În cazul meu, vreau să folosesc rezolvatorul de memorie în cache pe care l-am instalat care ascultă pe localhost, așa că editez /etc/dhclient.conf(care probabil va fi necompletat de comentarii) și să adaug următoarele:

interface "vtnet0" {
    supersede domain-name-servers 127.0.0.1;
}

Acest lucru va permite dhclient să facă tot ce aveți nevoie pentru a face, dar atunci când serverul DHCP îi trimite o listă de servere de nume pe care să le folosească, al tău va înlocui (ca și înlocuit complet) cele pe care le oferă. Dacă doriți să le suplimentați (decât să le înlocuiți) pe cele oferite, puteți „anexa” sau „prepont” în loc de „înlocui”, după caz.

De altfel, dacă aveți nevoie de mai mult de un server personalizat, specificați-le astfel:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

După efectuarea modificărilor, reporniți dhclientpentru ca acestea să intre în vigoare imediat:

service dhclient restart vtnet0

Examinați-vă /etc/resolv.confși ar trebui să găsiți că are acum serverul dvs. de nume personalizate.

În urma acestei scrieri, serverele de nume sunt singurul lucru pe care serverul DHCP Vultr mi l-a pus vreodată resolv.confși singurul lucru pe care m-am interesat să îl personalizez. Cu toate acestea, dacă vreodată trebuie să treceți peste alte setări, consultați manualul excelent pentru o listă cuprinzătoare:

man 5 dhclient.conf

Există exemple minunate în partea de jos, care ar trebui să vă ofere o idee despre ceea ce puteți face. În partea de sus a capului meu, pot să-mi imaginez că poate doriți să adăugați ceva de genul, supersede domain-name "example.com";dacă, în mod normal, aveți o linie de genul acesta resolv.conf. Din nou, consultați documentele.

Configurare resolvconf

Aceasta este cea mai simplă soluție dacă vrei doar să rămâi resolv.confsingur. Conform manualului:

resolvconf manages resolv.conf(5) files from multiple sources, such as DHCP and VPN clients

Configurația sa se află în /etc/resolvconf.conf, care probabil nu există pe sistemul dvs., așa că nu ezitați să o creați. Pentru a vă face resolv.confimuabil, adăugați acest lucru:

# prevent all updates to resolv.conf:
resolv_conf="/dev/null"

Dacă folosești unboundca rezolvator de cache local, aceasta este linia pe care o adaugă (împreună cu câteva pentru sine). Practic asta te păcălește resolvconfsă crezi că /etc/resolv.confse află /dev/null. Ceva ceva mai puțin mediu, dar la fel de eficient ar fi:

# disable resolvconf from running any subscribers:
resolvconf="NO"

Dacă doriți să faceți ceva mai sofisticat decât să îl dezactivați, site-urile pentru resolvconfși resolvconf.confau multe informații.



O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe