認証付きファイルサーバを作る

## 認証付きファイルサーバを作成
### 【やったこと】
　以前の記事で認証なしraspberry piでNASを作成しました
 
https://qiita.com/edidi-n/items/26dd44468a2343304091

しかしながらいくら家のNASとはいえパスワードがないのは気になるので
今回はその続きとして認証付きファイルサーバを作っていこうと思います

PS.今回は過ぎ去った猫ミームの爪痕をこの世に刻むため
　 猫画像をgifファイルへとアップデートしてお届けします

<br>

### 【本日のお品書き】
　自分のやった手順なので参考にしていただければ
　■ エラー発生
　■ トラブルシューティング

<br>

## ■ エラー発生

やっとNAS作成終わったしパパっと認証をONにしますか～～
![chipichapa.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/0b85d41a-6f05-35dc-c515-eea48e8fd64c.gif)
前回の記事でもうuserを作ってあるから楽勝～～～

```tex:前回の作業：samba user作成
useradd <user名>
sudo smbpasswd -a <user名>
```

configファイルはそれ用に整えてあるから～

```tex:.smbconf
[home_NAS]
    comment = Share
    path = /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
    public = yes
    read only = no
    browsable = yes
    force user = <samba用user名>
```

あとは public = no にすれば認証できるようになるでしょ

<br>

![network_error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/6fa7b494-d918-6656-6fe3-637758c7793d.png)

**アクセスできません**

![hah.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/b0ebe35d-2855-0507-51b4-c4a0d38c08f5.gif)

<br>

私の環境ザコすぎ・・・・？

<br>

## ■ トラブルシューティング

ここからは私の戦いの記録になります
環境ごとにエラーが違うかと思いますので、参考程度に

### 【やったこと１】 Windows PCからラズパイへのSSH接続

ラズパイのユーザ設定がちゃんとできて通信できることを確認するために
SSHでラズパイ接続をuser指定でやってみました

まずラズパイのSSHを有効にするためにコンフィグ設定します

```tex:console
sudo raspi-config
```

コンフィグ設定が出てくるので3番 Interface Optionを選択

![raspi-config.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/4f13bb87-b466-a8af-82c2-4f3e73de7d9d.png)

1番SSHを選択

![interface-config.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/f530ecd4-653e-23cf-2a80-2da761debe77.png)

enableなのではいを選択

![ssh-config.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/2dc3e857-bbba-5b24-0bc1-5f906687f1f7.png)

これでSSH接続可能なになったので、ESCでconfig終了

windows上でteratermかそのほかコンソールソフトウェアからSSHをします。
自分はrLoginを使っているので例としてrLoginの設定をば

![rLogin_ssh.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/abd8ace6-6123-5ffc-a119-e5f95747d6b8.png)

ホスト名にIP addressを入力
ログインユーザー名に作成したsamba用に作成したuser名を入力
パスワードに設定したパスワードを入力

これでOKして接続します


ここで通ればWindows⇒ラズパイ　ユーザ指定の乗り込みが可能であるため
ユーザー指定さえできればファイルサーバへの接続が可能と考えました


**結果これはOK**
**認証画面自体が出ないことが問題であると目星をつけました**

### 【やったこと２】 net情報の削除

原因をググってたら以下情報を見つけました
めちゃくちゃ参考になりましたありがとうございます

https://blog.freedom-man.com/samba_from_windows

内容的にはモロにこの内容でした
ネットワーク接続時には$IPCという情報が作成されるらしいということを知りました

以下chatgptくんより
>IPC$は通常の共有フォルダではなく、プロセス間通信 (Inter-Process Communication) を目的とした特殊な共有リソースです

はえ～しらんかった
とにかくこいつが存在しているかはWindows上のCMDで以下を入力

```tex:windows cmd
net use
```

![net use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/9888df01-d209-fa65-ff07-80150132cfe9.png)

なんかおるなぁ？？

以下で削除
（消したいネットワークドライブを環境に合わせて指定してね）

```tex:windows cmd
net use \\raspberrypi\home_NAS /delete
```
これで消えます
ほんでネットワーク上のドライブをクリック

![net auth.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/55296b69-28f6-5e89-4982-625df88b1b49.png)

**出たぁ！！！！！！**

やはり以前の接続情報がIPC$に残っていて
認証画面が出てこなかったようです

<br>

ほいじゃぁユーザとパスワードをいれて入りますか～～～＾＾＾＾＾＾

<br>

