単なる記録

samba/リモートサーバ管理ツール

SSOを使って、windowsからLinuxコマンドを実行

samba/SSOの設定を行ってwindowsのcmdから

putty.exe -load c -m run.txt

を実行する。「run.txt」にはlinuxコマンドを記述します。
すると、SSOだからパスワードなしでlinuxにログインできて、コマンドが実行できた。

keytabの期限切れ

メンバーサーバとADサーバをsssdで繋いでいる。
そのメンバーサーバにログインできなくなった。ログには

Jan  4 21:11:09 ccc [sssd[ldap_child[12703]]]: Failed to initialize credentials using keytab [MEMORY:/etc/krb5.keytab]: 
Preauthentication failed. Unable to create GSSAPI-encrypted LDAP connection.

とある
調べたらhttps://lists.samba.org/archive/samba/2015-January/187988.htmlが見つかって、メンバーサーバも、マシンアカウントとしてADに登録され、パスワードも付けられている。
そのパスワードの期限が切れたのが原因でメンバーサーバにログインできなかった模様

回避方法としてActiveDirectoryに参加するメンバサーバのsmb.confに下記を追加して

kerberos method = secrets and keytab

再度メンバサーバ側で net ads join を行いADに参加して、
ADサーバでkeytabを再作成してメンバサーバにkeytabファイルを配送、
そしてメンバサーバのsssdを再起動する。
*当初、ADサーバの設定を変更する記述でしたが、間違いでした

Router越しでActiveDirectory認証は受けられるか?(windows編)

sybyl.localに存在するwindowsPCをNATルータで隔てたActiveDirectoryドメインに参加させたい。

2016y09m10d_233324791.png

いろいろ試したが無理
MS側からはサポートしてないとあるhttps://support.microsoft.com/ja-jp/kb/978772
NAT経由でのIP変更をkerberos認証が許さないみたい。


なら、その代案を模索すると、

  • 認証はwindowsPCのローカル認証で行わせ(アカウントとパスワードを手動で合わせる)、
  • ホームフォルダのZドライブは、個別に用意して頂く

ADのGPOによる制御はできないのでwindowsPCに仕込むログオンスクリプトを駆使する

Router越しでActiveDirectory認証は受けられるか?(Linux編/MacOSX編)

windows編でNATルータ越しでAD認証は無理と分かったので、ADサーバをLDAPサーバと見立てて認証ができるかを試してみた。
2016y09m12d_183550161.png
参照 samba/LDAP

フォルダリダイレクションが外れない

GPOでフォルダリダイレクションを掛けたのだが、その後それを外した。
外し方は、フォルダリダイレクションの機能を無効(「構成されてません」)にせず、「基本」に設定し直した。

これで外れたと思ったのだが、前の設定が残ってしまう現象が発生した。
解決策としては、問題が起こったマシンのレジストリを調整するしかない。

この値を修正する
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
あと、上記に上書きされるが、現状も確認する
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

ローカルユーザに対するログオンスクリプト

ログオンスクリプトを置く場所は、
https://support.microsoft.com/ja-jp/kb/258286
によると %Systemroot%\System32\Repl\Imports\Scripts フォルダを作って、
共有フォルダ「netlogon」を設定する。

そしてこの Scripts フォルダからの場所をユーザプロファイルに定義するようだ。
例: %Systemroot%\System32\Repl\Imports\Scripts\学生向け\logon.bat なら
学生向け\logon.bat」 とユーザプロファイルに記載する。

*%Systemroot%\System32\Repl\Imports\Scriptsフォルダは規定で用意されてないので作る

でも、実際には共有名「netlogon」が重要らしくて、ファイルシステム上の場所はどこでも構わないみたい。
C:\logonscriptで共有フォルダ「netlogon」でも大丈夫でした。

whsでログオンスクリプト

ネットワークドライブをログオン時に作成するサンプル(logon.vbs)
\\share\project\<ユーザ> というフォルダを自動的に作成して、それをXドライブにしてみる。

Dim objNet,objFso,strNewFolderName,colDrives
Set objNet = CreateObject("WScript.Network")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set colDrives = objNet.EnumNetworkDrives
 
'xドライブ向けユーザフォルダの作成
strNewFolderName= "\\share\project\"+objNet.UserName
If Not objFso.FolderExists(  strNewFolderName  ) Then
    'WScript.Echo "フォルダ作成"
    objFso.CreateFolder strNewFolderName
End If
 
'既存ネットワークドライブの切断
For i = 0 to colDrives.Count -1 Step 2
   objNet.RemoveNetworkDrive   colDrives.Item(i)
   'WScript.Echo colDrives.Item(i)
   'WScript.Echo colDrives.Item (i + 1)
Next
 
'ネットワークドライブの敷設
objNet.MapNetworkDrive      "X:", strNewFolderName
 
 
'後処理
Set objNet = Nothing
Set objFso = Nothing

\\share\project\<ユーザ> にて同じグループだけ閲覧OKにするなら、smb.confは下記にする

[project]
    path=/project
    create mode = 0664
    directory mode = 0750    *あるいは0770
    writable = yes

provision直後のwbinfoら

作成されるユーザ情報

[root@ad ~]# PATH=/opt/samba/bin:$PATH; IFS=$'\n'; for s4u in `wbinfo -u`; do wbinfo --user-info=$s4u; done
SYBYL\administrator:*:0:100::/home/SYBYL/administrator:/bin/false
SYBYL\krbtgt:*:3000016:100::/home/SYBYL/krbtgt:/bin/false
SYBYL\guest:*:3000011:3000012::/home/SYBYL/guest:/bin/false
[root@ad ~]#

