web-dev-qa-db-ja.com

Ubuntu 12.04、Windows 2012 Active Directory統合、Kerberosはサービスプリンシパルを解決しません

文字通りインターネット全体をチェックした後、ここで助けが得られることを願っています。

Nfsとシングルサインオンを使用して、ubuntu12.04サーバーをWindows2012 ActiveDirectoryに統合しようとしています。

セットアップ:

  • srv02Windowsサーバー
  • srv03Ubuntuファイルサーバー
  • srv04Ubuntuアプリケーションサーバー

  • ドメイン:lettrich.local

  • レルム:LETTRICH.LOCAL

何が機能するか

  • dnsntpおよびdhcpを使用したWindows2012ADのセットアップ
  • ubuntuサーバーはmsktutilとgetting を使用して広告に登録します
    1. ユーザーのKerberosチケット(例:kinit [email protected]は機能します)
    2. およびマシン(kinit -k srv03 $ @ LETTRICH.LOCALが機能します)、
    3. uidとgidは、AD上のUNIXのID管理と、gssapiを介したsssdを使用して解決されます。

動作しないもの:

  • srv03でホストされているsrv04にNFS共有をマウントします。
  • サービスプリンシパルのKerberosチケットを取得します。

例えば。

Sudo kdestroy
Sudo kinit -k
kinit: Client 'Host/[email protected]' not found in Kerberos database while getting initial credentials

srv03のkrb5.keytab、srv04のアナログ。

Sudo klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
  10 [email protected] (arcfour-hmac) 
  10 [email protected] (aes128-cts-hmac-sha1-96) 
  10 [email protected] (aes256-cts-hmac-sha1-96) 
  10 nfs/[email protected] (arcfour-hmac) 
  10 nfs/[email protected] (aes128-cts-hmac-sha1-96) 
  10 nfs/[email protected] (aes256-cts-hmac-sha1-96) 
  10 Host/[email protected] (arcfour-hmac) 
  10 Host/[email protected] (aes128-cts-hmac-sha1-96) 
  10 Host/[email protected] (aes256-cts-hmac-sha1-96)

nfsエクスポート:

cat /etc/exports
/export               gss/krb5(rw,fsid=0,no_subtree_check,sync,insecure,crossmnt,anonuid=65534,anongid=65534)
/export/users           gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/groups           gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/share           gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)
/export/backup           gss/krb5(rw,no_subtree_check,sync,insecure,nohide,anonuid=65534,anongid=65534)

srv04への取り付け

Sudo mount -t nfs4 -o sec=krb5 srv03:/export /mnt

エラーが発生します

srv04 rpc.gssd[754]: ERROR: No credentials found for connection to server srv03

Active Directoryには、正しいサービスプリンシパル名を持つドメインコンピューターとしてsrv03とsrv04の両方がリストされています(名前はそれに応じて変更されます)

service principal name = nfs/srv03.lettrich.local; Host/srv03.lettrich.local

私の間違いはどこにありますか? (そして、ええ、時間は同期しています;-))

必要に応じて詳細情報を提供します。

喜んで手伝ってくれるすべての人に事前に感謝します。

6
Michael

私は、時間の経過とともに、このスレッドに答えて閉じるのを忘れたことを認めなければなりません。正しいSSSD構成を作成するとともにこれらの手順に従うと、問題が解決しました。 http://ubuntuforums.org/showthread.php?t=192466

0
Michael

まず、新しいLinuxサーバーのDNSレコードを直接登録し、元に戻す必要があります。これをWindowsドメインに登録します。

次に、LinuxサーバーではDNSリゾルバーをWindowsにポイントし、Linuxの/ etc/hostsを適切なフィールドに変更します

第三に、Kerberos5とwinbindアプリ/モジュール/ライブラリをインストールする必要があります

第4に、/ etc /krb5.confを次のように構成します。

[libdefaults]
    default_realm = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS

[realms]
    YOUR.FULL.DOMAIN.WITH.UPPER.CHARS = {
            kdc = list of IPs windows domain servers
            admin_server = one ip for master domain server
    }

[domain_realm]
    your.full.comain.with.lover.chars = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS

[logging]
#example logging
    kdc = FILE:/var/log/kerberos/krb5kdc.log
    admin_server = FILE:/var/log/kerberos/kadmin.log
    default = FILE:/var/log/kerberos/krb5lib.log

5番目に、/ etc/samba /smb.confを構成します。

[global]
workgroup = YOUR.SHORT.DOMAIN.WITH.UPPER.CASE
netbios name = YOUR.SERVER.NAME.WITH.UPPER.CASE.WITHOUT.DOMAIN
realm = YOUR.FULL.DOMAIN.WITH.UPPER.CHARS
security = ads
password server = windows.ip.server.what.allows.password.change
wins server = as.above.supports.wins.messages
wins proxy = no
kerberos method = system keytab
dedicated keytab file = /etc/krb5.keytab
server string = write what you want using %h as Host name
dns proxy = no
idmap config * : backend = rid
idmap config * : range = 10000-20000
winbind use default domain = Yes
winbind enum users = Yes
winbind enum groups = Yes
winbind nested groups = Yes
winbind separator = +
winbind refresh tickets = yes
template Shell = /bin/bash
template homedir = /home/%D/%U
preferred master = no
inherit acls = Yes
map acl inherit = Yes
acl group control

第6に、一時的に任意のユーザーを使用して接続できることを確認します。

wbinfo -t   #test only
net getdomainsid  #should print local and domain identifier
wbinfo -u   #domain user list, may take long time for many users
wbinfo -g   #domain group list

第7に、パスワードの有効期限が切れず、変更できないテクニカルユーザーアカウントを作成します。その他はデフォルトのままにします。そのユーザーを別のADディレクトリに収集します:)

第8に、キータブを生成します。

ネット広告keytabcreate -U [email protected]

次に、/ etc /krb5.keytabが存在することを確認します

これで、特にntlmヘルパーを使用して、他のサービスを構成できます。以下を使用して接続をテストできます。

ntlm_auth --username UPPER.CASE.SHORTNAME.DOMAIN+your.technical.username

パスワードを入力すると、ステータスが表示されます。

NT_STATUS_OK: Success (0x0)

現在、多くのサービスを認証するようにPAMを構成できますが、私はこれを行いませんでした。私はその設定をApache2.2ntlm認証でうまく使用しています。 sshとXsessionのpam設定を見ました。

主なアイデアは、winbindのみがActiveDirectoryに対して認証することです。他のすべてのサービスは、ローカルで認証され、何らかの方法でwinbindされます。 Winbindはsambaの一部です。 sambaが必要ない場合は、winbindのみをインストールします。これにより、いくつかのsambaライブラリがインストールされます。

接続を構成すると、wbinfoが接続に失敗することがあります。次に、ドメイン情報の伝播を5分以上待つ必要があります。

もちろん、すべてのmashineの時間は同期している必要があります。これのためにNTPを設定します。私はdebianを使用していますが、ubuntuはすべてdebianに似ています:)幸運を祈ります。

1
Znik

クライアントのSPNをどのように作成しましたか?

これを行うためにSambaを使用して良い結果が得られました(ネット広告が参加)。

0
TheFiddlerWins