На моем компьютере с Ubuntu 16.04 я использую DHCP для получения IP-адреса от маршрутизатора моего интернет-провайдера. Он отвечает DNS-серверами и поисковыми доменами DNS, которые я хочу переопределить.

/etc/dhcp/dhclient.conf:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = "my.hostname";

request subnet-mask, broadcast-address, routers, interface-mtu;

supersede domain-name-servers 10.1.2.3;
supersede domain-search "mydomain.tld";

Здесь я настроил DHCP-клиент на:

  • не запрашивать доменные имена серверов и / или поисковый домен
  • переопределите оба domain-name-servers domain-search имен и поиск домена, если таковые имеются.

Однако что теперь происходит с resolvconf:

/etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.1.2.3
search home mydomain.tld

Заметьте вход в home там? Это то, что мой дерьмовый ISP-маршрутизатор посылает мне, несмотря на то, что я не запрашиваю его (подтверждено с помощью tcpdump, см. Ниже). Так что, очевидно, dhclient добавляется вместо переопределения, как если бы я использовал append вместо supersede .

Что я делаю неправильно? Я хочу, чтобы dhclient игнорировал поддельный ненастраиваемый домен поиска DNS.

Я бы посчитал это проблемой безопасности, так как не хочу, чтобы он выполнял поиск пугающего домена для каждого DNS-запроса, который я делаю на своем хосте. Кроме того, почему dhclient даже пытается разобрать варианты ответа, которые он не запрашивал?

Информация о версии программного обеспечения (все версии Ubuntu 16.04):

ii  isc-dhcp-client                        4.3.3-5ubuntu12.7
ii  resolvconf                             1.78ubuntu4

ТСРйитр:

01:09:35.629136 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 52:54:00:23:86:a8, length 300, xid 0x9e3d912a, Flags [none] (0x0000)
          Client-Ethernet-Address 52:54:00:23:86:a8
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request
            Requested-IP Option 50, length 4: 192.168.999.24
            Hostname Option 12, length 27: "my.hostname"
            Parameter-Request Option 55, length 4: 
              Subnet-Mask, BR, Default-Gateway, MTU
01:09:35.642166 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 576)
    192.168.999.1.67 > 192.168.999.24.68: [udp sum ok] BOOTP/DHCP, Reply, length 548, xid 0x9e3d912a, Flags [none] (0x0000)
          Your-IP 192.168.999.24
          Server-IP 192.168.999.1
          Client-Ethernet-Address 52:54:00:23:86:a8
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 192.168.999.1
            Lease-Time Option 51, length 4: 3600
            Hostname Option 12, length 27: "my.hostname"
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Default-Gateway Option 3, length 4: 192.168.999.1
            Domain-Name-Server Option 6, length 8: 1.2.3.4,4.5.6.7
            Domain-Name Option 15, length 4: "home"
            TTL Option 23, length 1: 64

1 ответ1

0

Я заменял неправильный вариант dhcp.

Вместо опции domain-name-search мой маршрутизатор провайдера ответил с параметром domain-name . Последний вариант заменить.

Кажется, что комбинация dhclient-resolvconf объединяет информацию как из основного доменного имени (home здесь) с поисковыми доменами.

Все еще открыт для размышлений: почему dhclient пытается разобрать и обработать опцию domain-name? Я не просил это. Судя по всему, мне нужно заменить все ответы, которые я не просил для этого ненадежного устройства, которое посылает мне? Похоже, хороший вектор атаки здесь ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .