スキップしてメイン コンテンツに移動

samba 4 ad dc with idmap backend ad その一: FSMOマスタの構築(ad dc上でのWinbindなし共有設定なし)

多くのサイトがidmap backend=ridでの構築方法を紹介していますが、本稿はSamba4 の AD DC(Active directory Domain Controller)を idmap backend=ad にて構築する方法です。要点としては、グループとユーザに対し、rfc2307スキーマ拡張分のデータを設定する必要がある、ということになります。

以下、フレッシュインストールの方法です。なお、OSはDebian 10/Buster, Samba4のバージョンは、4.9.5、インストール言語は日本語(LANG=ja_JP.UTF-8)、ファイルシステムはbtrfsにて確認しています。
また、先に、a. hostname, b. Active Directory Domain Name, c. fqdn domain name, d4. server ipv4 address, d6. server ipv6 address, e. dns forwarder を決めておきます。本稿では、

a. sv63
b. MYDOMAIN
c. mydomain.site
d4. 10.1.4.63/24
d6. 2www.xxxx.yyyy.zzzz::63/64
e. 2606:4700:4700::1111 1.1.1.1

としました。(2021/04/29:IPv6設定を追加しました。)上述のOSへの設定方法は割愛します。また、本稿では、ad dcにwinbindにてログインはしない前提としています。

信頼関係については設定しない前提でのインストールとしています。このため、DNSについては、SAMBA_INTERNALを使用します。(信頼関係を設定する場合、信頼関係を設定するドメインに対して名前解決する必要があるので、BIND9_DLZを使用する必要があります。)

なお、AD DC上では、そもそもidmapについては、backend adはbackend ridと同じくサポートされません。(samba wikiより)Identity Mapping works different on a Samba domain controller (DC) than on a domain member. For example, setting up an ID mapping back end, such as ad (RFC2307) or rid, in the smb.conf file is not supported an can cause the samba service to fail. 
また、samba wikiによるとad dc上での共有設定は非推奨ですので、本稿では共有設定は外してあります。Winbindありかつ共有設定ありについてはこちらで投稿しているので参考にしてください。

1.  パッケージのインストール
debianはデフォルトではsudoが入っていないので、初めにsudoを入れてください。sudoの設定方法は割愛します。
su
apt-get install sudo
exit
続いて、sambaと関連パッケージをインストールします。
(2021/04/07追記:samba-dsdb-modulesとsamba-vfs-modulesを追加しました。)
(2021/04/25:libpam-winbind libnss-winbind はad dc上では非推奨のため削除しました。なおwinbindは作業上必要なのでインストールしています。)
sudo apt-get install ntp samba smbclient krb5-config krb5-user \
winbind ldb-tools dnsutils rsync acl samba-dsdb-modules samba-vfs-modules
ここで、Kerberos関係の設定が必要な場合、以下のように設定します。Default realmの大文字小文字は区別されますので、注意してください。
"Default Kerveros version 5 realm:" MYDOMAIN.SITE
Kerberos servers for your realm: sv63.mydomain.site
Administrative server for your Kerberos realm: sv63.mydomain.site
2. samba-ad-dcの起動関連の設定
Debian 10 Busterの場合、以下のようにすることでsamba-ad-dcが起動できるようになります。(ちなみにUBUNTU 1804 Bionicでも同じです。)
sudo /etc/init.d/smbd stop
sudo /etc/init.d/nmbd stop
sudo /etc/init.d/winbind stop

sudo systemctl mask smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc
3. AD DCのプロビジョンと/etc/samba/smb.confの設定。
まず、defaultのsmb.confをバックアップしておきます。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
続いてプロビジョンを行います。以下の様にするとプロンプトなしでプロビジョンできます。
sudo samba-tool domain provision \
  --use-rfc2307 \
  --realm=MYDOMAIN.SITE \
  --domain=MYDOMAIN \
  --host-name=SV63 \
  --host-ip=10.1.4.63 \
  --host-ip6=2www.xxxx.yyyy.zzzz::63 \
  --server-role=dc \
  --dns-backend=SAMBA_INTERNAL \
  --adminpass P@ssw0rd01234
プロビジョンが完了すると、新しいsmb.confができますが、これもバックアップしておきます。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.00
新しいsmb.confは以下の様にします。(2021/04/25: samba wikiの通り、ad dc上でのidmap_ldb:use rfc2307 = yes は非推奨のため本行およびwinbind設定行をコメント化しました。)
[global]
        dns forwarder = 2606:4700:4700::1111 1.1.1.1
        netbios name = SV63
        realm = MYDOMAIN.SITE
        server role = active directory domain controller
        workgroup = MYDOMAIN
        
;        idmap_ldb:use rfc2307 = yes ; 非推奨
;        winbind nested groups =yes  ; 非推奨

        template shell = /usr/sbin/nologin
        template homedir = /home/%D/%U

;        username map = /etc/samba/user.map; 使わない場合、コメント化または空の/etc/samba/user.mapを作成する。

        ea support = yes
        vfs objects = acl_xattr streams_xattr
        store dos attributes = yes
        map acl inherit = yes
        inherit permissions = yes

        load printers = no
        printing = bsd
        printcap name = /dev/null

[netlogon]
        path = /var/lib/samba/sysvol/mydomain.site/scripts
        read only = No

[sysvol]
        path = /var/lib/samba/sysvol
        read only = No

簡単にざっくり説明しますと、dns forwarderからwinbind nested groupsまでが、backend ad(rid)のad dc基本設定です。templateはad dc サーバ上でのunix userのログイン設定です。username map については、こちらを参照してください。ea support から inherit permissionsまでが共有の基本的な共通設定です。load printersからprintcap nameまでは、プリンターをad dc上では使わない設定となります。netlogonとsysvolはad dcのシステム共有です。最後のsrvはテスト共有となります。(2021/04/25追記)samba ad dc上での共有設定はsamba wikiにあるように非推奨ですので、/srv 共有設定は削除しました。
2021/04/25:ad dc上でのwinbind認証は非推奨のため削除
4. 認証関連の設定。
使用するパッケージは先にインストールされているので、必要な設定を行います。
まずは、/etc/nsswitch.confです。passwdとgroupの行にだけ、winbindを追加します。

passwd: compat systemd winbind group: compat systemd winbind shadow: compat
これは、passwdとgroupに対し、winbind認証を追加する、という意味になります。なお、shadowについては、samba wikiによると、設定しないように書いてありました。
続いて、ad dc上でwinbind認証を使ってログインさせ、ホームディレクトリを自動で作成させたい場合は、

sudo pam-auth-update
としてください。設定したい項目を聞いてくるので、

[*] Create home directory on login
のようにチェックを入れます。(スペースキーでチェックが入ります。)
5. SAMBA DNSの動作確認とシステムプライマリDNSの変更
システムのプライマリDNSを、SAMBAのDNSに変更します。/etc/resolv.confを
search mydomain.site
domain mydomain.site
nameserver 2www.xxxx.yyyy.zzzz::63
nameserver 10.1.4.63
の様に、変更してください。変更がすんだら、samba-ad-dcを起動させます。
systemctl start samba-ad-dc
続いてSAMBA DNSが動作しているか確認します。
host -t SRV _ldap._tcp.mydomain.site

_ldap._tcp.mydomain.site has SRV record 0 100 389 sv63.mydomain.site.
このような応答が帰ってきたら、SAMBA AD DCは起動できているということになります。
6. samba ad dcの起動
以下のコマンドで起動します。今回の設定ではDNSはSAMBA_INTERNALなので、これだけでOKです。
sudo systemctl start samba-ad-dc
7. デフォルトユーザとグループに対するuid/gidの付与
ここからが、idmap backend = ridと全く違うところです。(この時、idmapの範囲や付与するIDのベースを先に検討・決定する必要があり、idmap range=20000-3999999とし、BUILTINおよびGroupに対する付与は、28000からを割り当ててあります。2021/04/02追記:なおidmap rangeはたとえば10000-19999999などとして運用しても問題ありませんが、他のドメインと信頼関係を結ぶ場合、idmap rangeは重複させてはいけませんのでその点ご注意ください。)(2021/04/25 ad dc上でのWinbindなし、共有設定なしの場合、BULTINに対するidmapは不要なので削除しました。)

まず、builtin groupに対し、gidを付与します。mod-builtin-grp.shというスクリプトを/etc/samba以下に作成します。
2021/04/02: DN指定が抜けている点、修正しました。
2021/04/27: ビルトイングループはsamba上では内部的にDOM01とは異なるドメインとして取り扱うので、UID_BASEを18000に変更しました。
#!/bin/sh

UID_BASE=18000
SAM_LDB=/var/lib/samba/private/sam.ldb
DN="dc=mydomain,dc=site"
rm -rf wrk
mkdir -p wrk
wbinfo -g --domain=BUILTIN | awk 'BEGIN{FS="\\"}{print $2}' > wrk/grp.txt

while IFS= read grpString; do \
RID=`wbinfo -n "BUILTIN\\\\$grpString" | awk '{print $1}' | sed -e 's/-/ /g' | awk '{print $5}'`
echo $RID
cat > wrk/$RID.ldif <<EOF;
dn: cn=$grpString,cn=Builtin,$DN
changetype: modify
-
replace: gidNumber
gidNumber: $(($UID_BASE + $RID))
-
EOF

echo modifying $grpString ...
ldbmodify -H $SAM_LDB wrk/$RID.ldif

done < wrk/grp.txt
これを、

sudo sh mod-builtin-grp.sh
としBUILTIN Groupにgidを付与します。
続いて、同様に、
まず、Domain のグループに対し、gidを付与します。mod-mydomain.site-grp.shという名前のスクリプトとします。
#!/bin/sh

UID_BASE=28000
DN="dc=mydomain,dc=site"
SAM_LDB=/var/lib/samba/private/sam.ldb

rm -rf wrk
mkdir -p wrk
wbinfo -g | awk 'BEGIN{FS="\\"}{print $2}' > wrk/grp.txt
#wbinfo -g --domain=BUILTIN | awk 'BEGIN{FS="\\"}{print $2}' >> wrk/grp.txt
while IFS= read grpString; do \
RID=`wbinfo -n "$grpString" | awk '{print $1}' | sed -e 's/-/ /g' | awk '{print $8}'`

cat > wrk/$RID.ldif <<EOF;
dn: cn=$grpString,cn=Users,$DN
changetype: modify
-
replace: gidNumber
gidNumber: $(($UID_BASE + $RID))
-
EOF

echo modifying $grpString RID=$RID ...
ldbmodify -H $SAM_LDB wrk/$RID.ldif

done < wrk/grp.txt
cd /etc/samba/
sudo sh mod-mydomain.site-grp.sh
とし、Domainのグループに対し、gidを付与します。
追記:2021/04/09: krbtgtの記述漏れを加筆修正しました。
さらに、最小限のDefaultユーザ(administrator、guest, krbtgt)に対し、uidNumber, gidNumber, loginShell, unixHomeDirectoryを付与します。 (メンバーマシンではログインはできない設定にしてあります。administratorにどうしてもログインさせたい場合は、書き換えてください。)スクリプトファイル名は、mod-mydomain.site-usr.shとします。
#!/bin/sh

UID_BASE=28000
DOMAIN=MYDOMAIN
HOME_BASE=/home/$DOMAIN
DN="dc=mydomain,dc=site"
SAM_LDB=/var/lib/samba/private/sam.ldb

rm -rf wrk
mkdir -p wrk

cat > wrk/mod-administrator.ldif <<EOF;
dn: cn=administrator,cn=Users,$DN
changetype: modify
-
replace: uidNumber
uidNumber: $(($UID_BASE + 500))
-
replace: gidNumber
gidNumber: $(($UID_BASE + 512))
-
replace: loginShell
loginShell: /usr/sbin/nologin
-
replace: unixHomeDirectory
unixHomeDirectory: $HOME_BASE/administrator
-
EOF

echo modifying administrator...
ldbmodify -H $SAM_LDB wrk/mod-administrator.ldif


cat > wrk/mod-guest.ldif <<EOF;
dn: cn=guest,cn=Users,$DN
changetype: modify
-
replace: uidNumber
uidNumber: $(($UID_BASE + 501))
-
replace: gidNumber
gidNumber: $(($UID_BASE + 513))
-
replace: loginShell
loginShell: /usr/sbin/nologin
-
replace: unixHomeDirectory
unixHomeDirectory: /nonexistent
-
EOF

echo modifying guest...
ldbmodify -H $SAM_LDB wrk/mod-guest.ldif


