Beskyt resolv.conf fra DHCP på FreeBSD 10

Hvis du kører din egen resolver eller ønsker at bruge en fra en tredjepartsudbyder, kan du opleve, at din /etc/resolv.conffil bliver overskrevet af DHCP. Der er en håndfuld måder at løse dette problem på. Da du sandsynligvis vil genstarte for at sikre, at dine ændringer holder, og da du kommer til at abe med netværksindstillinger i første omgang, foreslår jeg kraftigt, at du gør dette på en testinstans og/eller uden for peak. timer.

Så, her er tre metoder, fra værste til bedste. Bemærk, at alle metoder i denne vejledning er skrevet til FreeBSD 10. Linux-brugere kan henvise til denne vejledning .

Metode 1: Brug statiske grænsefladeindstillinger

I min begrænsede test resulterer dette i lidt hurtigere opstartstider, da du ikke behøver at vente på, at DHCP tildeler dine netværksindstillinger. Jeg har dog set nævne i flere Vultr-dokumenter, at brug af statiske grænsefladeindstillinger er ildeset, og at du bør holde dig til DHCP. Jeg går ud fra, at de har en god grund til dette, og jeg er derfor selv blevet ved med at bruge DHCP. Ikke desto mindre, hvis du beslutter dig for at gå denne rute, skal du følge trinene nedenfor.

  • Bestem din servers IP, netværksmaske og gateway IP.
  • Rediger for /etc/rc.confat bruge disse værdier i stedet for DHCP.
  • Genstart for at teste indstillinger.

Bestem IP/netmaske/gateway

Hvis du antager, at din grænseflade er vtnet0, skal du udføre følgende:

ifconfig vtnet0 | grep inet

Dette skulle give dig IP-adressen og netmasken til din server:

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

FreeBSD kan lide at bruge hex til netmasken. Ovenstående konverteres til, 255.255.255.0hvis du er nysgerrig. Du kan finde en praktisk tabel her , men frygt ikke: du kan bare kopiere hex-adressen ind i dine konfigurationsfiler (eller konvertere den til decimal, hvis du foretrækker det).

Du kan finde gatewayen på flere måder. Her er en:

route get default | grep gateway vil returnere noget i retning af:

gateway: 10.10.10.1

Ændre /etc/rc.confmed nye værdier

Bevæbnet med IP, netmaske og gateway er det nu tid til at tilføje dem til systemkonfigurationen. Jeg anbefaler kraftigt at sikkerhedskopiere denne fil, før du foretager nogen ændringer, da det vil gøre det meget nemmere at fortryde, hvis du roder. Åbn nu op /etc/rc.confi din valgte editor og foretag følgende ændringer:

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

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

Selvfølgelig skal du være sikker på at erstatte din faktiske IP, netmaske og gateway med mine åbenlyse forfalskninger.

Genstart og test

Genstart din server ved hjælp af shutdown -r nowog sørg for, at den kommer korrekt op igen. Udfør de test, du finder nødvendige for at sikre, at alt fungerer korrekt. Hvis netværket er utilgængeligt, skal du logge på via konsollen og fortryde dine ændringer. Hvis alt er i orden, kan du på dette tidspunkt putte hvad du vil i resolv.confuden frygt for at det bliver udslettet.

Hvis du af en eller anden grund ikke kan genstarte, burde dette virke, men jeg ville virkelig lave en ordentlig genstart, hvis jeg var dig:

service netif restart && service routing restart

Metode 2: Gør resolv.confuforanderlig

Dette er lidt af et hack, men det er let den hurtigste løsning. Jeg anbefaler det ikke, fordi jeg ikke kan garantere, at dette ikke vil forårsage nogle underligheder i fremtiden, når du opgraderer til en ny udgivelse af operativsystemet, og dhclient vil sandsynligvis klage en masse. Når det er sagt, er en simpel chflags schg /etc/resolv.confalt, hvad der er nødvendigt. Filen er nu fuldstændig skrivebeskyttet, selv fra root. Du kan bekræfte sådan:

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.

Fortryd med: chflags noschg /etc/resolv.conf

Metode 3: Bed FreeBSD høfligt om at lade dine indstillinger være

Dette er langt den reneste og mest korrekte måde at få dette gjort på. Der er to tilgange, du kan tage:

Konfigurer dhclient

Lad os tage eksemplet fra toppen og sige, at alt du vil gøre er at sætte din brugerdefinerede navneserver ind resolv.confog ikke vil miste den, hver gang DHCP gør sit. I mit tilfælde vil jeg bruge den caching-resolver, jeg installerede, som lytter på localhost, så jeg redigerer /etc/dhclient.conf(som sandsynligvis vil være tom bortset fra kommentarer) og tilføjer følgende:

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

Dette vil tillade dhclient at gøre alt det andet, du har brug for, men når DHCP-serveren sender den en liste over navneservere, der skal bruges, vil din erstatte (som i, fuldstændigt erstatte) dem, den tilbyder. Hvis du foretrækker at supplere (i stedet for at erstatte) de tilbudte, kan du "tilføje" eller "tilføje" i stedet for "overtræde", alt efter hvad der er relevant.

Hvis du i øvrigt har brug for mere end én brugerdefineret server, skal du angive dem sådan:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

Når du har foretaget dine ændringer, skal du genstarte for dhclientat få dem til at træde i kraft med det samme:

service dhclient restart vtnet0

Undersøg din, /etc/resolv.confog du skulle finde ud af, at den nu har din(e) brugerdefinerede navneserver(e) i sig.

Når dette skrives, er navneservere det eneste, som Vultrs DHCP-server nogensinde har sat ind i min resolv.conf, og det eneste, jeg har tænkt mig at tilpasse. Men hvis du nogensinde har brug for at tilsidesætte andre indstillinger, kan du konsultere den fremragende manual for en omfattende liste:

man 5 dhclient.conf

Der er gode eksempler nederst, der burde give dig en idé om, hvad du kan gøre. Fra toppen af ​​mit hoved kan jeg forestille mig, at du måske vil tilføje noget som supersede domain-name "example.com";hvis du normalt har sådan en linje i din resolv.conf. Igen, konsulter dok.

Konfigurer resolvconf

Dette er den enkleste løsning, hvis du bare ønsker, at du resolv.confskal være alene. Ifølge manualen:

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

Dens konfiguration ligger i /etc/resolvconf.conf, som sandsynligvis ikke findes på dit system, så du er velkommen til at oprette den. resolv.confTilføj dette for at gøre din uforanderlig:

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

Hvis du bruger unboundsom din lokale caching-resolver, er det den linje, den tilføjer (sammen med et par til sig selv). Det er dybest set at narre resolvconftil at tro, at du /etc/resolv.confer placeret på /dev/null. Noget lidt mindre betydeligt, men lige så effektivt, ville være:

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

Hvis du ønsker at gøre noget mere sofistikeret end blot at slukke for det, bladrer man efter resolvconfog resolvconf.confhar masser af info.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere