OpenWrt  SAMBA4 (WSDD2)

# こちらに統合しました
https://qiita.com/site_u/items/c6a50aa6dea965b5a774

# はじめに
::: note
### 初心者対応構成
- スクリプトでの自動設定
- UCIとLuCi及びWinSCPにて比較しながら作業がおススメ
:::

::: note
### [PowerShell](https://learn.microsoft.com/ja-jp/powershell/scripting/what-is-windows-powershell?view=powershell-7.4)で[SSHアクセス](https://openwrt.org/docs/guide-quick-start/sshadministration)

- [PowerShellの開始](https://learn.microsoft.com/ja-jp/powershell/scripting/windows-powershell/starting-windows-powershell?view=powershell-7.4) (キー入力)：`Win`+`x` > `a` > `はい`
※Windows7以降標準搭載

```sh
ssh root@192.168.1.1
```

<details><summary>SSHログイン出来ない場合:exclamation:</summary>

known_hostsクリア
- `C:\Users\yourusername\.ssh\known_hosts` ※Windows隠しファイル
```powershell:powershell
Clear-Content .ssh\known_hosts -Force

```
---
OpenSSHのインストール
※Windows 10 Fall Creators Update(1709)以降標準搭載
- 機能の確認
```powershell:powershell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

```
- 機能のインストール
```powershell:powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

```
---

</details>

:::

# 設定
:::note
### [SAMBA4](https://openwrt.org/docs/guide-user/services/nas/cifs.server)

ネットワーク共有(NAS)

### [WSDD2](https://openwrt.org/packages/pkgdata/wsdd2)

Windowsネットワーク可視化

```sh
opkg update
opkg install luci-app-samba4
opkg install luci-i18n-samba4-ja
opkg install wsdd2

#例: アクセスフリー
NAS="openwrt"
MNT="/mnt/sda"
uci set samba4.@samba[0]=samba
uci set samba4.@samba[0].workgroup='WORKGROUP'
uci set samba4.@samba[0].charset='UTF-8'
uci set samba4.@samba[0].description='Samba on OpenWRT'
uci set samba4.@samba[0].enable_extra_tuning='1'
uci set samba4.@samba[0].interface='lan'
uci set samba4.sambashare=sambashare
uci set samba4.sambashare.name=${NAS}
uci set samba4.sambashare.path=${MNT}
uci set samba4.sambashare.read_only='no'
uci set samba4.sambashare.force_root='1'
uci set samba4.sambashare.guest_ok='yes'
uci set samba4.sambashare.inherit_owner='yes'
uci set samba4.sambashare.create_mask='0777'
uci set samba4.sambashare.dir_mask='0777'
uci commit samba4

/etc/init.d/samba4 enable
/etc/init.d/samba4 restart
/etc/init.d/wsdd2 restart

```


### [Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法](https://learn.microsoft.com/ja-jp/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3?tabs=server)
```powershell:powershell
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
```
:::

# 匿名アクセス（NoID、NoPass） Windows 1124h2
:::note
### デバイス設定
- パッケージインストール
```sh
opkg update
opkg install luci-app-samba4
opkg install luci-i18n-samba4-ja
opkg install wsdd2
```

- SDカードフォーマット

```sh
# デバイス名を確認
lsblk

# マウントを解除
umount /dev/sdX1

# パーティションを作成（必要に応じて）
fdisk /dev/sdX
# o : 新しいパーティションテーブルを作成
# n : 新しいパーティションを作成
# w : 変更を保存して終了

# フォーマット
# FAT32
mkfs.fat -F 32 /dev/sdX1
# ext4
mkfs.ext4 /dev/sdX1
# NTFS
mkfs.ntfs /dev/sdX1
# exFAT
mkfs.exfat /dev/sdX1

# 確認
lsblk

```

- `/etc/samba/smb.conf.template`をバックアップ
```sh
cp /etc/samba/smb.conf.template /etc/samba/smb.conf.template.bak
```
- `/etc/samba/smb.conf.template`
```sh
[global]
	netbios name = OpenWrt
	display charset = UTF-8
	interfaces = br-lan
	server string = OpenWrt
	unix charset = UTF-8
	workgroup = WORKGROUP
	bind interfaces only = yes
	ipv6 = no
	log level = 2
	map to guest = Bad User
	max protocol = SMB2
	min protocol = SMB2
	security = user
	null passwords = yes
	load printers = no
	printing = bsd
	printcap name = /dev/null
	disable spoolss = yes

[share]
	path = /mnt/sda1/shared
	browsable = yes
	read only = no
	guest ok = yes
	create mask = 0666
	directory mask = 0777
	force user = root

```

- `/etc/config/samba4`
```sh
config samba
	option name 'OpenWrt'
	option description 'OpenWrt SMB Server'
	option workgroup 'WORKGROUP'
	option homes '0'
	option interface 'lan'

config sambashare
	option name 'share'
	option path '/mnt/sda1/shared'
	option read_only 'no'
	option guest_ok 'yes'
	option create_mask '0666'
	option dir_mask '0777'
	option force_root '1'
```
- Sambaサービス再起動
```sh
/etc/init.d/samba4 restart

```
- フォルダのパーミッション設定
```sh
mkdir -p /mnt/sda1/shared
chmod -R 0777 /mnt/sda1/shared
```

### Windows設定
- レジストリの変更
  - `regedit`
    - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters`
      - DWORD (32 ビット値): `AllowInsecureGuestAuth`
        - 値: `1`

- ローカルポリシーの設定
  - `gpedit.msc`
    - コンピュータの構成 > 管理用テンプレート > ネットワーク > Lanman Workstation
      - 安全でないゲストログオンを監査する: `有効`
- Windows再起動

:::