cat > wrk/mod-krbtgt.ldif <<EOF;
dn: cn=krbtgt,cn=Users,$DN
changetype: modify
-
replace: uidNumber
uidNumber: $(($UID_BASE + 502))
-
replace: gidNumber
gidNumber: $(($UID_BASE + 513))
-
replace: loginShell
loginShell: /usr/sbin/nologin
-
replace: unixHomeDirectory
unixHomeDirectory: /nonexistent
-
EOF

echo modifying krbtgt...
ldbmodify -H $SAM_LDB wrk/mod-krbtgt.ldif

これも同様に
cd /etc/samba/
sudo sh mod-mydomain.site-usr.sh
とします。ここまでで、Builtin, Domain Groups, Administrator, Guest, krbtgtに対してuid/gid等を付与できました。続いて最後にテスト用のユーザを登録します。通常のsambaのユーザ登録と異なるのは、uid, uidNumber, gidNumber, loginShell, nisdomainといったrfc2307スキーマ拡張で必要な情報を付与している点です。なお、gid-number=28513は、domain usersのSID513に、スクリプトに記述してある前述のUID_BASEである28000を加算したものです。uid-numberについては、本稿では、idmap range = 20000-3999999としていますので、最初のテストユーザということで、uid-number=20000としてあります。また、idmap config MYDOMAIN: backend=ridとは異なり、ユーザの個別にlogin shellやhome directoryを設定できますので、パラメータを適宜置き換えてください。こちらのコマンドも、ad dc上で行ってください。
sudo samba-tool user create user20000 P@ssw0rd98765 --description user20000 \
--nis-domain=mydomain.site --uid=user20000  --uid-number=20000 --gid-number=28513 \
--login-shell=/bin/bash --unix-home=/home/WORKS/user20000
ここまで、uid/gid等の付与がすんだら、一旦、以下のコマンドで、cacheをクリアします。
sudo net cache flush
さて、これで、基本的なrfc2307拡張スキーマデータを付与したわけですが、それを(2021/04/25追記:メンバーサーバ・メンバーマシンをドメインに参加させ、その上で)確認しますので先にad dc上でのNTPの設定を済ませておきます。
8.NTPの設定
NTPはインストールしてあるので、
sudo chown root:ntp /var/lib/samba/ntp_signd/
sudo chmod 750 /var/lib/samba/ntp_signd/
とします。続いて/etc/ntp.confを編集します。
#以下二行にmssntpを追加。
restrict -4 default kod notrap nomodify nopeer noquery limited mssntp
restrict -6 default kod notrap nomodify nopeer noquery limited mssntp

#以下を追加(2021/05/10:IPv6を追記)
listen on 10.1.4.63
restrict 10.1.4.0 mask 255.255.255.0 nomodify notrap nopeer noquery

listen on 2www.xxxx.yyyy.zzzz::63
restrict 2www.xxxx.yyyy.zzzz:: mask ffff:ffff:ffff:ffff:: nomodify notrap nopeer noquery

ntpsigndsocket /var/lib/samba/ntp_signd

tinker panic 0
追記:2021/04/07: ntpsigndsocketのパスの誤りを訂正しました。
編集後、ntpを再起動しておいてください。
続いて、動作確認のため、メンバーマシンにsambaおよびwinbind等をインストールします。
apt-get install libpam-winbind libnss-winbind winbind samba
パッケージのインストールエラーが出ますが、後に設定させるので無視して大丈夫です。
続いてメンバーマシンの/etc/samba/smb.confの一部は例として以下の様にします。
[global]
       workgroup = MYDOMAIN
       security = ADS
       realm = MYDOMAIN.SITE
       netbios name = SV104
       
       vfs objects = acl_xattr streams_xattr
       store dos attributes = yes
       map acl inherit = yes
       inherit permissions =yes

       idmap config MYDOMAIN : backend = ad
       idmap config MYDOMAIN : range = 20000-3999999
       idmap config MYDOMAIN : schema_mode = rfc2307
       idmap config MYDOMAIN : unix_nss_info = yes
       idmap config MYDOMAIN : unix_primary_group = yes

       idmap config * : backend = tdb
       idmap config * : range = 18000-19999

       winbind use default domain = yes
       winbind offline logon = yes
       winbind nested groups = yes

       winbind enum users = yes
       winbind enum groups = yes

