Защитете resolv.conf от DHCP във FreeBSD 10

Ако използвате свой собствен резолвер или искате да използвате такъв от доставчик на трета страна, може да откриете, че вашият /etc/resolv.confфайл се презаписва от DHCP. Има няколко начина за разрешаване на този проблем. Тъй като вероятно ще искате да рестартирате, за да се уверите, че промените ви остават, и тъй като на първо място ще се занимавате с мрежови настройки, силно препоръчвам да направите това на тестов екземпляр и/или извън пика часа.

И така, ето три метода, от най-лошия до най-добрия. Имайте предвид, че всички методи в това ръководство са написани за FreeBSD 10. Потребителите на Linux могат да се обърнат към това ръководство .

Метод 1: Използвайте статични настройки на интерфейса

При моето ограничено тестване това води до малко по-бързо време за стартиране, тъй като не е нужно да чакате DHCP да присвои вашите мрежови настройки. Въпреки това, видях да се споменава в няколко Vultr документа, че използването на статични настройки на интерфейса е недоволно и че трябва да се придържате към DHCP. Предполагам, че имат основателна причина за това и затова аз самият продължих да използвам DHCP. Въпреки това, ако решите да тръгнете по този път, следвайте стъпките по-долу.

  • Определете IP адреса на вашия сървър, мрежовата маска и IP адреса на шлюза.
  • Променете, за /etc/rc.confда използвате тези стойности вместо DHCP.
  • Рестартирайте, за да тествате настройките.

Определете IP/мрежова маска/шлюз

Ако приемем, че вашият интерфейс е vtnet0, изпълнете следното:

ifconfig vtnet0 | grep inet

Това трябва да ви даде IP адреса и мрежовата маска за вашия сървър:

inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255

FreeBSD обича да използва шестнадесетичен за мрежовата маска. Горното се преобразува в, 255.255.255.0ако сте любопитни. Можете да намерите удобна таблица тук , но не се страхувайте: можете просто да копирате шестнадесетичния адрес във вашите конфигурационни файлове (или да го преобразувате в десетичен, ако предпочитате).

Можете да намерите шлюза по няколко начина. Ето едно:

route get default | grep gateway ще върне нещо от вида на:

gateway: 10.10.10.1

Променете /etc/rc.confс нови стойности

Въоръжени с IP, мрежова маска и шлюз, сега е време да ги добавите към системната конфигурация. Аз силно препоръчваме да създадете резервно копие на файла, преди да се правят промени, тъй като тя ще го направи много по-лесно, за да отмените случаите, когато ви обърквам. Сега отворете /etc/rc.confв избрания от вас редактор и направете следните промени:

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

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

Очевидно трябва да сте сигурни, че замените действителния си IP, мрежова маска и шлюз за моите очевидни фалшификати.

Рестартирайте и тествайте

Рестартирайте вашия сървър с помощта shutdown -r nowи се уверете, че се възстановява правилно. Извършете всички тестове, които смятате за необходими, за да сте сигурни, че всичко работи правилно. Ако мрежата е недостъпна, влезте през конзолата и отменете промените си. Ако всичко е наред, в този момент можете да поставите каквото пожелаете, resolv.confбез да се страхувате, че ще бъде заличено.

Ако по някаква причина не можете да рестартирате, това трябва да работи, но аз наистина бих направил правилно рестартиране, ако бях на ваше място:

service netif restart && service routing restart

Метод 2: Направете resolv.confнеизменяем

Това е малко хак, но лесно е най-бързото решение. Не го препоръчвам, защото не мога да гарантирам, че това няма да причини някаква странност в бъдеще, когато надстроите до нова версия на операционната система, а dhclient вероятно ще се оплаче много. Това каза, простото chflags schg /etc/resolv.confе всичко, което е необходимо. Файлът вече е напълно защитен от запис, дори от root. Можете да проверите така:

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.

Отмяна с: chflags noschg /etc/resolv.conf

Метод 3: Учтиво кажете на FreeBSD да остави вашите настройки на мира

Това е най-чистият и най-правилният начин да направите това. Има два подхода, които можете да предприемете:

Конфигуриране dhclient

Нека вземем примера отгоре и да кажем, че всичко, което искате да направите, е да поставите своя персонализиран сървър за имена resolv.confи да не искате да го губите всеки път, когато DHCP направи своето. В моя случай искам да използвам кеширащия преобразувател, който инсталирах, който слуша на localhost, така че редактирам /etc/dhclient.conf(който вероятно ще бъде празен освен коментарите) и добавям следното:

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

Това ще позволи на dhclient да направи всичко останало, което трябва да направи, но когато DHCP сървърът му изпрати списък с сървъри за имена, които да използва, вашият ще замени (както и напълно замени) тези, които предлага. Ако предпочитате да допълните (вместо да замените) предложените, можете да „добавите“ или „предварително“ вместо „заместете“, според случая.

Между другото, ако имате нужда от повече от един персонализиран сървър, посочете ги така:

supersede domain-name-servers 127.0.0.1, 127.0.0.2;

След като направите промените си, рестартирайте, dhclientза да влязат в сила незабавно:

service dhclient restart vtnet0

Разгледайте вашия /etc/resolv.confи трябва да откриете, че вече има вашия персонализиран сървър(и) в него.

Към момента на писане, сървърите за имена са единственото нещо, което DHCP сървърът на Vultr някога е поставял в моя resolv.conf, и единственото нещо, което съм искал да персонализирам. Въпреки това, ако някога се наложи да отмените други настройки, консултирайте се с отличното ръководство за изчерпателен списък:

man 5 dhclient.conf

В долната част има страхотни примери, които трябва да ви дадат представа какво можете да направите. На върха на главата ми, мога да си представя, че може да искате да добавите нещо като, supersede domain-name "example.com";ако обикновено имате такава линия във вашия resolv.conf. Отново се консултирайте с документите.

Конфигуриране resolvconf

Това е най-простото решение, ако просто искате resolv.confда останете сами. Според ръководството:

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

Неговата конфигурация се намира в /etc/resolvconf.conf, което вероятно не съществува във вашата система, така че не се колебайте да го създадете. За да направите своя resolv.confнеизменяем, добавете това:

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

Ако използвате unboundкато локален кеш резолвер, това е реда, който добавя (заедно с няколко за себе си). Това по същество подвежда resolvconfда мислите, че /etc/resolv.confсе намирате в /dev/null. Нещо малко по-малко злобно, но също толкова ефективно би било:

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

Ако искате да направите нещо по-сложно от просто да го изключите, страниците на man за resolvconfи resolvconf.confразполагайте с много информация.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече