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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
services: samba: image: nowsci/samba-domain:latest privileged: true container_name: samba-dc environment: - DOMAIN=△△△ - DOMAINPASS=▲▲▲ - DNSFORWARDER=8.8.8.8 - HOSTIP=◯◯◯ volumes: - /home/samba/data:/var/lib/samba - /home/samba/config:/etc/samba - /home/samba/ntpd.conf:/etc/ntpd.conf ports: - "53:53" - "53:53/udp" - "88:88" - "88:88/udp" - "123:123/udp" - "135:135" - "137-138:137-138/udp" - "139:139" - "389:389" - "389:389/udp" - "445:445" - "464:464" - "464:464/udp" - "636:636" - "3268-3269:3268-3269" - "49152-49252:49152-49252" hostname: samba-dc restart: always cap_add: - NET_ADMIN - SYS_TIME |
・もし再実行で既にコンテナがあるようだったら
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。