web-dev-qa-db-ja.com

RedHatサーバー6.7でsamba 3.6.23-30に更新すると、ADフォレストのクライアントからの接続が切断される

Sambaサーバー(バージョン3.6.23-30)をRedHat Enterpriseサーバーバージョン6.7で実行しています。 Active Directoryに参加し、ADに対してユーザーを認証します。 Winbindは実行されていません( "Winbindは使用されていません。ユーザーとグループはローカルです"状況、Samba Howtoによると)。これは、samba 3.6.23-25から3.6.23-30への最後の更新(実際にはBadlockを含む、実際にいくつかのセキュリティ問題の修正が3.6.23-26で導入されたものですが、バージョンはここにデプロイされていません)。

私はSambaを3.6.23-25にダウングレードしてみましたが、3.6.23〜26に含まれるセキュリティ修正を考えると、それは問題を解決(もちろんnotの解決策です) ):

yum downgrade samba-3.6.23-25.el6_7.x86_64 samba-common-3.6.23-25.el6_7 samba-winbind-clients-3.6.23-25.el6_7 samba-client-3.6.23-25.el6_7 samba-winbind-3.6.23-25.el6_7

アップデートのインストール後、ユーザーはサーバー上の共有に接続できなくなり、「アクセスが拒否されました」というメッセージが直接表示されます。

C:\Users\admin>Net Use \\servername /user:INTRANET\username
The password or user name is invalid for \\servername.

Enter the password for 'INTRANET\username' to connect to 'servername':
System error 5 has occurred.

Access is denied.

これはnotです。パスワードが間違っているなどの理由により、エラー1326(ユーザー名またはパスワードが正しくない)が表示されるためです。接続は、Windows 7、Windows Server 2012 R2、およびWindows XP SP3からも試行され、同じ結果が得られました。

net ads testjoinは、そのサーバーがActive Directoryに正しく参加していることを示しています。また、ADを離れて再参加してみましたが、状況は改善しませんでした。

Smbdログ内のクライアントのエラーメッセージ(デバッグログレベルを使用)は次のとおりです。

[2016/04/18 14:09:19.133618,  2] ../libcli/auth/credentials.c:289(netlogon_creds_client_check)   credentials check failed
[2016/04/18 14:09:19.133674,  0] rpc_client/cli_netlogon.c:623(rpccli_netlogon_sam_network_logon)   rpccli_netlogon_sam_network_logon: credentials chain check failed 
[2016/04/18 14:09:19.134036,  0] auth/auth_domain.c:331(domain_client_validate)   domain_client_validate: unable to validate password for user username in domain INTRANET to Domain controller AD6. Error was NT_STATUS_ACCESS_DENIED. 
[2016/04/18 14:09:19.135842,  5] auth/auth.c:281(check_ntlm_password)   check_ntlm_password: winbind authentication for user [username] FAILED with error NT_STATUS_ACCESS_DENIED 
[2016/04/18 14:09:19.135917,  2] auth/auth.c:330(check_ntlm_password)   check_ntlm_password:  Authentication for user [username] -> [username] FAILED with error NT_STATUS_ACCESS_DENIED

ここで、winbindデーモンを起動すると、認証の問題がなくなり、ユーザーはSambaサーバーに正常に接続できます。ただし、その場合、2番目の厄介な問題が発生します。グループメンバーシップのためにユーザーが権限しか持たないディレクトリを取得する(つまり、ユーザーはSambaサーバー上のUNIXグループのメンバーである):

username$ ls -l /export/projects/testproject
drwxrws---.  2 root testgrp     4096 Apr 18 11:24 testproject

ここで、usernametestgrpグループのメンバーであり、ディレクトリに正常にアクセスできます。

username$ ls -l /export/projects/testproject/
-rw-r--r--. 1 root testgrp         0 Apr 18 11:24 test.txt

Sambaサーバーに接続している同じユーザーがnotにアクセスできます(アクセス拒否)。更新前(winbindddisabled)では、アクセスは正常に機能していました。これは、winbinddグループがADオブジェクトにマップされていないため、testgrpが実行されているという事実と関係があると思います(Securityに表示されます) NIX group\testgrp)としてWindowsエクスプローラのタブ。

ここでwinbindを有効にして(対応するADオブジェクトを作成する必要なく)ローカルグループを使用できるようにする方法はありますか?これをsmbd.confに追加してみました:

idmap config * : backend = tdb
idmap config * : range = 1000000-1999999