[srv]
       path = /srv
       read only = No
メンバーマシンの/etc/samba/smb.confの編集が済んだら、/etc/resolv.confが以下の様になるようにしてください。
search mydomain.site
domain mydomain.site
nameserver ipv6_address_of_ad_dc_here
nameserver ipv4_address_of_ad_dc_here
名前解決ができたら、メンバーマシンからもad dcのサービスが動いているかどうか以下の様にして確認します。
nslookup
> set type=SRV
> _ldap._tcp.mydomain.site
Server:         ipv6_address_of_ad_dc_here
Address:        ipv6_address_of_ad_dc_here4#53

_ldap._tcp.mydomain.site       service = 0 100 389 sv63.mydomain.site.
次にNTPの設定をメンバーマシンで行っておきます。(2021/05/10:IPv6設定およびserver句の修正)
$ sudo apt-get install ntp
$ sudo mv /etc/ntp.conf /etc/ntp.conf.orig

$ sudo vi /etc/ntp.conf
###以下
# Local clock.
server 127.127.1.0
fudge  127.127.1.0 stratum 10

# Where to retrieve the time from
server -6 sv63.mydomain.site      iburst prefer
server -4 sv63.mydomain.site      iburst

driftfile /var/lib/ntp/ntp.drift
logfile   /var/log/ntp

# deny all.
restrict default ignore

# allow from localhost
restrict -6 ::1
restrict -4 127.0.0.1

# Enable the time source(ad dc) to provide the time to this host.
restrict -6 sv63.mydomain.site mask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff nomodify notrap nopeer noquery
restrict -4 sv63.mydomain.site mask 255.255.255.255 nomodify notrap nopeer noquery

###以上

$ sudo systemctl restart ntp

NTPの設定と名前解決ができたら、以下の様にしてドメインに参加します。
net ads join -UAdministrator
Enter Administrator's password:
Using short domain name -- MYDOMAIN
Joined 'SV104' to dns domain 'mydomain.site'
なお、DNSレコードの追加に失敗する場合は、参加するメンバーマシンの/etc/hostsに以下の様に記述し、一旦 net ads leave -Uadministratorでドメインから離脱し、再度net ads join -Uadministratorとしてみてください。(固定アドレスの場合)
192.168.2.104             sv104.mydomain.site    sv104
2WWWW:XXXX:YYYY:ZZZZ::104 sv104.mydomain.site    sv104
これでもDNSレコードの追加に失敗する場合、samba-toolやrsatを使って手動でレコードを追加してください。
ドメインに参加できたら、以下の様にしてwinbindの設定を行います。
# /etc/nsswitch.conf
passwd:         files winbind
group:          files winbind
設定が済んだらnmbd smbd winbindを起動させます。
systemctl start smbd nmbd winbind
メンバーマシンのsamba/winbindの基本設定は以上です。
続いてメンバーマシン上でid確認をします。wbinfo のコマンドだけだと面倒なのでスクリプト化しました。(2021/04/25削除)まず、builtin に対して、gidが指定された範囲に入っているか確認します。(2021/04/25:追記: winbind認証はad dc上では非推奨ですので、gid/uidの確認は参加済のメンバーサーバ・メンバーマシンで行ってください。)スクリプトは以下の通りです。
#!/bin/sh

rm -rf wrk
mkdir -p wrk
wbinfo -g --domain=BUILTIN | sed -e 's/^/getent group "/g' -e 's/$/"/g' > wrk/grp.txt

sh wrk/grp.txt
これで、18000番台以降(かつ19999以下)の番号がad dc上で付与されていればBuiltinグループはOKです。続いて
既存グループの確認を行います。
#!/bin/sh

DN=MYDOMAIN

rm -rf wrk
mkdir -p wrk
wbinfo -g --domain=$DN | sed -e 's/^/getent group "/g' -e 's/$/"/g' > wrk/grp.txt

sh wrk/grp.txt
こちらも、28000番台以降(かつ3999999以下)の番号が(2021/04/25追記:メンバーマシン・メンバーサーバ上で)付与されていればOKです。
最後にユーザのuid/gidを確認します。スクリプトは以下の通りです。
#!/bin/sh

