Bescherm resolv.conf tegen DHCP op FreeBSD 10

Als u uw eigen resolver gebruikt of er een wilt gebruiken van een externe provider, kan het zijn dat uw /etc/resolv.confbestand wordt overschreven door DHCP. Er zijn een aantal manieren om dit probleem op te lossen. Aangezien u waarschijnlijk opnieuw wilt opstarten om ervoor te zorgen dat uw wijzigingen blijven hangen, en aangezien u in de eerste plaats met netwerkinstellingen gaat spelen, raad ik u ten zeerste aan dit op een testinstantie en / of buiten de piek te doen uren.

Hier zijn dan drie methoden, van slechtste tot beste. Merk op dat alle methoden in deze handleiding zijn geschreven voor FreeBSD 10. Linux-gebruikers kunnen deze handleiding raadplegen .

Methode 1: Gebruik statische interface-instellingen

In mijn beperkte tests resulteert dit in iets snellere opstarttijden omdat u niet hoeft te wachten tot DHCP uw netwerkinstellingen toewijst. Ik heb echter in verschillende Vultr-documenten gezien dat het gebruik van statische interface-instellingen wordt afgekeurd en dat u zich aan DHCP moet houden. Ik neem aan dat ze hier een goede reden voor hebben en daarom ben ik zelf DHCP blijven gebruiken. Mocht u toch besluiten deze route te volgen, volg dan de onderstaande stappen.

  • Bepaal het IP-adres, het netwerkmasker en het gateway-IP-adres van uw server.
  • Wijzig /etc/rc.confom deze waarden te gebruiken in plaats van DHCP.
  • Start opnieuw op om instellingen te testen.

Bepaal IP / netmask / gateway

Ervan uitgaande dat uw interface vtnet0 is, voert u het volgende uit:

ifconfig vtnet0 | grep inet

Dit zou u het IP-adres en het netmasker voor uw server moeten opleveren:

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

FreeBSD gebruikt hex graag voor het netmasker. Het bovenstaande wordt omgezet in 255.255.255.0als je nieuwsgierig bent. U kunt hier een handige tabel vinden , maar vrees niet: u kunt het hex-adres gewoon naar uw configuratiebestanden kopiëren (of het desgewenst naar decimalen converteren).

U kunt de gateway op verschillende manieren vinden. Hier is er een:

route get default | grep gateway retourneert iets in de trant van:

gateway: 10.10.10.1

Wijzig /etc/rc.confmet nieuwe waarden

Gewapend met het IP, netmask en gateway, is het nu tijd om ze toe te voegen aan de systeemconfiguratie. Ik raad ten zeerste aan om een back-up van dit bestand te maken voordat u wijzigingen aanbrengt, omdat het hierdoor veel gemakkelijker ongedaan kan worden gemaakt als u een fout maakt. Open dan nu /etc/rc.confin uw favoriete editor en breng de volgende wijzigingen aan:

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

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

Het is duidelijk dat u er zeker van moet zijn dat u uw werkelijke IP, netmask en gateway vervangt door mijn voor de hand liggende vervalsingen.

Start opnieuw op en test

Start uw server opnieuw op met behulp van shutdown -r nowen zorg ervoor dat deze correct wordt weergegeven. Voer de tests uit die u nodig acht om ervoor te zorgen dat alles naar behoren werkt. Als het netwerk niet toegankelijk is, log dan in via de console en zet uw wijzigingen terug. Als alles in orde is, kun je op dit moment alles doen wat je wilt, resolv.confzonder bang te zijn dat het wordt vernietigd.

Als je om welke reden dan ook niet opnieuw kunt opstarten, zou dit moeten werken, maar ik zou echt een goede herstart doen als ik jou was:

service netif restart && service routing restart

Methode 2: resolv.confonveranderlijk maken

Dit is een beetje een hack, maar het is gemakkelijk de snelste oplossing. Ik raad het niet aan, omdat ik niet kan garanderen dat dit in de toekomst geen rare dingen zal veroorzaken wanneer je upgradet naar een nieuwe release van het besturingssysteem, en dhclient zal waarschijnlijk een hoop klagen. Dat gezegd hebbende, een simpele chflags schg /etc/resolv.confis alles wat nodig is. Het bestand is nu volledig tegen schrijven beveiligd, zelfs vanaf root. U kunt als volgt verifiëren:

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.

Ongedaan maken met: chflags noschg /etc/resolv.conf

Methode 3: Vertel FreeBSD beleefd om uw instellingen met rust te laten

Dit is verreweg de schoonste en meest geschikte manier om dit voor elkaar te krijgen. U kunt op twee manieren te werk gaan:

Configureer dhclient

Laten we het voorbeeld van bovenaf nemen en zeggen dat u alleen maar uw aangepaste naamserver resolv.confwilt plaatsen en deze niet wilt verliezen elke keer dat DHCP zijn ding doet. In mijn geval wil ik de caching-resolver gebruiken die ik heb geïnstalleerd die luistert op localhost, dus ik bewerk /etc/dhclient.conf(die waarschijnlijk leeg zal zijn naast opmerkingen) en voeg het volgende toe:

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

Hierdoor kan dhclient al het andere doen wat je nodig hebt, maar wanneer de DHCP-server het een lijst met te gebruiken naamservers stuurt, vervangt die van jou de aangeboden servers. Als u de aangeboden advertenties liever aanvult (in plaats van vervangt), kunt u, waar van toepassing, "toevoegen" of "prepend" in plaats van "vervangen".

Mocht u overigens meer dan één aangepaste server nodig hebben, geef deze dan als volgt op:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

Nadat u uw wijzigingen heeft aangebracht, start dhclientu opnieuw op om ze onmiddellijk van kracht te laten worden:

service dhclient restart vtnet0

Onderzoek uw /etc/resolv.confen u zou moeten zien dat deze nu uw aangepaste naamserver (s) bevat.

Op het moment van schrijven zijn naamservers het enige dat de DHCP-server van Vultr ooit in mijn server heeft gestopt resolv.conf, en het enige dat ik wil aanpassen. Als u echter ooit andere instellingen moet overschrijven, raadpleeg dan de uitstekende handleiding voor een uitgebreide lijst:

man 5 dhclient.conf

Onderaan staan ​​geweldige voorbeelden die u een idee zouden moeten geven van wat u kunt doen. Uit mijn hoofd kan ik me voorstellen dat je misschien iets zou willen toevoegen supersede domain-name "example.com";als je normaal zo'n lijn in je hebt resolv.conf. Raadpleeg opnieuw de documenten.

Configureer resolvconf

Dit is de eenvoudigste oplossing als je wilt dat je resolv.confmet rust wordt gelaten. Volgens de handleiding:

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

De configuratie bevindt zich in /etc/resolvconf.conf, wat waarschijnlijk niet op uw systeem bestaat, dus voel u vrij om het te maken. resolv.confVoeg dit toe om uw onveranderlijk te maken :

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

Als u het gebruikt unboundals uw lokale caching-resolver, is dat de regel die het toevoegt (samen met een paar voor zichzelf). Dat is in feite om resolvconfte denken dat u /etc/resolv.confzich bevindt /dev/null. Iets minder gemeen, maar even effectief zou zijn:

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

Als je iets geavanceerder wilt doen dan het gewoon uit te schakelen, de man pagina's voor resolvconfen resolvconf.confhebben veel info.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.