はじめに
Ubuntu Linuxを実行する
ADサービスクライアントを設定するプロセスで、Sambaツールを使用したDNSサーバー上のレコードの更新の遅れと、「net ads dns register」コマンドの誤った操作に直面しました。 ドメインコンピューターで作業するときに関連する問題の原因は何ですか。
たとえば、dhclient.confに2つのDNSサーバーが存在すると、「net ads dns register -P」の実行後にエラー「ERROR_DNS_GSS_ERROR」が発生します。
この問題の解決策を探して、私は多くの記事とバグレポートを読み、
Warlock_ua記事
「LinuxからのWindowsドメインのDNSレコードの安全な動的更新(GSS-TSIG)」につまずきました。 このアイデアは私にとって興味深いものでした。 しかし、すべてのDNSゾーンエントリを変更する権利を持つ、別のドメインユーザーアカウントを作成するという決定が好きではありませんでした。 まず、潜在的に安全ではありません。 第二に、Windowsには既製のソリューションが既に存在します。各コンピューターアカウントには、そのエントリをDNSに変更する権利があります。 これを活用してみませんか?
基本として、私はWarlock_uaから
learn-address.shスクリプトを
取得し、必要に
応じて
それを完成させました。
インフラについて
Windows Server 2008 R2 Standardを実行するADサービスとMS DNSサーバーがあります。 それらはWindows管理者によって実行されます。 DHCPサーバーはシスコに基づいています。 これはネットワーク管理者によって管理されます。 何がそうなのか、私にとってはこれはすべてクラウドのどこかにあり、ブラックボックスのようなものです。 また、Samba 4.1.6、isc-dhcp-clientがインストールされたUbuntu 14.04(Trusty)を実行しているクライアントもあります。 これは私の一部です。
DNSレコードを更新するスクリプト
ADドメインで実行されているUbuntuを実行しているコンピューターを入力する手順全体については説明しません。これは記事の範囲を超えているためです。 キーポイントのみを説明します。
DNSレコードを更新するコンピューターは、ドメインに入力する必要があります。 つまり 彼はドメインにアカウントを持っている必要があります。 まず、Trivial DataBaseからコンピューターアカウントのパスワードを取得する必要があります。 これは、
tdbdumpユーティリティを使用して
実行できます。
sudo tdbdump -k SECRETS/MACHINE_PASSWORD/DOMAIN /var/lib/samba/private/secrets.tdb | sed 's/\\\00$//'
その後、
ktutilユーティリティを使用して、マシンの資格情報で
keytabファイルを作成する必要があります。
ktutil <<EOF addent -password -p $cn@DOMAIN.LOCAL -k 1 -e rc4-hmac $MPAS write_kt $keytab_file quit EOF
次に、
Kerberosチケットを取得
する必要があります。
kinit -k -t $keytab_file $user
また、特定のコンピューターアカウントのDNSレコードを更新できます。
nsupdate-gsstsigの概要
nsupdate-gsstsig update <ip> <hostname>
nsupdate-gsstsigのリスト
スクリプト実行
便宜上、スクリプトを/ bin / nsupdate-gsstsigに配置しました。
DNSの情報が自動的に更新されるように、regdnsスクリプトを作成して/etc/network/if-up.d/に配置しました。
regdnのリスト