rm -rf wrk
mkdir -p wrk
wbinfo -u | sed -e 's/^/getent passwd "/g' -e 's/$/"/g' > wrk/usr.txt

sh wrk/usr.txt
userについては、Administrator, Guest, krbtgtにuid/gid等を付与したので、先ほどのスクリプトで付与した28000から3999999の番号が(2021/04/25追記:メンバーマシン・メンバーサーバ上で)確認できればOKです。

ここまでで設定が(2021/04/25追記:メンバーマシン・メンバーサーバ上で)反映されない場合は、AD DC上で
sudo net cache flush
sudo systemctl restart samba-ad-dc
またはAD DCを再起動させてみてください。また、メンバーマシンでも
sudo net cache flush
sudo systemctl restart smbd nmbd winbind
としてみてください。
9. 確認
最後に、windowsマシンのプライマリDNS serverを 2www.xxxx.yyyy.zzzz::63、10.1.4.63 に設定し、Samba AD DCのドメインに参加させてください。ドメイン参加後、RSATでメンバーサーバ・メンバーマシンの共有設定変更などができれば、Samba AD DCのidmap config MYDOMAIN: backend = ad の基本設定は完了です!お疲れさまでした!

2021/04/02追記: IPv6を使用している環境では、2021/04/02現在Windows10(20H2,19042.867)でネットワーク参加しようとした場合、IPv6ネームサーバアドレスをsamba ad dcのアドレスにする必要がありましたので、ドメイン参加の前にクライアントのIPv6ネームサーバの設定を確認してください。

追記:時刻同期(NTP)はメンバーサーバ/メンバーマシン上では、firewallにて、udp/123を送信受信のいずれも空けておいてください。また、Windowsでの時刻同期関係のコマンドは以下の通りです。
w32tm /config /update /syncfromflags:DOMHIER
w32tm /config /syncfromflags:manual /manualpeerlist:"10.1.4.61,0x8 10.1.4.62,0x8" /update
w32tm /resync
w32tm /query /status
一つ目は、同期をドメインヒエラルキーに更新するコマンドです。2番目が、同期相手の指定です。3番目が同期。4番目が確認です。 追記2021/04/12:idmap range設定を20000-3999999に変更しました。

コメント

  1. 大変有用な記事、とてもありがたく読ませていただきました。

    1点、builtinのグループにgidを振るスクリプトの中で、
    自分の環境だと動きが異なるところがありました。

    RID=`wbinfo -n "BUILTIN\\\\$grpString" | awk '{print $1}' | sed -e 's/-/ /g' | awk '{print $5}'`
    最後の方の$5が私の環境だと$8でした。

    違いが出るものなのか確信できていませんが例としてコメントさせていただきました。

    返信削除
    返信
    1. 大変失礼しました。
      Builtinでは上記書き込みの$5はそのままで
      DNを追加すれば問題ありませんでした。

      訂正いたします。

      削除
    2. ご指摘ありがとうございます。またお越しになってください。

      削除

コメントを投稿

このブログの人気の投稿

Hyper-V Server2019にワークグループ環境下でWindows10(1809)から接続

