/etc/hostsのKerberos DNSの問題

/etc/hostsのKerberos DNSの問題

時間をかけて関心をお寄せいただきありがとうございます。簡単に言うと、私のADドメイン(Server 2012システムでホストされている)に対するKerberos認証をテストするためにkinitを呼び出すと、このエラーが発生します。

エラー:kinit:初期資格情報の取得中に「MYDOMAIN.LOCAL」領域のKDCに接続できません。

今明示的に設定すると韓国KDCホスト名の代わりにIPアドレスに変更します/etc/krb5.conf(例:kdc = 172.16.0.10はkdc = ad0.mydomain.localと同じで、admin_serverと同じです)。韓国KDC/etc/krb5.confホスト名に設定されました韓国KDCにも明確な項目があります/etc/hosts。私の本当の質問はこれがなぜ必要なのかということです。 DNSのポイントは、これらのローカルホストファイルを使用する必要はなく、設定をそのように設定したくありません。なぜこれが起こるのか知っている人がいますか?すべての一般的なネットワークツールとhost -t SRV ...クエリは、これらの追加の手順がなくても正常に機能するようです(詳細は以下を参照)(/etc/krb5.confホスト名がリストされており、エントリがありません/etc/hosts)。

kinitもしそうなら、私のresolv.confファイルが無視される理由を誰が教えてもらえますか?

トークン

  • ローカルホストIP172.16.0.20
  • ローカルホスト名は次のとおりです。ps
  • ローカルFQDNの例ps.mydomain.local
  • ADホストIPは172.16.0.10
  • ADホスト名は次のとおりです。ad0
  • AD FQDNはad0.mydomain.local
  • AD 基本 DNS
  • ドメイン名はmydomain.local次のとおりです。 (.localが良くないことを知って作業しています。)
  • ネットワークは172.16.0.0/24です。

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 172.16.0.20
  netmask 255.255.255.0
  gateway 172.16.0.1
  network 172.16.0.0
  broadcast 172.16.0.255
  dns-nameservers 172.16.0.10 8.8.8.8
  dns-search MYDOMAIN.LOCAL

/etc/hosts

127.0.0.1 localhost
172.16.0.20 ps.mydomain.local ps

# IPv6 stuff, don't think it's relevant to the problem
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

/etc/resolv.conf- 自動生成

nameserver 172.16.0.10
nameserver 8.8.8.8
search MYDOMAIN.LOCAL

/etc/krb5.conf

[libdefaults]
  default_realm = MYDOMAIN.LOCAL
  dns_lookup_kdc = true
  dns_lookup_realm = true
  # tried dns_lookup_realm as both true and false, no change

[realms]
  MYDOMAIN.LOCAL = {
    kdc = ad0.mydomain.local
    admin_server = ad0.mydomain.local
    default_domain = mydomain.local
  }

[domain_realm]
  .opticonwa.local = OPTICONWA.LOCAL
  opticonwa.local = OPTICONWA.LOCAL

kinit機能がインストールされている場合はすべて機能するため、smb.confは含まれません。

テスト

user@ps:~$ KRB5_TRACE=/dev/stdout kinit administrator
[1634] 1447281918.814976: Getting initial credentials for [email protected]
[1634] 1447281918.815297: Sending request (181 bytes) to MYDOMAIN.LOCAL
[1634] 1447281918.815346: Resolving hostname ad0.mydomain.local
[1634] 1447281923.817731: Resolving hostname ad0.mydomain.local
kinit: Cannot contact any KDC for realm 'MYDOMAIN.LOCAL' while getting initial credentials

user@ps:~$ host -t SRV _kerberos._udp.mydomain.local
_kerberos._udp.mydomain.local has SRV record 0 0 88 ad0.mydomain.local.
_kerberos._udp.mydomain.local has SRV record 0 100 88 ad0.mydomain.local.

user@ps:~$ host -t SRV _kerberos._tcp.mydomain.local
_kerberos._tcp.mydomain.local has SRV record 0 0 88 ad0.mydomain.local.
_kerberos._tcp.mydomain.local has SRV record 0 100 88 ad0.mydomain.local.



user@ps:~$ dig -x 172.16.0.10
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> -x 172.16.0.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19749
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;10.0.16.172.in-addr.arpa.  IN  PTR

;; ANSWER SECTION:
10.0.16.172.in-addr.arpa. 1200 IN   PTR ad0.mydomain.local.

;; Query time: 2 msec
;; SERVER: 172.16.0.10#53(172.16.0.10)
;; WHEN: Thu Nov 12 11:19:27 PST 2015
;; MSG SIZE  rcvd: 92

サーバーには1つのSRVレコードしかない(少なくとも私が知っている限り)、なぜ2つのSRVレコードを表示するのかわかりません。

gententホストの出力...

user@ps:~$ getent hosts ad0.mydonaim.local


user@ps:~$ getent hosts 172.16.0.10
172.16.0.10 ad0.mydomain.local

したがって、ホストファイルにドメインコントローラのエントリが含まれていない場合は、リバースルックアップが機能します。順方向検索ではそうではありません。エントリがホストにある場合は両方とも機能します。

nsswitch.confの出力はデフォルトのインストールでは変更されません。

passwd:     files winbind
group:      files winbind
#passwd:         compat
#group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

それでは、kinitがなぜそれを無視しているのかを教えてくれる人はいますか/etc/resolv.conf?これはadmin_serverスタンザの不完全なDNS実装に関連している可能性がありますか/etc/krb5.conf?それとも、私が認識していない一種のDNS catch-22に閉じ込められていますか?しかし、なぜKerberosだけがあるのですか?追加の質問でローカルホスト名を見つける必要があるのはなぜですか/etc/hosts anyway?バックエンドでどのように機能するかを説明するLinuxネットワークの詳細な記事を教えてくれる人はいますか?

助けてくれてありがとう。本当に迷惑です。

答え1

kinit / kerberosが正しく機能するには、ホスト名のルックアップとゾーンforwardに対してreverse機能する必要があります。nsswitch.confネームサービス情報を取得するLinuxホストのソースを決定します。このファイルの各行はデータベースソースを制御します。たとえば、hostsこの行は、ホスト名解決のために検索するソースを決定します。

デフォルト設定はhosts

hosts: files mdns4_minimal [NOTFOUND=return] dns

filesDNSはまったく検索されません。ホストレコードが(/ etc / hosts)に見つからない場合は返されますmdns4_minimal(このソースはavahi-daemonに関連しているようです)multicast DNSしかし、Kerberosホストを確認できないようです)

[NOTFOUND=return]接続が許可されているホスト確認プロセスを削除しますdns servers(上記の要求に従って機能しているようです/etc/resolv.conf)。dig

関連情報