![NAS login error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/ba00a157-0e6b-732e-3342-416e40830175.png)

<br>

![hah.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/b0ebe35d-2855-0507-51b4-c4a0d38c08f5.gif)

**同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません**

<br>

ワケのわかんねぇことをごちゃごちゃと・・・・・・
同じユーザなのか複数なのかはっきりしろ

<br>

結構エラーを見てきましたが
国語的にここまでわからんのは初めてです





### 【やったこと３】 /etc/samba/smb.confの編集

とりあえずユーザ系で怒られているので
configファイルの書き方を修正してみました

というのもchatgpt君にconfファイルについて聞いていたところ
以下の回答があったためです

>force userの項目はSamba共有にアクセスするすべてのユーザーが特定のLinuxユーザー権限でファイルを操作するように設定することが可能です

単純に読み解くとforce userの設定は
ログイン後にforce userに設定されたuserの権限が強制されるものと読めました

そのためログイン自体には効かないのか？と思ったからです
様々なブログでは以下のように記述されているのでそのようにしました

```tex:旧：/etc/samba/smb.conf
[home_NAS]
    comment = Share
    path = /media/NAS/home_NAS
    read only = no
    browsable = yes
    guest ok = no
    force user = home_nas
```

```tex:新：/etc/samba/smb.conf
[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へ所属させます

まずはグループの作成

```tex:console
sudo groupadd sambashare
```

なんか失敗するので以下でgroupを確認するとsambashareが作られてました
(最初からあるのかはわからないので、ない人は作ってください)

```tex:console
getent group sambashare
```
```tex:output
sambashare:x:<group id>:
```
この出力ではgroup sambashareは存在するがそこに所属するuserは居ないみたいです
なので以下で追加してあげます

```tex:console
sudo usermod -aG sambashare home_nas
```

設定完了なので以下で再起動

```tex:console
sudo service smbd restart
```

治ったか確認

![NAS login error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/ba00a157-0e6b-732e-3342-416e40830175.png)

**同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません**

次・・・・・・・・・・・






### 【やったこと4】 /etc/samba/smb.confの編集その2

こちらのサイト様で以下の記述を見つけた
>将来の Samba の リリースでは、 クライアントとして、LanMan 認証(NTLM,NTLMv2 又は Kerberosとは異なる) のサポートが削除される。
このため、将来は、現在の既定値である client NTLMv2 auth = yes が強制的に設定される。

https://www.samba.gr.jp/project/translation/current/htmldocs/manpages/smb.conf.5.html

なので明示的に以下を記載する
あとsecurity = userで認証方法をuser+passwordに設定しておく

```tex:/etc/samba/smb.conf
[global]
    security = user
    ntlm auth = no
    client lanman auth = no
    client ntlmv2 auth = yes
```

設定完了なので以下で再起動

```tex:console
sudo service smbd restart
```

治ったか確認

![NAS login error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/ba00a157-0e6b-732e-3342-416e40830175.png)

**同じユーザによる、サーバーまたは共有リソースへの複数ユーザ名での複数の接続は許可されません**

次・・・・・・・・・・・

### 【やったこと5】 windowsの認証設定の追加

こちらのサイト様で以下の記述を発見

>Windows 10（1709）以降、匿名認証が無効化されました。
※匿名認証とは、認証されていない（識別できない）ユーザーでアクセスする機能です。

https://ararabo.jp/2020-06-30/?p=11010

つまりWindows10は自分のアカウント情報を勝手に使っちゃうので
それでエラーが出てたっぽいです

このような情報を残してくれていることにめちゃくちゃ感謝です
本当にありがとうございます

ということで、windowsの資格情報を開いて

![win auth.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/144a73f0-68f6-974e-bc62-bdf274dcb518.png)

Windowsの資格情報の編集から以下設定

![win auth set.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/c3cd9be0-51ba-7181-f502-169f15984f0b.png)


いけるか・・・・？

<br>
<br>

![succsess.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/e5e39bd3-6a69-649f-71fb-07add4e70cde.png)


<br>

**いったぁぁああああ！！！**

![happy.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935049/1f3cd405-9b96-623c-e740-682fda98a31e.gif)


## おわり
今回のエラー原因は
**IPC$情報が残っていた＋windows 10からの認証方法の変更の複合エラー**
というオチでした

危うく意味不明なエラー文絶許マンになるところでした
命拾いしましたね

次回は謎解説ブログユーティリティプログラムでお会いしましょう