18.04: Bionic Beaver: wymuszanie static /etc/resolv.conf

10

Wcześniej na Ubuntu 16.04 czułem się zdradzony, gdy dnsmasqpakiet aktualizacji Ubuntu zainstalował , skonfigurował go i dał pierwszeństwo mojemu własnemu superstabilnemu, ultraszybkiemu i skonfigurowanemu serwerowi BIND DNS. Dokładnie czułem, jakby Ubuntu zhakował moją stację roboczą.

Ponieważ zdarzyło mi się pracować jako administrator systemu, było to wyjątkowo nie do przyjęcia. To była dziwna rozmowa. To jest, gdy przejdziesz do rozwiązania problemu i wykonasz jeden ze swoich kroków diglub nslookuposzołomiony, gdy zobaczysz, że lointerfejs odpowiada. PANIKA

Czy istnieje sposób, aby nie tylko naprawić ten problem, ale także zagwarantować, że /etc/resolv.confbędzie odporny na manipulacje?

MK
źródło

Odpowiedzi:

5

Prosta edycja /etc/NetworkManager/NetworkManager.confi wyłączenie systemd-resolved.service(jak w tej odpowiedzi https://askubuntu.com/a/907249/719422 ). Ale to samo, chociaż niezbędne, nie gwarantuje zabezpieczenia przed manipulacją resolv.conf.

Aby naprawdę wymusić ładunek elektrostatyczny /etc/resolv.conf, o którym wiesz, że przetrwa jakiekolwiek restarty, musisz ustawić dla niego atrybut niezmienny . Dodając do wspomnianej wyżej odpowiedzi Bastiana Voigta, robisz to jako SuperUser:

echo nameserver 8.8.8.8 > /etc/resolv.conf
chattr -e /etc/resolv.conf
chattr +i /etc/resolv.conf

... zmieniając na nameserverwybraną wartość. W ten sposób możesz mieć naprawdę statyczny /etc/resolv.conf.

MK
źródło
3
Plik /etc/NetworkManager/NetworkManager.conf nie istnieje w 18.04
hfranco
@ hfranco, jeśli tak nie jest, co wątpię, to po prostu je stworzysz! A tak przy okazji, jeśli tak jest w twoim przypadku, to nie jest to standardowa konfiguracja; twoja sprawa jest nienormalna. Powiedziałbym, że pomyliłeś się, szukając tego!
MK
@hfranco Stary jak 12.04 unix.stackexchange.com/questions/154338/…
MK
To jedyna rzecz, która działała dla mnie na Ubuntu 18.04
Lucas Bustamante
1

Najlepszym rozwiązaniem, jakie znalazłem, jest uniemożliwienie NetworkManagerowi aktualizacji /etc/resolv.conf, a następnie utworzenia nowego pliku /etc/resolv.conf ze statycznym serwerem DNS. Zobacz https://www.ctrl.blog/entry/resolvconf-tutorial, jak to zrobić.

Scubadoo
źródło
1
Dzięki za spam! W każdym razie brakuje ci atrybutu Niezmienność!
MK
0

Zgodnie z dokumentami możesz napisać resolv.confdo /usr/lib/systemd/resolv.conf, który jest plikiem statycznym, z którym można się połączyć /etc/resolv.conf. Tego nie należy przepisywać.

sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf

http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html#contenttoc3

/ETC/RESOLV.CONF

Obsługiwane są cztery tryby obsługi /etc/resolv.conf (patrz resolv.conf (5)):

...

Udostępniono plik statyczny /usr/lib/systemd/resolv.conf, który zawiera skrót DNS 127.0.0.53 (patrz wyżej) jako tylko serwer DNS. Ten plik może być dowiązaniem symbolicznym z /etc/resolv.conf w celu połączenia wszystkich lokalnych klientów, którzy omijają lokalne interfejsy API DNS, do systemd-resolved. Ten plik nie zawiera żadnych domen wyszukiwania.

wisbucky
źródło
2
Nie przepraszam Co się stanie, gdy specyfikacja zmieni się lub metoda konfiguracji zmieni się na własną rękę Ubuntu ? Wiesz, to jest to samo fiasko, dla którego Satya opuściła zepsute marzenia o systemie operacyjnym. I to jest to samo fiasko, którego Linux powinien unikać. Co jest nie tak z rozdzielczością.conf? Dlaczego kłopot Po co próbować naśladować nienawistną i żmudną konfigurację sieci Redhat, w taki czy inny sposób? Przepraszam, pozostanę tylko przy moim rozwiązaniu.
MK
Skąd wiesz, że Twój plik nie zostanie po prostu zignorowany w przyszłości? Wiem, że wymuszanie statycznego sposobu działania niektórych aplikacji, a innych nie. Dzięki rozwiązaniu wisbucky przynajmniej możemy wykorzystać obecny sposób. Nie widziałem też potrzeby ich zmiany, ale nie dostałem głosu. Ktoś ocenił to rozwiązanie, gdy w rzeczywistości działa i jest najprostsze. +1
Marlon
@Marlon „Skąd wiesz, że twój plik nie będzie po prostu ignorowany w przyszłości”? Ponieważ jest niezmienny; a jeśli /etc/resolv.conf zostanie zignorowany, to po co w ogóle budowanie wokół niego? Zignorowanie pliku nastąpi tylko wtedy, gdy niektóre Ubuntu wacko zdecyduje, że jest bezużyteczne (na przykład implementuje coś do pliku interfejsów!)
MK
Gdybym chciał, aby ktoś podejmował za mnie decyzje, wróciłbym do wacko Microsoft Windows, którego koderzy i projektanci oraz Satya ponad nimi uważają, że znają twoją cenę lepiej niż ty i że nie masz prawa wybierać sposobu uruchamiania ich „ kreacja". Zamieszanie!
MK
Dlaczego zamieszanie buduje system operacyjny dla dobra ludzkości, skoro ludzkość nie może się nim cieszyć? Co za zamieszanie jest atrybutem niezmiennym, jeśli ktoś powie mi, kiedy go użyć, czy nie. Tu nie chodzi o „przestrzeganie galaktycznych instrukcji Vegi”, chodzi o wolność wyboru; nikt nigdy nie powinien wywierać na ciebie własnego sztywnego, jednomyślnego impulsu. Jesteś istotą i masz prawa.
MK
-2

Obecny plik jest dowiązaniem symbolicznym do innego pliku. Usuń plik

rm /etc/resolve.conf
vim / etc resol.conf
wprowadź swoje dane
: wq

Plik nie jest już dowiązaniem symbolicznym, ale plikiem trwałym.

0n10n_
źródło
Kroki już prowadzą bezpośrednio do usunięcia pliku /etc/resolv.conf.
MK