18.04: Bionic Beaver: принудительное применение статического /etc/resolv.conf

10

Ранее, в Ubuntu 16.04, я чувствовал себя преданным, когда обновление Ubuntu установило dnsmasqпакет, настроило его и дало ему преимущество перед моим собственным сверхстабильным, сверхбыстрым и настроенным DNS-сервером BIND. Я чувствовал, что Ubuntu взломал мою рабочую станцию.

Так как мне довелось работать системным администратором, это было крайне неприемлемо. Это был ужасный звонок. Это когда вы решаете проблему и на одном из ваших шагов вы используете digили, nslookupи вы ошеломлены, увидев, что loинтерфейс отвечает вам. ПАНИКА

Есть ли способ не только исправить эту проблему, но и гарантировать, что /etc/resolv.confона будет защищена от подделки?

MK
источник

Ответы:

5

Простое редактирование /etc/NetworkManager/NetworkManager.confи отключение systemd-resolved.service(как в этом ответе https://askubuntu.com/a/907249/719422 ). Но это само по себе, хотя и существенно, не гарантирует защиту от взлома resolv.conf.

Чтобы действительно применять статические свойства, /etc/resolv.confкоторые, как вы знаете, будут действовать после перезапусков любого типа, вам нужно установить для них неизменный атрибут. Добавляя ответ Бастиана Фойгта, упомянутый выше, вы делаете это как SuperUser:

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

... изменение nameserverвыбранного вами значения. Таким образом, вы можете быть действительно статичным /etc/resolv.conf.

MK
источник
3
Файл /etc/NetworkManager/NetworkManager.conf не существует в 18.04
hfranco
@hfranco, если это не так, в чем я сомневаюсь, тогда просто создайте! И, кстати, если это ваш случай, то это не стандартная установка; твой случай ненормальный. Я бы сказал, что вы ошиблись при поиске!
МК
@hfranco стара как 12.04 unix.stackexchange.com/questions/154338/...
МК
Это единственное, что сработало для меня в Ubuntu 18.04
Лукас Бустаманте
1

Лучшее решение, которое я нашел, - запретить NetworkManager обновить /etc/resolv.conf и затем создать новый файл /etc/resolv.conf со статическим DNS-сервером. См. Https://www.ctrl.blog/entry/resolvconf-tutorial, чтобы узнать, как это сделать.

Scubadoo
источник
1
Спасибо за спам! Но вам все равно не хватает неизменного атрибута!
МК
0

Согласно документации, вы можете написать resolv.confTo /usr/lib/systemd/resolv.conf, который является статическим файлом , который может быть связан с /etc/resolv.conf. Это не должно быть переписано.

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

Поддерживаются четыре режима обработки /etc/resolv.conf (см. Resolv.conf (5)):

...

Предоставляется статический файл /usr/lib/systemd/resolv.conf, который перечисляет заглушку DNS 127.0.0.53 (см. Выше) в качестве только DNS-сервера. Этот файл может быть символической ссылкой из /etc/resolv.conf для подключения всех локальных клиентов, которые обходят локальные API-интерфейсы DNS, к systemd-resolved. Этот файл не содержит никаких поисковых доменов.

wisbucky
источник
2
Нет простите. Что происходит, когда спецификация меняется или метод конфигурации изменяется по собственному желанию Ubuntu ? Вы знаете, это то же самое фиаско, для которого я оставил испорченные мечты Сати об ОС. И это то же самое фиаско, которого должен избегать Linux. Что не так с resol.conf? Почему хлопот? Зачем пытаться подражать ненавистному и утомительному сетевому конфигу Redhat, так или иначе? Извините, я буду придерживаться только моего решения.
МК
Откуда вы знаете, что ваш файл просто не будет игнорироваться в будущем? Я знаю, что форсирование статического поведения некоторых приложений будет работать, а других - нет. С решением Wisbucky, по крайней мере, мы можем использовать текущий способ. Я тоже не видел необходимости их менять, но не получил голоса. Кто-то отверг это решение, хотя на самом деле оно работает и является самым простым. +1
Марлон
@Marlon "Откуда вы знаете, что ваш файл просто не будет игнорироваться в будущем"? Потому что оно установлено неизменным; и, если /etc/resolv.conf будет проигнорирован, так почему суета все равно строит вокруг него фреймворк ?? Игнорирование файла произойдет только в том случае, если кто-то из Ubuntu wacko решит, что он бесполезен (например, что-то внедряется в файл интерфейсов!)
MK
Если бы я хотел, чтобы кто-то принимал решения за меня, я бы вернулся к сумасшедшему Microsoft Windows, чьи программисты и дизайнеры и Сатья над ними все думают, что они знают о вас лучше, чем вы, и что у вас нет права выбирать, как их запускать создание". Суета!
MK
Зачем суете строить ОС на благо человечества, если человечество не может наслаждаться ею? Что за суета является неизменным атрибутом, если кто-то скажет мне, когда его использовать или нет. Речь идет не о «следовании галактическим наставлениям Веги», а о свободе выбора; никто не должен навязывать вам свой собственный твердый целеустремленный импульс. Вы существо и у вас есть права.
MK
-2

Представленный файл является символической ссылкой на другой файл. Удалить файл

rm /etc/resolve.conf
vim / etc resol.conf
введите ваши данные
: WQ

Файл больше не является символической ссылкой, а постоянным файлом.

0n10n_
источник
Шаги уже направлены к удалению /etc/resolv.conf заранее.
MK