#author("2020-06-27T16:32:55+00:00","default:sysosa","sysosa")
単なる記録

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

***yum updateするとsambaのエラーがでる [#x826130f]
yum updateを行うと希に
「&color(magenta){/etc/krb5.conf};」に「&color(red){includedir /etc/krb5.conf.d/};」が入り込むときがある。
これはこれで必要なのだろうが、このフラグがあるとsambaがエラーになる。
最適な回避方があるかと思うが今はこの行をコメント行にしている


***SSOを使って、windowsからLinuxコマンドを実行 [#b313135c]
[[samba/SSO]]の設定を行ってwindowsのcmdから
#code(nonumber){{
putty.exe -load c -m run.txt
}}
を実行する。「run.txt」にはlinuxコマンドを記述します。
すると、SSOだからパスワードなしでlinuxにログインできて、コマンドが実行できた。





***keytabの期限切れ [#ia1bb447]
メンバーサーバとADサーバをsssdで繋いでいる。
そのメンバーサーバにログインできなくなった。ログには
#code(nonumber){{
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>+https://lists.samba.org/archive/samba/2015-January/187988.html]]が見つかって、メンバーサーバも、''マシン''アカウントとしてADに登録され、パスワードも付けられている。
そのパスワードの期限が切れたのが原因でメンバーサーバにログインできなかった模様

回避方法としてActiveDirectoryに参加する&color(darkorchid){''メンバサーバ''};のsmb.confに下記を追加して
#code(nonumber){{
kerberos method = secrets and keytab
}}
再度&color(darkorchid){''メンバサーバ''};側で net ads join を行いADに参加して、
ADサーバでkeytabを再作成して&color(darkorchid){''メンバサーバ''};にkeytabファイルを配送、
そして&color(darkorchid){''メンバサーバ''};のsssdを再起動する。
&color(red){*};&size(10){当初、ADサーバの設定を変更する記述でしたが、間違いでした};


***Router越しでActiveDirectory認証は受けられるか?(windows編) [#j393b629]
sybyl.localに存在するwindowsPCを''NATルータ''で隔てた&color(darkorchid){''ActiveDirectoryドメイン''};に参加させたい。

&ref(2016y09m10d_233324791.png,nolink);

いろいろ試したが無理
MS側からはサポートしてないとある[[https://support.microsoft.com/ja-jp/kb/978772>+https://support.microsoft.com/ja-jp/kb/978772]]
NAT経由でのIP変更をkerberos認証が許さないみたい。
NAT経由でのIP変更をkerberos認証が許さないみたい。 [[https://active.nikkeibp.co.jp/atclact/active/18/101500040/101500003/>+https://active.nikkeibp.co.jp/atclact/active/18/101500040/101500003/]]
~
なら、その代案を模索すると、
-認証はwindowsPCのローカル認証で行わせ(アカウントとパスワードを手動で合わせる)、
-ホームフォルダのZドライブは、個別に用意して頂く

&color(darkorchid){''AD''};のGPOによる制御はできないのでwindowsPCに仕込むログオンスクリプトを駆使する

***Router越しでActiveDirectory認証は受けられるか?(Linux編/MacOSX編) [#pd9112cf]
windows編で''NATルータ''越しでAD認証は無理と分かったので、ADサーバをLDAPサーバと見立てて認証ができるかを試してみた。
&ref(2016y09m12d_183550161.png,nolink);
参照 [[samba/LDAP]]

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

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

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



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

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

&color(red){*};&size(10){%Systemroot%\System32\Repl\Imports\Scriptsフォルダは規定で用意されてないので作る};

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


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

#code(nonumber){{
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は下記にする
#code(nonumber){{
[project]
    path=/project
    create mode = 0664
    directory mode = 0750    *あるいは0770
    writable = yes
}}

***provision直後のwbinfoら [#a397b9eb]
作成されるユーザ情報
#code(nonumber){{
[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 ~]#
}}
グループ情報
#code(nonumber){{
[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を持つ
#code(nonumber){{
[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には表示される
#code(nonumber){{
[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から [#w9eccf8d]
#code(nonumber){{
[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 ~]#
}}
となるのだが、
#code(nonumber){{
[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 ~]#
}}
ユーザ情報が拾えない。加えて
#code(nonumber){{
[root@nfs ~]# getent passwd | grep administrator | wc -l
0
[root@nfs ~]# getent passwd administrator
[root@nfs ~]#
}}
とnssからも拾えない

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

***samba ActiveDirectory Domain Controller で guest ok = yes な Anonymouse共有フォルダを作る [#f73aff6e]
無理。
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