Samba AD/DCでLinuxとWindowsのユーザ認証を行う。part4:rsyncとxinetdを使ったSambaのSysVolレプリケーション

Linux

はじめに

Sambaで未実装のSysVolのレプリケーションについてです。
Samba WikiにはSamba DCのみの構成で使える3種類の方法が記載されています。
今回はrsyncとxinetdを使った方法を試します。
この方法は、常時rsyncのdaemonが動作しないので負荷がかかりません。

SysVol replication (DFS-R) - SambaWiki
Rsync based SysVol replication workaround - SambaWiki

注意

rsyncのコピーは一方向なので、ユーザー操作などのグループポリシー操作は1台目のDC1(FSMO)で行う必要があります。

環境

- DC1  FSMO
  Debian bullseye 64bit
    - Samba 4.17.12+dfsg-0+deb12u1
    - xinetd 1:2.3.15.3-1+b1
    - rsync 3.2.7-1+deb12u1

- DC2
  Debian bullseye 64bit
    - Samba 4.17.12+dfsg-0+deb12u1
    - rsync 3.2.7-1+deb12u1

Active Directoryの環境

1台目 DC1: 192.168.1.1 FSMO
2台目 DC2: 192.168.1.2
ドメイン名: ND
レルム: ND.LOCAL

1台目(FSMO)の設定

1台目DC1の設定です。
必要なものをインストールします。

sudo apt install xinetd rsync

xinetdの設定を行います。

cd /etc/xinetd.d

sudo vi /etc/xinetd.d/rsync

内容は以下となります。

service rsync
{
  disable         = no
  only_from       = 192.168.1.2/24  <-- 2台目のIPアドレス
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/bin/rsync
  server_args     = --daemon
  log_on_failure += USERID
}

/etc/hostsの設定

名前解決のため、2台目のDC2のIPを/etc/hostsに記載します。

sudo vi /etc/hosts

内容は以下となります。

192.168.1.2    DC2.LOCAL    DC2

rsyncのパスワード

rsyncのパスワードを記載します。

sudo vi /etc/samba/rsyncd.secret

rsyncのパスワード(MyPassWord:平文)を記載します。

sysvol-replication:MyPassWord

パーミッションを設定します。

sudo chmod 600 /etc/samba/rsyncd.secret

rsyncd.confの設定

2台目のDC2からrsyncで参照するための設定ファイルを作成します。

sudo vi /etc/rsyncd.conf

内容は以下となります。
「SysVol」が2台目のDC2からrsyncで指定する文字列です。

 [SysVol]
path = /var/lib/samba/sysvol/
comment = Samba Sysvol Share
uid = root
gid = root
read only = yes
auth users = sysvol-replication
secrets file = /etc/samba/rsyncd.secret

xinetdの再起動

sudo systemctl restart xinetd

sudo systemctl status xinetd

2台目のDC2の設定

rsyncをインストールして、パスワードを設定します。

sudo apt install rsync

sudo vi /etc/samba/rsyncd.secret
内容は以下となります。
1台目のDC1で、/etc/samba/rsyncd.secretに設定したパスワード(平文)を記載します。
[bash]
MyPassWord

rootだけが閲覧できるようにパーミッションを設定します。

sudo chmod 600 /etc/samba/rsyncd.secret

テスト

2台目のDC2で行います。
1台目のDC1からsysvolをコピーできるかテストします。
「–dry-run」を指定すると、実際にはコピーしません。
「192.168.1.1」は1台目のDC1のIPアドレスです。

sudo rsync --dry-run -XAavz --delete-after --password-file=/etc/samba/rsyncd.secret rsync://sysvol-replication@192.168.1.1/SysVol/ /var/lib/samba/sysvol/

cronの設定

2台目のDC2でcronを使って定期的にコピーするようにします。

sudo crontab -e

5分ごとにコピーするように設定します。

*/5 * * * * sudo rsync -XAavz --delete-after --password-file=/etc/samba/rsyncd.secret rsync://sysvol-replication@192.168.1.1/SysVol/ /var/lib/samba/sysvol/

Comments