Samba-ad-dc-ddns-doker/README.md

3.2 KiB

Samba-ad-dc-ddns-docker

概要

Samba ad dcと連携するDHCPサーバーをDockerで気軽に利用する。

構築方法

ダウンロード

このリポジトリからソースをダウンロードする。

git clone https://gitea.rohhie.net/rohhie/samba-ad-dc-ddns-docker.git ddns
cd ddns

動作条件を設定

コンテナ

docker-compose.ymlには、IPv4とIPv6の2つのコンテナを定義してある。
どちらか一方を利用する場合は、使わない方をコメントアウトしておく。

それぞれの動作条件を設定する。

変数名 設定内容
DHCPIF 使用するネットワークインターフェースを設定。空白で区切って複数指定可能。
DHCPSERVER Samba AD DCのホスト名を指定。名前解決できる(はず)。
DHCPDOMAIN ドメインのFQDNを指定。
DHCPDNSADM DnsAdminsのユーザー名を指定。
DHCPDBGFLG "true"を指定すると、標準出力にデバッグ情報が出力される。

IPv4

v4ディレクトリにdhcpd.confがあるので、これを適宜書き換える。

IPv6

v6ディレクトリにdhcpd.confとradvd.confがあるので、適切に設定。
radvd.confでは、使用するネットワークインターフェースの設定があるので、環境変数DHCPIFとあわせて設定しておく。

Kerberos

krb5.confをSamba ad dcにアクセスできるように作成。

keytab

Samba ad dcでDnsAdminに所属するユーザーのkeytabを取り出す。
新たにユーザーを作っても良いし、既存のユーザーを使っても良い。
ホームラボでは、Samba ad dc立ち上げ時にssoauthというユーザーを作りDnsAdminにしたので、これを使っている。

<username>.keytab

という名前で保管しておく。
ホームラボではssoauth.keytabという名前で保管した。

dhcp-dyndns.sh

これは、Samba Wiki(https://wiki.samba.org/index.php/Configure_DHCP_to_update_DNS_records)にあるスクリプトをベースにして、IPv6の処理を追加している。
また、DnsAdminsのユーザー名を環境変数で渡すようにした。

ファイアウォールの設定

ファイアウォールを設定するスクリプトを実行する。
このスクリプトではIPv6のみ開放している。
IPv4は開放しなくてもうまく動いている。

sudo ./setufw.sh

何らかの理由で設定を解除するなら、以下を実行する。

sudo ./setufw.sh delete

コンテナを起動

コンテナを構築して起動する。

sudo docker compose up -d --bulid

その他

細かな設定手順や使い方は、メインサイト参照。
https://rohhie.net/samba-ad-dc-dynamicdns/

ライセンス

MIT

ただし、dhcp-dyndns.shだけはソースコード参照。 変更点は原作に準じてGPL3.0以降とする。