AlmaLinux8でのFreeIPAサーバーの設定

前提条件

・ AlmaLinuxのバージョン: 8.5
・ ipaサーバーのバージョン: 4.9.6
・ プライマリのIPアドレスは192.168.0.10
・ セカンダリのIPアドレスは192.168.0.11

プライマリサーバーの設定

FQDNでホスト名を設定する。
※FQDNが192.168.0.10に名前解決できるようにしておく

# hostnamectl set-hostname ipa1.local.example.com

モジュールを検索して必要そうなものを特定する。

$ dnf module list

idmのDL1にServerと書いてあったので、それをインストールする。

# dnf install @idm:DL1

モジュールのインストールが完了したら、必要なパッケージをインストールする。

# dnf install ipa-server ipa-server-dns

対話型のインストーラーを起動する。
※同時にbindも設定してもらう
※DNSフォワーダーも設定する
※そのほかは大体Enterで続行した

# ipa-server-install

ファイアウォールの例外を登録するよう促されるので登録する。
※サービス名で設定する場合は「ldap」ではなく「freeipa-ldap」なので注意
※freeipa-replicationはセカンダリを構築しない場合はいらない

# firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,freeipa-replication,dns,ntp,http,https}
# firewall-cmd --reload

参照するDNSサーバーを自身にする。

# nmcli connection modify コネクション名 ipv4.dns 192.168.0.10
# nmcli connection up コネクション名

初回ログイン時にホームディレクトリを自動生成するよう設定する。

# authconfig --enablemkhomedir --update

セカンダリサーバーの設定

プライマリのIdMにWEBブラウザでアクセスして、セカンダリのhostを追加する。

セカンダリのホスト名をFQDNに変更する。

# hostnamectl set-hostname ipa2.local.example.com

参照するDNSサーバーをプライマリIPAサーバーにする。

# nmcli connection modify コネクション名 ipv4.dns 192.168.0.10
# nmcli connection up コネクション名

必要なパッケージをインストールする。

# dnf install @idm:DL1
# dnf install ipa-server ipa-server-dns

IPAクライアントとして設定する。

# ipa-client-install

初回ログイン時にホームディレクトリを自動生成するよう設定する。

# authconfig --enablemkhomedir --update

ファイアウォールの例外を登録する。

# firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,freeipa-replication,dns,ntp,http,https}
# firewall-cmd --reload

レプリカインストールを実行する。なぜか「–setup-ca」オプションをつけると必ず失敗する。ほかのディストリビューション(Rocky Linux、Oracle Linux)で試してみたり、色々な小細工してみたけど解決できなかったので、今回はCA設定をプライマリだけで運用することにした。
※DNSとしても動作させるため「–setup-dns」オプション指定

# ipa-replica-install --setup-dns --forwarder <forwarderのIPアドレス1> --forwarder <forwarderのIPアドレス2>

参照するDNSサーバーを自身にする。

# nmcli connection modify コネクション名 ipv4.dns 192.168.0.11
# nmcli connection up コネクション名

補足

プライマリのCA設定がレプリケーションできていないため定期的にバックアップを取得する必要がある。下記のコマンドでバックアップを作成できるが、作成場所は指定できず/var/lib/ipa/backup/に「ipa-full-2022-04-09-14-28-16」という形でディレクトリが作成される。cronで実行する場合は適宜スクリプトを書いた方が良い。

# ipa-backup

対してリストアはバックアップファイルへのパスを指定して実行する。

# ipa-restore /var/lib/ipa/backup/ipa-full-2022-04-09-14-28-16/