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の処理を追加している。
ユーザーはssoauthとしているので、DnsAdminのユーザー名に置換して使用する。
ファイアウォールの設定
ファイアウォールを設定するスクリプトを実行する。
このスクリプトでは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以降とする。