Beskytt resolv.conf fra DHCP på FreeBSD 10

Hvis du kjører din egen resolver, eller ønsker å bruke en fra en tredjepartsleverandør, kan du oppleve at /etc/resolv.conffilen din blir overskrevet av DHCP. Det er en håndfull måter å løse dette problemet på. Siden du sannsynligvis vil starte på nytt for å være sikker på at endringene dine holder seg, og siden du kommer til å ape med nettverksinnstillinger i utgangspunktet, anbefaler jeg på det sterkeste å gjøre dette på en testinstans og/eller utenfor peak. timer.

Nå, her er tre metoder, fra verste til beste. Merk at alle metodene i denne veiledningen ble skrevet for FreeBSD 10. Linux-brukere kan referere til denne veiledningen .

Metode 1: Bruk statiske grensesnittinnstillinger

I min begrensede testing resulterer dette i litt raskere oppstartstider siden du ikke trenger å vente på at DHCP skal tildele nettverksinnstillingene dine. Imidlertid har jeg sett det nevnes i flere Vultr-dokumenter at bruk av statiske grensesnittinnstillinger er mislikt og at du bør holde deg til DHCP. Jeg antar at de har en god grunn til dette og dermed har jeg fortsatt å bruke DHCP selv. Likevel, hvis du bestemmer deg for å gå denne ruten, følg trinnene nedenfor.

  • Bestem serverens IP, nettverksmaske og gateway-IP.
  • Endre for /etc/rc.confå bruke disse verdiene i stedet for DHCP.
  • Start på nytt for å teste innstillingene.

Bestem IP/nettmaske/gateway

Forutsatt at grensesnittet ditt er vtnet0, utfør følgende:

ifconfig vtnet0 | grep inet

Dette bør gi deg IP-adressen og nettmasken for serveren din:

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

FreeBSD liker å bruke hex for nettmasken. Ovennevnte konverteres til 255.255.255.0hvis du er nysgjerrig. Du kan finne en hendig tabell her , men frykt ikke: du kan bare kopiere hex-adressen inn i konfigurasjonsfilene dine (eller konvertere den til desimal hvis du foretrekker det).

Du kan finne gatewayen på flere måter. Her er en:

route get default | grep gateway vil returnere noe i retning av:

gateway: 10.10.10.1

Endre /etc/rc.confmed nye verdier

Bevæpnet med IP, nettmaske og gateway, er det nå på tide å legge dem til systemkonfigurasjonen. Jeg anbefaler på det sterkeste å sikkerhetskopiere denne filen før du gjør noen endringer, da det vil gjøre det mye lettere å angre hvis du roter. Nå åpner du opp /etc/rc.confi redigeringsprogrammet du ønsker, og gjør følgende endringer:

# 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 bør du være sikker på å erstatte den faktiske IP-en, nettmasken og gatewayen din med mine åpenbare forfalskninger.

Start på nytt og test

Start serveren på nytt ved å bruke shutdown -r nowog sørg for at den kommer opp på riktig måte. Utfør de testene du mener er nødvendige for å sikre at alt fungerer som det skal. Hvis nettverket er utilgjengelig, logger du på via konsollen og tilbakestiller endringene. Hvis alt er bra, kan du på dette tidspunktet legge det du vil i resolv.confuten frykt for at det blir utslettet.

Hvis du av en eller annen grunn ikke kan starte på nytt, burde dette fungere, men jeg ville virkelig gjort en skikkelig omstart hvis jeg var deg:

service netif restart && service routing restart

Metode 2: Gjør resolv.confuforanderlig

Dette er litt av et hack, men det er lett den raskeste løsningen. Jeg anbefaler det ikke fordi jeg ikke kan garantere at dette ikke vil forårsake noe rart i fremtiden når du oppgraderer til en ny versjon av operativsystemet, og dhclient kommer sannsynligvis til å klage en haug. Når det er sagt, en enkel chflags schg /etc/resolv.confer alt som trengs. Filen er nå fullstendig skrivebeskyttet, selv fra root. Du kan bekrefte slik:

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.

Angre med: chflags noschg /etc/resolv.conf

Metode 3: Be FreeBSD høflig om å la innstillingene være i fred

Dette er den desidert reneste og mest riktige måten å få dette gjort på. Det er to tilnærminger du kan ta:

Konfigurer dhclient

La oss ta eksemplet fra toppen, og si at alt du vil gjøre er å sette inn din egendefinerte navneserver resolv.confog ikke vil miste den hver gang DHCP gjør sitt. I mitt tilfelle vil jeg bruke caching-resolveren jeg installerte som lytter på localhost, så jeg redigerer /etc/dhclient.conf(som sannsynligvis vil være tom bortsett fra kommentarer) og legger til følgende:

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

Dette vil tillate dhclient å gjøre alt annet du trenger den til å gjøre, men når DHCP-serveren sender den en liste over navneservere som skal brukes, vil din erstatte (som i, fullstendig erstatte) de den tilbyr. Hvis du foretrekker å supplere (i stedet for å erstatte) de som tilbys, kan du "legge til" eller "prepend" i stedet for "supersede", etter behov.

Forresten, hvis du trenger mer enn én tilpasset server, spesifiser dem slik:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

Etter å ha gjort endringene, start dhclientpå nytt for å få dem til å tre i kraft umiddelbart:

service dhclient restart vtnet0

Undersøk din /etc/resolv.confog du bør finne at den nå har din(e) egendefinerte navneserver(e) i seg.

Når dette skrives, er navneservere det eneste Vultrs DHCP-server noen gang har lagt inn i min resolv.conf, og det eneste jeg har brydd meg om å tilpasse. Men hvis du noen gang trenger å overstyre andre innstillinger, se den utmerkede håndboken for en omfattende liste:

man 5 dhclient.conf

Det er gode eksempler nederst som burde gi deg en idé om hva du kan gjøre. På toppen av hodet mitt kan jeg forestille meg at du kanskje vil legge til noe sånt som supersede domain-name "example.com";hvis du vanligvis har en slik linje i resolv.conf. Igjen, konsulter dokumentene.

Konfigurer resolvconf

Dette er den enkleste løsningen hvis du bare vil at du resolv.confskal være alene. I henhold til manualen:

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

Konfigurasjonen ligger i /etc/resolvconf.conf, som sannsynligvis ikke finnes på systemet ditt, så lag det gjerne. For å gjøre din resolv.confuforanderlig, legg til dette:

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

Hvis du bruker unboundsom din lokale hurtigbufferløser, er det linjen den legger til (sammen med noen for seg selv). Det er i utgangspunktet å lure resolvconftil å tro at du /etc/resolv.confbefinner deg på /dev/null. Noe litt mindre slemt, men like effektivt, ville være:

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

Hvis du vil gjøre noe mer sofistikert enn å bare slå det av, søker man etter resolvconfog resolvconf.confhar massevis av informasjon.

Legg igjen 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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer