昨日WindowsUpdateがかかりました。夜寝ようかなと思ったら「更新してから再起動」か「更新してシャットダウン」しかありません。なんとなく気にはなったけど選べないので更新してから再起動を選びました。
すると今まで使えていたCIFS1.0の機能が外されていました。
別に外すのはいいんだけど連絡位よこそうよ。おそらく更新プログラムKB4524147かセキュリティ更新プログラムKB4520390のどちらか。てかこれだけしかログが残ってない。そして累計の中のCIFS関連辺りが有効になってCIFS1.0の無効化をしてくれたんだと思う。
当面はCIFS1.0を再度有効化して使えるようにするのが手っ取り早いんだけど今日はちょっと変わったお話。
そもそもなぜCIFS1.0を無効化する事になったのかというとWannaCry対策のためであるのでその攻撃を受けなくするためにCIFS1.0を切ったのである。CentOS7の最新yum updateを行っていればSAMBAはSambaCry対応である。使い続けても大丈夫そうである。
だが今回はCIFS1.0に別れを告げてSMB3.0対応のsambaに仕立てようと試みます。
まずsambaの設定から。
/etc/samba/smb.confに追加します。
[global] : : max protocol = SMB3
max protocol = SMB3を追加します。これで下はSMB1.0からSMB3.0まで利用できるようになります。Windowsは自分の能力に見合ったコネクションを確立しようと試みますのでWindows10 1903では3.1.1で接続しているようです。
sambaの再起動をしておきます。
# systemctl restart smb # systemctl restart nmb
次にCIFS1.0を切るという事はNetBIOSによる検索、コンピューターブラウザーによる検索が出来なくなります。これはこれで使いずらい。
WindowsVistaから導入されているといわれる「WS-Discovery」を実装することでネットワークからブラウジングできるようになります。
これはまだ実装実験中なのかまだ正式サポートされているわけではありません。python3で書かれているスクリプトを常時動かす事で実現させています。
スクリプトを取ってきて配置、権限などを設定します。
# cd /usr/local/bin/ # wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py # chmod 755 wsdd.py # ln -sf wsdd.py wsdd
次に再起動時でもwsddが実行できるようにsystemd対応を行います。/etc/systemd/system/wsdd.serviceのファイルを作成してください。
[Unit] Description = Web Services Dynamic Discovery host daemon After=networking.service.target remote-fs.target nss-lookup.target ConditionPathExists=/usr/local/bin [Service] ExecStart = /usr/local/bin/wsdd -d MYDOMAIN ExecStop = /usr/bin/kill -p $MAINPID [Install] WantedBy = multi-user.target
※2019年10月8日追記 AfterとConditionPathExistsを追記しました。再起動時にネットワークが働いていないとうまく動かなかった。
wsdd -d MYDOMAINのところを、環境にあわせて書き換えてください。昔から使ってる方ならWORKGROUPかなと思います。次にsystemdに登録、実行します。
# systemctl enable wsdd # systemctl start wsdd
これでWindows10側のCIFS1.0関連のチェックを外して再起動すればCentOS7のsambaがWSDプロトコルで見えるようになるはずです。
もしかしたら他にも有効にしなければならないサービスもあるかと思います。(設定してるうちに資料作ってなかった)「Windows10 WSD」で検索かければ色々出てきます。
今回はwsddの実装について書いてみました。ではまた。
コメント