XserverVPS+Ubuntu+Docker Samba-DC

Samba DC

今まで利用していなかったがSambaもインストールしてみた。開放ポートが多いのでXserverのパケットフィルタは停止してufwのみとした。

●●●=利用環境のグローバルIPアドレス

・ufw

ufw allow from ●●● to any port 9922,3306,53,88,135,139,389,445,464,636,3268,3269,49152:65535 proto tcp
ufw allow from ●●● to any port 53,88,123,137:138,389,464 proto udp

・フォルダ作成

cd /home
mkdir samba
cd samba
mkdir data
mkdir config
touch ntpd.conf

chmod -R 700 data
chmod -R 700 config

Docker

▲▲▲=Administratorのパスワード
◯◯◯=VPSのIPアドレス
△△△=ドメイン名

vim docker-compose.yml

・もし再実行で既にコンテナがあるようだったら

docker ps -a
docker compose down
※カレントディレクトリにdocker-compose.ymlがある状態で実行

バインドボリューム削除
rm -rf ./data/* && rm -rf ./config/*

※通常終了しない場合
docker ps -a
docker rm -f [ID]

・再起動の場合
docker restart samba-dc

・一時停止の場合
docker pause samba-dc
docker unpause samba-dc

・起動

docker compose up -d
※カレントディレクトリにdocker-compose.ymlがある状態で実行
※dはバックグランド実行

・初回のみエラー

53ポートが使用中とのことでエラー。

※もし自動で再起動を繰り返している場合止める
docker stop samba-dc

sudo lsof -i :53

vim /etc/systemd/resolved.conf
DNSStubListener
>no
に変更する。
systemctl restart systemd-resolved

・RPCポート変更

docker exec -it samba-dc vi /etc/samba/smb.conf
rpc server dynamic port range = 49152-49172

rpc server dynamic port range = 49152-49252
に変更。

ポートが多すぎるコンテナ生成で失敗する。
ポートが少なすぎるとクライアント側で問題が発生する。

コンテナエラー確認

・ログ確認
docker logs –tail 100 samba-dc

・Samba内のログ

一覧
docker exec -it samba-dc bash -c “cd /var/log/samba && ls -l”

開く
docker exec -it samba-dc bash -c “vi /var/log/samba/log.smbd”

Windowクライアント設定

ncpa.cpl
利用しているNICのDNSをVPSのIPアドレスにする。

sysdm.cpl
コンピュータ名タブ>変更
ドメインを選択しドメイン名を入力する。

ユーザーはadministrator
パスワードはdocker-compose
で指定したパスワードを入力する。

再起動したらログイン画面で
ドメイン名\administrator
のように入力しログイン。
初回ログイン時は時間がかかる。

※アカウントもADに参加しないと以下コマンドは使えないが、このタイミングでローカルorMSアカウントを入力して、端末だけAD参加という状態も可能。

Windows RSAT 有効化
システム>オプション機能>機能表示>使用可能な機能を表示する
RSAT: ActiveDirectoryDomainServices およびライトウェイトディレクトリサービスツール
をチェックし追加すると、
Active Directory サイトとサービス
Active Directory ドメインと信頼関係
Active Directory ユーザーとコンピュータ
Active Directory 管理センター(Samba-DCでは利用不可)
が有効化される。

RSAT: グループポリシー管理ツール
をチェックし追加すると、
gpmc.msc
が有効化される。

・接続状況確認(信頼関係)

nltest /sc_verify:ドメイン名
nltest /dsgetdc:ドメイン名

・時刻関係

w32tm /config /syncfromflags:domhier /update
※DCから取得に変更

w32tm /query /status
ソースを確認

w32tm /resync
同期実行

VPSのコンテナ内NTP修正

※Win側の時刻同期で失敗するため

docker logs samba-dc | grep ntp
でntp系のエラー確認

・Dockerシェルへ
docker exec -it samba-dc bash

cd /var/lib/
ls -la
chown ntp:ntp /var/lib/ntp
chmod 755 /var/lib/ntp
になっていればOK。

id ntp
ntpユーザがいるかどうか

ntpq -p
現在のntpサーバーの確認し、*アドレスにping

sntp 129.250.35.222
>129.250.35.222 no UCST response after 5 seconds
これでエラーが発生していた。

vi /etc/ntp.conf
or
vi /etc/ntpd.conf (こちらが利用されていた、調べ方ps aux | grep ntpd)
を編集し、
server ntp.nict.jp
を追加し、
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

ntpsigndsocket /var/lib/samba/ntp_signd/
に変更する

supervisorctl restart ntpd

コンテナ再起動するとダメだけど、一旦これで同期される。

Windowクライアント設定

・DNSが問題ないか確認する。

nslookup ドメイン
これでVPSのIPアドレスが返ってくればOK。

nslookup VPSのIPアドレス
これでドメイン名が返ってくればOK。