Hyper-V server 2019に、ワークグループ環境にてWindows10(1809)から接続してみました。Windows10にHyper-V管理ツールがインストールされていることと、Hyper-V Serverをインストール済であることが前提です。以下、Hyper-V serverは名前がHyperVSV、アドレスは192.168.1.110としています。 まず、Hyper-V server上で、powershellを起動し、以下のコマンドを入力します。 Enable-WSManCredSSP -Role Server -Force 続いて、クライアントのWindows10のpowershell で以下のコマンドを入力します。 winrm quickconfig -Force Enable-WSManCredSSP -Role Client -DelegateComputer * -Force さらに、クライアントマシンで、gpedit(グループポリシーエディタ)を起動し、以下の要領でポリシーを設定します。 a. [コンピューターの構成]->[管理テンプレート]->[システム]->[資格情報の委任]->[NTLMのみのサーバー認証で新しい資格情報の委任を許可する] を有効にし、サーバを一覧に追加[表示...]ボタンをクリックして、「WSMAN/*」を追加 b. [コンピューターの構成]->[管理テンプレート]->[システム]->[資格情報の委任]->[NTLM のみのサーバー認証で保存された資格情報の委任を許可する] を有効にし、サーバを一覧に追加[表示...]ボタンをクリックして、「*」を追加 また、名前解決できるように、(notepadを管理者権限で実行し)C:\Windows\System32\Drivers\etc\hostsにサーバ名とIPアドレスの対を追加。 192.168.1.110 HyperVSV 最後に、Hyper-Vマネージャーを起動し、Windows10からHyper-V サーバに接続します。手順は以下の通りです。 「サーバーに接続」->コンピュータの選択->別のコンピューターに[HyperVSV]と入力し、[別のユーザーとして接続する

wsdd を使ってSamba サーバをネットワークに表示

Windows 10のアップデートで、セキュリティー対応のため、smbv1がデフォルトではインストールされなくなり、Samba serverがエクスプローラーのネットワークに表示されなくなってしまいました。そこで、いくつか方法を調べたのですが、linuxでwsdの実装がないか探したところ、 https://github.com/christgau/wsdd が、見つかりましたので、さっそくインストールしてみました。まだパッケージにはないようですが、インストール自身は簡単です。wsdd自体は以下のように取得し、linkを張っておきます。 cd /usr/local/bin/ sudo wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py sudo chmod 755 wsdd.py sudo ln -sf wsdd.py wsdd こちらのsambaサーバはDebianなので、/etc/systemd/system/wsdd.serviceは以下のようにしました。 [Unit] Description=Web Services Dynamic Discovery host daemon Requires=network-online.target After=network.target network-online.target multi-user.target [Service] Type=simple ExecStart=/usr/local/bin/wsdd -d MYDOMAIN [Install] WantedBy=multi-user.target wsdd -d MYDOMAINのところを、環境にあわせて書き換えてください。 次に、systemdに登録・起動テストを行います。 systemctl enable wsdd systemctl start wsdd 起動に成功すると、エクスプローラーのネットワークに表示されます。  なおこのwsddはpython3が必要です。一度試してみてください。SMBv1/CIFSを停止していても、大丈夫です。 cで書かれたほかのwsddの実装もあるようなので、いずれパッケージになるかもしれませ

フレッツ光クロス:MAP-E ROUTER by Debian Box (iptables)

フレッツ光クロスがようやく開通したので、Debianにてrouterを構成し接続してみました。なお、プロバイダーを選ぶにあたっては、IPoE方式がそれぞれ異なるため検討したところ、IPoEでは、MAP-Eでもv6plusとocnバーチャルコネクトがあり、前者がポート数240なのに対し、後者は約4倍のポート数が使えるようなネットの情報をみて、OCNバーチャルコネクトを選択しました。(プロバイダーとしてはぷららです。なおDS-LiteはCE側でのNATではないので今回は見送りました。)そこで、OCN バーチャルコネクトをDebian(iptables)で実現するとどうなるかと思い、ネットの情報を頼りにしつつ、設定した次第です。 実際に試した結果、とりあえず通信できていますが、MAP-Eは本来マッピングルールをマップサーバから取得するはずなので、今回のやり方が正解とはいえませんし、仕様変更されると通信できなくなる可能性があります。あくまでも参考程度ですが、本稿をUPしてみました。 2023/03/16追記: こちら にゲームコンソールNAT越え(Nintendo Switch ナットタイプ A判定)対応版を投稿しました。 2023/03/28追記:※1の記述および3行無効化によりNAT越え(Nintendo Switch ナットタイプ B判定)できるようになりました。 構成は以下の通りです。 ルーターがDebianで回線がOCNバーチャルコネクトであること以外はなにも特別なところはない構成です。 さて、いきなり設定ですが、まず、割り当てられたプレフィックスを確認します。 確認は、 dhclient -6 -d -P enp2s0 とします。出力の中に 前略 RCV: | | X-- IAPREFIX 2400:4050:5c71:af00::/56 後略 このようにプレフィックスが表示されるので、その確認したプレフィックスを書き留めておきます。これを こちらで 入力します。すると、 CE: 2400:4050:5c71:af00:99:f171:c600:2f00 IPv4 アドレス: 153.241.113.198 ポート番号:(1776-1791 2800-2815 3824-3839) 4848-4863 5872-5887 6896-