しかし、それは何も改善しません。これは、ADユーザー/グループをLinuxのユーザー/グループにマッピングすることではなく、逆ではないためです。

または、代わりに、winbinddなしでSambaを実行する場合の「アクセス拒否」の問題は何でしょうか?これはbug更新によって導入された(したがって、バグレポートとしてRedHatに送信する必要があります)か、またはセキュリティモデルの変更によるfeatureですか?

5
Ale

私も同じ問題に直面しました。winbindを使用しないAD認証が壊れていました。

最初にwinbindを停止したのは、ローカルグループを見つけることができなかったためです(ただし、正しいユーザーマッピングを見つけたようです)。以下は、winbindがアクティブ化されたログの抜粋です。

[2016/04/22 16:15:20.654780、5] Auth/token_util.c:527(debug_unix_user_token)
ユーザー1154のUNIXトークン
プライマリグループは496で、0の補足グループが含まれています

ご覧のとおり、ユーザーIDは正しい(1154)が、グループはプライマリグループ(これも正しい)を除いて見つかりません。

その問題を解決する解決策を見つけたようです:オプションを追加する必要があります

username map script = /bin/echo

/etc/smb.conf内。このソリューションはここで提案されました: http://samba.2283325.n4.nabble.com/samba-winbind-ignores-local-unix-groups-td3410748.html 、しかしテストされていません。

Manページで理解したように、このオプションはAD認証後に別のマッピングを強制します。 echoコマンドを使用すると、名前がそれ自体にマップされるだけなので、ローカルのユーザー名がADのユーザー名と同じ場合でも機能します。結果は次のとおりです。

[2016/04/22 16:21:20.996130、5] auth/token_util.c:527(debug_unix_user_token)
ユーザー1154のUNIXトークン
プライマリグループは496で、4つの補足グループが含まれています
[...グループのリスト...]

要約すると:

  • winbindをアクティブにしてAD認証を許可します。

  • 追加 username map script = /bin/echo confファイル内。

この解決策は理想的ではありませんが、より良い何かを待つ間、それは修正である可能性があります。

1
Tabs

はい、これはアップストリームのSambaバグであり、RHELユーザーに最新のSambaパッケージの更新で導入されました。 Red Hatはこの問題を認識しており、修正するためのパッチ候補がありますが、現在(4月27日)の時点では、このパッチを含むアップデートはまだリリースされていません。 https://bugzilla.redhat.com/show_bug.cgi?id=1326918 および https://bugzilla.redhat.com/show_bug.cgi?id=1327697 を参照してくださいこれに関する更新を監視します。

それまでの間、一部のユーザーは、設定で許可されていれば、回避策としてwinbinddを実行できる場合があります。それ以外の場合は、以前のリリースにダウングレードすることが他の唯一のオプションです。

1
Paul Stauffer

いくつかの回答とコメントで述べられているように、Badlock修正が含まれた後のこれはSambaパッケージのバグでした。一時的な回避策として、Tabsが提供するソリューション(winbinddを使用し、構成ファイルでusername map script = /bin/echoディレクティブを設定する)は完全に機能していました。現在、最近更新されたパッケージ(samba-3.6.23-35)でバグが修正されていますで、回避策が不要になりました。

0
Ale

だから、これはこれを置くには適切な場所ではないかもしれませんが、コメントする評判ポイントはありません。 Scientific Linux 6.7にもこの問題があり、先週の水曜日にシステム全体でアップグレードされました。問題はnetbiosの名前解決(nmb)にあることがわかりました。ユーザーがActive Directoryの完全修飾ドメイン名を指定すると、アクセスが許可されます。それ以外の場合は、ドメインのnetbios名を使用すると、「NT_STATUS_ACCESS_DENIED」メッセージが表示されます。

また、ドメインに参加しているWindowsボックスがsamba共有にアクセスできることもわかりましたが、これは、現在のkerberosトークンを持っているためだと思います。

更新:完全修飾ドメイン名を指定すると実際にkerberosチケットが使用され、アクセスが許可されることがわかりました。ubttuマシンで、krb5-userをインストールすると、nautilusがkerberosチケットを取得し、アクセスを許可することがわかりました(機能していませんでした)それがなければ)、私はそれがApple/macクライアントとWindowsクライアントがやっていたことだと思いますが、私はまだ気づいていませんでした。

これは答えではありませんが、お役に立てば幸いです。敬具、-Glen

0
rundblom