認証付きファイルサーバを作成
【やったこと】
以前の記事で認証なしraspberry piでNASを作成しました
しかしながらいくら家のNASとはいえパスワードがないのは気になるので
今回はその続きとして認証付きファイルサーバを作っていこうと思います
PS.今回は過ぎ去った猫ミームの爪痕をこの世に刻むため
猫画像をgifファイルへとアップデートしてお届けします
【本日のお品書き】
自分のやった手順なので参考にしていただければ
■ エラー発生
■ トラブルシューティング
■ エラー発生
やっとNAS作成終わったしパパっと認証をONにしますか~~
前回の記事でもうuserを作ってあるから楽勝~~~
useradd <user名>
sudo smbpasswd -a <user名>
configファイルはそれ用に整えてあるから~
[home_NAS]
comment = Share
path = /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
public = yes
read only = no
browsable = yes
force user = <samba用user名>
あとは public = no にすれば認証できるようになるでしょ
アクセスできません
私の環境ザコすぎ・・・・?
■ トラブルシューティング
ここからは私の戦いの記録になります
環境ごとにエラーが違うかと思いますので、参考程度に
【やったこと1】 Windows PCからラズパイへのSSH接続
ラズパイのユーザ設定がちゃんとできて通信できることを確認するために
SSHでラズパイ接続をuser指定でやってみました
まずラズパイのSSHを有効にするためにコンフィグ設定します
sudo raspi-config
コンフィグ設定が出てくるので3番 Interface Optionを選択
1番SSHを選択
enableなのではいを選択
これでSSH接続可能なになったので、ESCでconfig終了
windows上でteratermかそのほかコンソールソフトウェアからSSHをします。
自分はrLoginを使っているので例としてrLoginの設定をば
ホスト名にIP addressを入力
ログインユーザー名に作成したsamba用に作成したuser名を入力
パスワードに設定したパスワードを入力
これでOKして接続します
ここで通ればWindows⇒ラズパイ ユーザ指定の乗り込みが可能であるため
ユーザー指定さえできればファイルサーバへの接続が可能と考えました
結果これはOK
認証画面自体が出ないことが問題であると目星をつけました
【やったこと2】 net情報の削除
原因をググってたら以下情報を見つけました
めちゃくちゃ参考になりましたありがとうございます
内容的にはモロにこの内容でした
ネットワーク接続時には$IPCという情報が作成されるらしいということを知りました
以下chatgptくんより
IPC$は通常の共有フォルダではなく、プロセス間通信 (Inter-Process Communication) を目的とした特殊な共有リソースです
はえ~しらんかった
とにかくこいつが存在しているかはWindows上のCMDで以下を入力
net use
なんかおるなぁ??
以下で削除
(消したいネットワークドライブを環境に合わせて指定してね)
net use \\raspberrypi\home_NAS /delete
これで消えます
ほんでネットワーク上のドライブをクリック
出たぁ!!!!!!
やはり以前の接続情報がIPC$に残っていて
認証画面が出てこなかったようです
ほいじゃぁユーザとパスワードをいれて入りますか~~~^^^^^^
同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません
ワケのわかんねぇことをごちゃごちゃと・・・・・・
同じユーザなのか複数なのかはっきりしろ
結構エラーを見てきましたが
国語的にここまでわからんのは初めてです
【やったこと3】 /etc/samba/smb.confの編集
とりあえずユーザ系で怒られているので
configファイルの書き方を修正してみました
というのもchatgpt君にconfファイルについて聞いていたところ
以下の回答があったためです
force userの項目はSamba共有にアクセスするすべてのユーザーが特定のLinuxユーザー権限でファイルを操作するように設定することが可能です
単純に読み解くとforce userの設定は
ログイン後にforce userに設定されたuserの権限が強制されるものと読めました
そのためログイン自体には効かないのか?と思ったからです
様々なブログでは以下のように記述されているのでそのようにしました
[home_NAS]
comment = Share
path = /media/NAS/home_NAS
read only = no
browsable = yes
guest ok = no
force user = home_nas
[home_NAS]
comment = Share
path = /media/NAS/home_NAS
read only = no
browsable = yes
guest ok = no
valid users = @sambashare
force group = sambashare
force user = home_nas
valid usersを指定して許可されたユーザー群を指定しました
まだgroupを作ってないので記載に合うようにsambashareの作成と
ユーザーhome_nasをグループsambashareへ所属させます
まずはグループの作成
sudo groupadd sambashare
なんか失敗するので以下でgroupを確認するとsambashareが作られてました
(最初からあるのかはわからないので、ない人は作ってください)
getent group sambashare
sambashare:x:<group id>:
この出力ではgroup sambashareは存在するがそこに所属するuserは居ないみたいです
なので以下で追加してあげます
sudo usermod -aG sambashare home_nas
設定完了なので以下で再起動
sudo service smbd restart
治ったか確認
同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません
次・・・・・・・・・・・
【やったこと4】 /etc/samba/smb.confの編集その2
こちらのサイト様で以下の記述を見つけた
将来の Samba の リリースでは、 クライアントとして、LanMan 認証(NTLM,NTLMv2 又は Kerberosとは異なる) のサポートが削除される。
このため、将来は、現在の既定値である client NTLMv2 auth = yes が強制的に設定される。
なので明示的に以下を記載する
あとsecurity = userで認証方法をuser+passwordに設定しておく
[global]
security = user
ntlm auth = no
client lanman auth = no
client ntlmv2 auth = yes
設定完了なので以下で再起動
sudo service smbd restart
治ったか確認
同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません
次・・・・・・・・・・・
【やったこと5】 windowsの認証設定の追加
こちらのサイト様で以下の記述を発見
Windows 10(1709)以降、匿名認証が無効化されました。
※匿名認証とは、認証されていない(識別できない)ユーザーでアクセスする機能です。
つまりWindows10は自分のアカウント情報を勝手に使っちゃうので
それでエラーが出てたっぽいです
このような情報を残してくれていることにめちゃくちゃ感謝です
本当にありがとうございます
ということで、windowsの資格情報を開いて
Windowsの資格情報の編集から以下設定
いけるか・・・・?
いったぁぁああああ!!!
おわり
今回のエラー原因は
IPC$情報が残っていた+windows 10からの認証方法の変更の複合エラー
というオチでした
危うく意味不明なエラー文絶許マンになるところでした
命拾いしましたね
次回は謎解説ブログユーティリティプログラムでお会いしましょう