それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

WindowsのバックアップをSambaへ作成する

Windowsバックアップをどうやって作る?

Windowsのバックアップは、フルバックアップをHDDに保存することができます。

なぜか、Windows7バックアップという名前になっていますが、Windowsフルバックアップは従来からコントロール・パネルに用意されている.

スタートメニューから「backup」で調べて、Windows7のバックアップと出てくるはず。

設定メニューのバックアップは使い物にならない。OneDriveを使ってファイルだけをバックアップされても全く役に立たないし、ストアアプリ限定である。困ったちゃんである。

コントロール・パネルにあるバックアップであれば、「フルイメージ」で「世代間」のバックアップを作成可能であり、HDDを挿し込むだけで良い。

実は。このバックアップは、ネットワーク上に保存できるし、ネットワークを使えば、定期的な世代バックアップを寝てる間に自動的に作成してくれる。

MacOSのタイムマシンのWindows版と言っても差し支えない。

ネットワークのストレージを作る

Linuxサーバーでネットワーク・ストレージを作成します。

このときに使うのはSambaです。

Sambaは古くから使われていて、ネットの情報は、質が玉石混淆で、しかも時間も玉石混淆で、最近のSambaの情報はどこにあるんでしょうね。

みんなネットワークフォルダ使わないんですかね。LANが10Gbpsな現代こそ、Windowsを移動プロファイルで使うべきだと思うんですけどねぇ

samba の設定

今どきのSambaの設定がわからないので、いろいろな情報を切り貼りしてきた。

Sambaのパスフレーズってほぼ平文だったり、暗号化処理が弱かった時代のアンセキュアなイメージのアレコレはある程度解消されていて、いまは暗号化必須でSMB3が使われる。

たとえば、いまの時代のSMB3を必須にする設定は次のとおりである。

[global]

   # smb v4.14 and later
   server signing = mandatory
   server min protocol = SMB3
   server smb encrypt = required
   # smb v4.13 or earlier
   smb encrypt = required

SMB3でプロトコル的に相当に安全になる、暗号化処理を必須にしている。

最初は、stunnelで暗号化レイヤ(TLS)を挟もうかと思ったけどやめた。

どうしても心配なら、IPSecで透過的に暗号化したほうが良さそう。

バックアップを取れるような設定

設定作った。

[global]
## 基本的な設定
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
## パスフレーズ関連
obey pam restrictions = yes
unix password sync = no
pam password change = no

## 暗号化
server signing = mandatory
server min protocol = SMB3
server smb encrypt = required
## ゲスト関連
map to guest = never
usershare allow guests = no
### 文字コード関連
dos charset = CP932
unix charset = UTF-8

[homes]
browseable = No
comment = Home Directories
create mask = 0740
directory mask = 0740
valid users = %S
read only = no

[backup]
browseable = Yes
public = no
guest ok = no
path=/opt/samba-vol
comment = Windows Backup
create mask = 0600
directory mask = 0700
read only = no

パスワードのSamba同期はオフにした。バックアップ専用のユーザとパスワードを作ってPAMとはある程度切り離した。ただしUIDの関係があるのでLinux側に同名のユーザを作成した。

sudo adduser pc-backup
sudo pdbedit -a -u pc-backup

ユーザ名を揃えるだけにとどめ、パスワードの同期はオフでしばらく運用してみる。

接続の確認

Linuxのsmbclientコマンドから、動作と接続可否を検証する。

smbclient   -L 192.168.1.111 -U WORKGROUP/takuya

古いプロトコルでは接続できないことを確認する

プロトコルを指定して接続

smbclient -m smb2  -L 192.168.1.111 -U WORKGROUP/takuya
smbclient -m nt1  -L 192.168.1.111 -U WORKGROUP/takuya

SMB3で接続可能なことを確認する。

smbclient -m smb3  -L 192.168.1.111 -U WORKGROUP/takuya

ついでに、windowsnet use コマンドからも確認してみるといい。

windows側から設定する。

SSDも安い

Amazonで、1TBのSSDが6000円程度です

SSDが安いし、ミニPCも安いのでバックアップは手軽に作れる。RaspberryPiに代表される〇〇PiのArmやルーター付属のUSBポートでもいい。手軽に作れるので使わない理由がない。

バックアップ先の暗号化

Windowsがこのバックアップを標準で有効にしない理由はBitlockerである。

Windows自体のストレージがbitlockerで暗号化されても、バックアップが暗号化されないと危殆化どころか、無防備である。

そのため、通信を暗号化した上で、Linux側もLUKSなどでルートファイルシステムからまとめて暗号化しておかないと意味がない。

バックアップを暗号化して厳密に管理する必要があるので取り扱い注意である。

これを一般人に周知するのは困難なために、Windowsの完成されたバックアップを「旧来」の名称にしたのだと思われる。Win7->Win10の一時的な移動以外に使わないでほしい、暗号化ディスクで常用しないで欲しいというWindows設計者の意図じゃないのかなとは思う。

また、ランサムウェアもあるのでネットワークに保存しても完璧なバックアップとは言えない可能性もある。

Windowsのバックアップは取っておきたい。

バックアップが無いことが怖いのですが、ファイル自体であれば、履歴を使えば解決です。ただ、システムの復元でも面倒なのでどこかのタイミングでバックアップを取ってい置く必要があります。

Windows7で搭載されたバックアップがほぼ無敵で、Macのタイムマシンと一番近いです。 Windowsのフルイメージバックアップと、ユーザフォルダのバックアップを作ってくれます。なぜこれを使わないのか。バックアップソフトウェアを買ってくるのか。 なぜ、これを「古い」「Older」「以前の」などという名前にしてしまったのか。個人的な感想ですが、「Older(以前の)」という名称が不快。暗号化にまつわる煩雑さがあるので、理解はできるけど。

なんでもOneDriveやMSアカウントに吸収されるのはちょっとねぇ。

まとめ Sambaの暗号化関連

SMB3 以上に限定して暗号化することでパケットの盗聴などはまだ防ぐことができる。

server signing = mandatory
server min protocol = SMB3
server smb encrypt = required

それでもまだ、パスワード総当たりに対する対策は難しいので、Sambaを常時起動するのはやっぱりアンセキュアだと思う。

SambaをつかうならIPSecVPNで専用のIP上に限定したほうがいいかもしれないし。

WinFSPでFUSEを使ってSFTP/SSHを通したほうがいいかもしれない。

rclone でドライブをマウントしたり、BlackBlazeもあるんだけどね。SMBプロトコルでSambaでフォルダを常時開放しっぱなしというのも、ランサムウェアの被害の視点で不安である。

参考