# 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にしたので、これを使っている。 ``` .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以降とする。