目的
FreeIPAのことを調べているうちにどのような仕組みで動いているのか詳しく知りたいと思い、今回記事を書くことにしました。
FreeIPAは単一のソフトウェアではなく、オープンソースコンポーネントの集合体です。
構築手順の記事は書きましたが、「中で何がどう連携しているのか」が分かるとトラブルシューティングも設計判断も格段に楽になります。
そもそもFreeIPAとは?
ひとことで表すと、複数のLinuxサーバーで使用するユーザー情報・認証・アクセスルールを一元的に管理するためのOSSです。
FreeIPAがない場合
- ユーザーの追加・パスワード変更・sudo権限の変更・削除のたびに、すべてのサーバーで同じ作業が発生する
- 数台なら対応できるが、サーバー台数 × ユーザー数が増えるほど管理箇所が増えていく
FreeIPAがある場合
- ユーザー情報・パスワード変更・sudoルールをFreeIPAでまとめて管理できる
- サーバー台数やユーザー数が増えても各サーバー個別の設定作業を減らせるため、管理箇所を増やさずに運用しやすい
実際にログインできるかどうかは、次の条件で決まります
- 対象サーバーがFreeIPAに参加している
- ユーザーが有効である
- HBACルールなどでログインが許可されている
- SSHやSSSDなどが正しく設定されている
FreeIPAの全体像
FreeIPAはLinux環境向けに開発されているOSSの統合ID管理システムで、WindowsのActive Directoryに相当する機能を提供しています。大きな特徴はこれらの機能を一からすべて独自に実装しているのではなく、役割の異なる複数のOSSを組み合わせて実現していることです。
Almalinux9.6にFreeIPAサーバーを構築する記事はこちら
構成コンポーネント一覧
| コンポーネント | 役割 | 同種のソフトウェア |
|---|---|---|
| 389 Directory Server | ID・認証・ポリシーなどの情報を格納するLDAPディレクトリサーバー | OpenLDAP |
| MIT Kerberos | Kerberosチケットを発行し、認証とSSOを提供 | MIT Kerberos KDCの個別構築・運用 |
| SSSD | クライアント側でID情報・認証・アクセス制御を仲介し、取得した情報をキャッシュ | LDAP・KerberosクライアントとNSS・PAMの個別構成 |
| Dogtag PKI | 内蔵CAとして証明書の発行・失効やCRLの管理を行う | OpenSSLなどを使ったCAの個別構築・運用 |
| certmonger | 証明書を取得・追跡し、有効期限が近づくとCAへの更新要求を自動化 | cronと証明書更新スクリプトによる個別運用 |
| BIND | 統合DNSとして名前解決とサービス検出用のDNSレコードを提供(DNS構成時) | BINDなどのDNSサーバーの個別構築・ゾーン管理 |
| Apache httpd + ipa framework | Web UIやipaコマンドが利用するHTTPS・JSON-RPCの管理インターフェース | LDAP・Kerberos・DNS・CAなどの個別管理 |
OSSを個別に構築する場合との違い
これらのOSSは単体でも使えますが、手動で組み合わせると次の作業がすべて自分の責任になります。
-
LDAPスキーマとKerberosプリンシパルの対応付け
-
KDCのバックエンドをLDAPにする設定
-
サービスごとの証明書発行とキーテーブル(keytab)管理
-
SRVレコードの整備とクライアントからの自動発見
-
レプリケーション設計
FreeIPAはipa-server-install一発でこれらを整合性のとれた状態で構成し、以降はipaコマンドとWeb UIで一元管理できるようにしたものです。
動作確認: コンポーネントの実体を見る
構築済みのFreeIPAサーバーで、統合されているコンポーネントを実際に確認できます。
# FreeIPAを構成するサービスの一覧と状態
# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
| 表示名 | 実体 |
|---|---|
| Directory Service | 389 Directory Server |
| krb5kdc / kadmin | MIT Kerberos |
| named | BIND |
| httpd | Apache httpd + ipa framework |
| pki-tomcatd | Dogtag PKI |
まとめ
-
FreeIPAは、複数のLinuxサーバーで使うユーザー情報、認証、アクセスルールを一元管理する
-
FreeIPAは、役割の異なる複数のOSSを組み合わせた統合ID管理システムである
-
ipa-server-installによって各コンポーネントを連携した状態で構成できる -
構築後は
ipaコマンドとWeb UIから各機能を一元管理できる


