Ubuntu20.04にWSDをインストールする
経緯
Windows10 バージョン1709以降、SMBv1がデフォルトで無効化された。
これに伴い従来のNetBIOS方式による探索ができなくなってしまったため、ネットワークの一覧にLinuxマシンが表示されなくなってしまった。
この問題の解決策として、
①Windows側の設定でSMB 1.0/CIFS ファイル共有を有効にする
②Linuxマシン側をWSDに対応させる
①はセキュリティリスクとなるため却下。必然的に②の方法をとることになる。
WSDとは
WSDとは、Windowsからネットワーク上の周辺機器にアクセスするための仕様の一つで、Webサービス標準に則ったプロトコルで通信するもの。Windows VistaおよびWindows Server 2008で導入された仕様で、ネットワーク対応プリンタなどで利用されている。
(https://e-words.jp/w/WSD.html より引用)
本稿ではUbuntu20.04LTSへのWSDの導入方法について記載する。
githubにてwsddという便利なものが配布されているので、これを利用する。
環境
・Ubuntu20.04LTS (Focal Fossa)
・smbd Version 4.13.17
・Windows10 21H2 バージョン19044
導入の手順
インストール
wsddのgithubに記載の通り進める。
christgau氏のwsddリポジトリを追加する。
[root@hogehoge]#
echo "deb https://pkg.ltec.ch/public/ distro main" >> /etc/apt/sources.list.d/christgau-wsdd.list
"distro"は使用するUbuntuの開発コード名の前半分を記入
Ubuntu 20.04 LTS なら "Focal"
( 参照: https://releases.ubuntu.com/ )
パッケージ認証のための証明書も忘れず登録し、インストール。
# apt-key adv --fetch-keys https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key
# apt update
# apt install wsdd -y
リポジトリを直接突っ込むのはセキュリティやら依存関係やらで望ましくないらしい。
将来的にapt-keyが使えなくなるのに備えて、DockerやSnapなんかのサンドボックス環境を勉強しようと思う。
環境設定
サービス登録
# systemctl enable wsdd
# systemctl status wsdd
● wsdd.service - Web Services Dynamic Discovery host daemon
Loaded: loaded (/lib/systemd/system/wsdd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-03-31 01:36:33 JST; 17min ago
Main PID: 22584 (python3)
Tasks: 1 (limit: 4627)
Memory: 12.5M
CGroup: /system.slice/wsdd.service
└─22584 python3 /usr/bin/wsdd
サービスのユニットファイルは /lib/systemd/system/wsdd.service
ユニットファイルの中はこのようになっている。
[Unit]
Description=Web Services Dynamic Discovery host daemon
After=network-online.target smbd.service #smbd.service追記
Wants=network-online.target smbd.service #smbd.service追記
[Service]
Type=simple
EnvironmentFile=/etc/wsdd.conf
ExecStart=/usr/bin/wsdd $WSDD_PARAMS
User=daemon
Group=daemon
[Install]
WantedBy=multi-user.target
ここから、wsddの設定ファイルは /etc/wsdd.conf と分かった。
また、起動時にSambaと紐づけたいのでその旨を追記。
wsdd本体の設定
サイトによってはユニットファイルに直接記入しているものもあったが、混乱を避けるためにも wsdd.conf へ記入。
# command line parameters for wsdd (consult man page)
WSDD_PARAMS="-p -i enp2s0"
NICを指定しないと起動しないので -i オプションはおそらく必須。
加えて、ワークグループは環境依存として -p オプションを選択。
各パラメータの詳細は ~$ man wsdd かgithubを参照のこと。
ufwの設定
……あまり美しくない(・ω・;)
打ち込むのがすごく面倒なので適当なところに以下のファイルを作成して実行。
リンクローカルアドレスは環境に合わせて適宜変更してください。
#!/bin/bash
#ipv4ポートをローカルネットワークに開放
sudo ufw allow from 192.168.1.0/24 to any port 3702 proto udp comment 'WSDD'
sudo ufw allow from 192.168.1.0/24 to any port 5357 proto tcp comment 'WSDD'
sudo ufw allow from 192.168.1.0/24 to any port 5358 proto tcp comment 'WSDD'
#ipv6ポートをローカルネットワークに開放
sudo ufw allow from fe80::/10 to any port 3702 proto udp comment 'WSDD'
sudo ufw allow from fe80::/10 to any port 5357 proto tcp comment 'WSDD'
sudo ufw allow from fe80::/10 to any port 5358 proto tcp comment 'WSDD'
sudo ufw reload
sudo ufw status
[root@hogehoge]~# source wsdd_ufw_settings.sh
加えて、NetBIOSで使用していた137,138.139/tcp | 137,138/udp は不要なので閉じておく。
まとめ
中小企業や社員個人を狙ったサイバー攻撃も増えてきたし、
いい加減に脆弱性を抱えたSMBv1を使うのは止めよう。
中小企業や社員個人を狙ったサイバー攻撃も増えてきたし、
いい加減に脆弱性を抱えたSMBv1を使うのは止めよう。
Author And Source
この問題について(Ubuntu20.04にWSDをインストールする), 我々は、より多くの情報をここで見つけました https://qiita.com/kokagegegegege/items/33b188510c9279b2cab2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .