概要
FreeIPAは、Linuxベースのネットワークにおける統合認証・認可サービスを提供するオープンソースのディレクトリサービスです。IPAは「Identity, Policy, Audit」の略で、主に以下のような機能を備えています:
- LDAPディレクトリ(389 Directory Server)
- Kerberosベースのシングルサインオン(SSO)
- 認証局(Dogtag Certificate System)
- DNS統合
- SSSDによるクライアント認証
- SELinux、sudo、SSHとの統合
本章では、FreeIPAのインストール方法や構成、AD(Active Directory)との統合方法、Kerberosのクロスレルム信頼(cross-realm trust)の設定について詳しく解説します。
1. FreeIPA のアーキテクチャと構成要素
FreeIPA は以下の主要コンポーネントで構成されています:
| コンポーネント | 説明 |
|---|---|
| 389 Directory Server | LDAP サービスを提供。ユーザー、グループ、ポリシーを管理。 |
| MIT Kerberos | チケットベースの認証サービス。 |
| Dogtag Certificate System | PKI 機能、X.509証明書の発行・管理。 |
| NTP | タイムスタンプの正確性確保。Kerberos認証に必須。 |
| BIND(DNS) | IPAが自前のDNSを提供可能。 |
| SSSD | クライアント側の認証・キャッシュ制御。 |
| certmonger | 証明書の更新管理。 |
2. FreeIPA のインストール準備
必須要件
- OS:RHEL, CentOS, AlmaLinux, RockyLinux(バージョン8以降)
- ホスト名:FQDNで設定
- 固定IP
- 正しいDNS設定(IPAの内部DNSを使うか外部DNSで名前解決できること)
事前設定例
hostnamectl set-hostname ipa.example.local
echo "192.168.1.10 ipa.example.local ipa" >> /etc/hosts
3. FreeIPA サーバーのインストールと初期化
必要パッケージのインストール
dnf install ipa-server
IPA サーバーの設定と初期化
ipa-server-install --setup-dns --no-forwarders
主な対話設定項目:
- ドメイン名(例:
example.local) - リアルム名(例:
EXAMPLE.LOCAL) - 管理者パスワードの設定
- DNS設定(内部DNSを使うかどうか)
Web UIへのアクセス
インストール後、https://ipa.example.local/ でWeb UIにアクセス可能になります。
4. FreeIPA クライアントの設定
クライアントのインストール
dnf install ipa-client
IPAクライアントのセットアップ
ipa-client-install
設定項目として:
- IPAサーバーのFQDN
- リアルム名
- DNSでIPAを自動検出するか
5. Active Directory との統合
AD とのクロスレルム信頼の前提
- 双方に DNS 解決可能であること
- NTP 時刻同期
- Kerberos リアルム名が異なる必要あり(例:EXAMPLE.LOCAL ⇔ AD.EXAMPLE.COM)
AD との信頼設定の流れ
- FreeIPA 側の準備:
dnf install ipa-server-trust-ad
ipa-adtrust-install
- AD信頼の確立:
ipa trust-add --type=ad ad.example.com --admin Administrator --password
- ADユーザーの認証確認:
id aduser@ad.example.com
6. FreeIPA と Samba の統合
FreeIPA は直接的にファイルサーバーとしてSambaを提供しませんが、Kerberos 認証や LDAP バックエンドとしての統合が可能です。
Samba で FreeIPA をバックエンドに使用
- Sambaの
smb.confにてsecurity = adsを設定 - Kerberos TGT を取得し、Sambaサービスへアクセスを許可
kinit aduser
smbclient //ipa-server/share -k
7. sudo、SSH、SELinux の統合
sudo の統合
IPA Web UIまたはCLIからSudoルールを定義し、sssd を通じてクライアントに反映。
ipa sudorule-add sysadmin-rule
ipa sudorule-add-user sysadmin-rule --users=sysadmin
ipa sudorule-add-command sysadmin-rule --command=/usr/bin/systemctl
SSHキー管理
IPAユーザーにSSH公開鍵を登録可能。クライアントは sssd 経由で鍵を取得。
SELinuxとの統合
ユーザーごとのSELinuxコンテキストを設定し、ログイン時に適用可能(詳細は semanage login)
8. 関連コマンドとファイル
| ツール/ファイル | 説明 |
|---|---|
ipa-server-install | IPAサーバーをセットアップ |
ipa-client-install | IPAクライアント設定 |
ipa trust-* | ADとの信頼関係の管理 |
/etc/sssd/sssd.conf | 認証設定 |
certmonger | 証明書管理デーモン |
/etc/named.conf | DNS設定 |
kinit, klist, kdestroy | Kerberos関連 |
章末問題(四択)
問1. FreeIPA に含まれない主要コンポーネントはどれか?
A. MIT Kerberos
B. BIND DNS
C. OpenLDAP
D. Dogtag Certificate System
解説
正解:C
FreeIPAは389 DSを使用し、OpenLDAPではない
問2. FreeIPAとADの統合に必要な設定はどれか?
A. 同じKerberosリアルムを使う
B. クロスレルム信頼を設定する
C. FreeIPAにSambaを必ずインストールする
D. OpenVPNを経由して連携する
解説
正解:B
Kerberosのクロスレルム信頼が前提
問3. FreeIPA で sudo ルールを配布する方法はどれか?
A. cronで /etc/sudoers をコピー
B. LDAPで sudo ルールを配信
C. IPA WebUIまたはCLIでsudoルールを作成
D. FreeIPAとは無関係
解説
正解:C
IPAのWebまたはCLIでsudoルール設定可能
問4. IPAクライアントに SSH 公開鍵を自動配布する仕組みはどれか?
A. rsyncで /home 配下を共有
B. IPA に SSH 公開鍵を登録し、SSSD 経由で配布
C. rootユーザーで scp
D. DNSに公開鍵を登録する
解説
正解:B
SSSDがIPAからSSH鍵を取得して反映
コメント