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

97 lines
3.2 KiB
Markdown

# 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以降とする。