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
ここで、username
はtestgrp
グループのメンバーであり、ディレクトリに正常にアクセスできます。
username$ ls -l /export/projects/testproject/
-rw-r--r--. 1 root testgrp 0 Apr 18 11:24 test.txt
Sambaサーバーに接続している同じユーザーがnotにアクセスできます(アクセス拒否)。更新前(winbindd
disabled)では、アクセスは正常に機能していました。これは、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ですか?
私も同じ問題に直面しました。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ファイル内。
この解決策は理想的ではありませんが、より良い何かを待つ間、それは修正である可能性があります。
はい、これはアップストリームの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を実行できる場合があります。それ以外の場合は、以前のリリースにダウングレードすることが他の唯一のオプションです。
いくつかの回答とコメントで述べられているように、Badlock修正が含まれた後のこれはSambaパッケージのバグでした。一時的な回避策として、Tabsが提供するソリューション(winbindd
を使用し、構成ファイルでusername map script = /bin/echo
ディレクティブを設定する)は完全に機能していました。現在、最近更新されたパッケージ(samba-3.6.23-35)でバグが修正されていますで、回避策が不要になりました。
だから、これはこれを置くには適切な場所ではないかもしれませんが、コメントする評判ポイントはありません。 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