グループ情報

[root@ad ~]# PATH=/opt/samba/bin:$PATH; IFS=$'\n'; for s4g in `wbinfo -g`; do wbinfo --group-info=$s4g; done
SYBYL\cert publishers:x:3000017:
SYBYL\ras and ias servers:x:3000018:
SYBYL\allowed rodc password replication group:x:3000019:
SYBYL\denied rodc password replication group:x:3000005:
SYBYL\dnsadmins:x:3000020:
SYBYL\enterprise read-only domain controllers:x:3000021:
SYBYL\domain admins:x:3000008:
SYBYL\domain users:x:100:
SYBYL\domain guests:x:3000012:
SYBYL\domain computers:x:3000022:
SYBYL\domain controllers:x:3000023:
SYBYL\schema admins:x:3000007:
SYBYL\enterprise admins:x:3000006:
SYBYL\group policy creator owners:x:3000004:
SYBYL\read-only domain controllers:x:3000024:
SYBYL\dnsupdateproxy:x:3000025:
[root@ad ~]#

administratorにはUID/GIDが振られないが、winbindでnssを繋ぐと administrator は root と同じUID/GIDを持つ

[root@ad ~]# id administrator
id: administrator: no such user
[root@ad ~]#
[root@ad ~]# authconfig --enablewinbind --enablewinbindauth --update
 
[root@ad ~]# id administrator
uid=0(root) gid=0(root) groups=0(root)
[root@ad ~]# id "SYBYL\administrator"
uid=0(root) gid=0(root) groups=0(root)
[root@ad ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@ad ~]#
[root@ad ~]# getent passwd | grep administrator | wc -l
0
[root@ad ~]# getent passwd administrator
SYBYL\administrator:*:0:100::/home/SYBYL/administrator:/bin/false
[root@ad ~]#

sssdで繋ぐと、uid/gidがないので administrator は表示されないが、wbinfoには表示される

[root@ad ~]# getent passwd | grep administrator | wc -l
0
[root@ad ~]#
[root@ad ~]# PATH=/opt/samba/bin:$PATH; IFS=$'\n'; for s4u in `wbinfo -u`; do wbinfo --user-info=$s4u; done
SYBYL\administrator:*:0:100::/home/SYBYL/administrator:/bin/false
SYBYL\krbtgt:*:3000016:100::/home/SYBYL/krbtgt:/bin/false
SYBYL\guest:*:3000011:3000012::/home/SYBYL/guest:/bin/false
[root@ad ~]#

member serverから

[root@nfs ~]# wbinfo -P
checking the NETLOGON dc connection to "ad.sybyl.local" succeeded
[root@nfs ~]# wbinfo --dc-info=SYBYL
ad.sybyl.local (192.168.0.33)
[root@nfs ~]#
[root@nfs ~]# wbinfo -u
administrator
krbtgt
guest
[root@nfs ~]#

となるのだが、

[root@nfs ~]# PATH=/opt/samba/bin:$PATH; IFS=$'\n'; for s4u in `wbinfo -u`; do wbinfo --user-info=$s4u; done
failed to call wbcGetpwnam: WBC_ERR_DOMAIN_NOT_FOUND
Could not get info for user administrator
failed to call wbcGetpwnam: WBC_ERR_DOMAIN_NOT_FOUND
Could not get info for user krbtgt
failed to call wbcGetpwnam: WBC_ERR_DOMAIN_NOT_FOUND
Could not get info for user guest
[root@nfs ~]#

ユーザ情報が拾えない。加えて

[root@nfs ~]# getent passwd | grep administrator | wc -l
0
[root@nfs ~]# getent passwd administrator
[root@nfs ~]#

とnssからも拾えない

nobodyとユーザ

[イ401]
   path= /share/i401/
   read only = no
   force user = nobody
  • ドメインに所属するマシンで、ドメインユーザとしてログインして、共有フォルダにアクセスして書き込みはOK nobodyとして扱われる
  • ドメインに所属するマシンで、ドメインユーザ名と同じアカウントをローカルに抱え、パスワードが同じだとOK nobodyとして扱われる
    C:\Users\illya> whoami
    fm\illya
  • ドメインに所属するマシンで、ドメインユーザ名と同じアカウントをローカルに抱えるが、パスワードが異なると共有フォルダにアクセスができない
    smb.confをtestparmに掛けると「guest account = nobody」と「map to guest = Never」が有効になっている。
    なので「map to guest」の値を「Never」から「Bad User」「Bad Password」に変更してアクセス可能かを調べたが、すべて拒否された。
  • ドメインに所属していないマシンで、ドメインユーザ名と同じアカウントをローカルに抱え、パスワードが同じだとOK nobodyとして扱われる
  • ドメインに所属していないマシンで、ドメインユーザ名と同じアカウントをローカルに抱えるが、パスワードが異なると共有フォルダにアクセスができない
    ドメイン所属云々に関わらず、ユーザ名とパスワードが一致していれば、共有フォルダにアクセス可能

samba ActiveDirectory Domain Controller で guest ok = yes な Anonymouse共有フォルダを作る

無理。
https://wiki.samba.org/index.php/FAQ
の「I_keep_getting_asked_for_username.2Fpassword_when_trying_to_access_a_public_share_on_the_AD_DC.」参照
ドメイン登録ユーザなら問題ないのだが、ドメイン登録されていないユーザに提供する
Anonymouse共有フォルダは作れないみたい。

member serverなら用意できそう。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-05-11 (木) 23:10:28 (71d)