なぜ今、OpenLDAPからFreeIPAへ移行するのか
OpenLDAPは長年、Linuxインフラにおけるユーザー認証の中核を担ってきましたが、2026年時点の運用環境においては状況が変わりつつあります。主要ディストリビューションのRHEL 9系・Ubuntu 24.04 LTSでは、nss-pam-ldapd(nslcd)がデフォルトパッケージから外れ、sssdとの組み合わせが事実上の標準となっています。一方でFreeIPAは、Kerberos認証・DNSの統合管理・証明書発行・ホスト管理をひとつのフレームワークに収めており、ゼロトラスト移行や監査要件への対応コストを抑えられる点から、移行先として選ばれるケースが増えています。
移行の背景として多いのは、「OpenLDAPの管理負担が属人化している」「パスワードポリシーや監査ログを一元化したい」「既存のSSSD設定を維持しながらバックエンドだけ切り替えたい」という三点です。FreeIPAはRHEL/AlmaLinux/Rocky Linuxの標準リポジトリに含まれており、Ubuntu向けにはfreeipa-clientパッケージで同等の機能が提供されています。
移行前に整理しておくべき現状把握
移行作業を始める前に、既存OpenLDAP環境のスキーマ・OU構成・グループ定義・パスワードハッシュ方式を書き出しておくことが先決です。特に注意が必要なのは次の点です。
- パスワードハッシュ: OpenLDAPでSHA/SSHA系を使っている場合、FreeIPAへの直接インポート後はKerberosチケット取得ができません。ユーザーに初回ログイン時のパスワード再設定を求めるフローが必要になります。
- カスタム属性/スキーマ拡張: FreeIPAは独自スキーマを持つため、OpenLDAP側で独自objectClassを定義していると移行スクリプトの調整が必要です。
- クライアント台数と接続方式:
pam_ldap直結・nslcd経由・sssd経由のどれを使っているかでクライアント側の変更量が変わります。 - DNS: FreeIPAはSRVレコードを利用してサーバーを探索するため、内部DNSの権限を移行先が持てるかどうかを確認してください。
移行計画を立てる際は、全クライアントの接続先を一度に切り替える「一括移行」ではなく、本番クライアントの一部を先行移行しながら旧環境を並走させる「段階切り替え」を基本方針とすることが現場では標準的です。
段階切り替えの手順:サーバー構築からクライアント設定変更まで
以下の手順は、既存OpenLDAP環境を維持しながらFreeIPAを新規構築し、クライアントを段階的に移行していく流れです。
ステップ1:FreeIPAサーバーの構築
AlmaLinux 9 / Rocky Linux 9 の場合、ipa-serverパッケージをインストールし、ipa-server-installコマンドでセットアップします。ドメイン名はOpenLDAPのベースDNと別に設計することを推奨します(例: ipa.example.internal)。重複すると既存クライアントのDNS解決に影響が出ることがあります。
# FreeIPAサーバーのインストール(RHEL系)
dnf install -y ipa-server ipa-server-dns
# セットアップ(対話モード)
ipa-server-install --setup-dns --forwarder=192.0.2.1 \
--realm=IPA.EXAMPLE.INTERNAL \
--domain=ipa.example.internal \
--hostname=ipa01.ipa.example.internal
ステップ2:OpenLDAPからのユーザーデータ移行
OpenLDAPのLDIFエクスポートをそのままFreeIPAにインポートすることはできません。FreeIPAのmigrate-dsコマンドを使うと、OpenLDAPのユーザーエントリを一括取得してFreeIPAのスキーマに変換できます。
# FreeIPAサーバー上で実行
ipa migrate-ds \
--bind-dn="cn=admin,dc=example,dc=com" \
--user-container=ou=People \
--group-container=ou=Groups \
ldap://old-ldap.example.com
インポート後、各ユーザーが初回ログイン時にWebUI(https://ipa01.ipa.example.internal/ipa/migration)でパスワードを再設定することで、Kerberosハッシュが生成されます。この手順を省略すると、SSHパスワード認証のみが機能しKerberosチケットが発行されない状態になるため、注意が必要です。
ステップ3:クライアント側のSSSD設定変更
移行対象クライアントにipa-clientパッケージをインストールし、ipa-client-installコマンドで接続設定を行います。このコマンドは/etc/sssd/sssd.confを自動生成し、PAMやNSS設定も書き換えます。
# クライアント側
dnf install -y ipa-client
ipa-client-install \
--server=ipa01.ipa.example.internal \
--domain=ipa.example.internal \
--realm=IPA.EXAMPLE.INTERNAL \
--principal=admin \
--mkhomedir
Ubuntu 24.04の場合はfreeipa-clientパッケージが対応します。ipa-client-installの挙動はRHEL系と同等ですが、PAMの設定ファイルパスが異なるため、実行後に/etc/pam.d/common-authを確認してください。
動作検証:移行後に確認すべきポイント
クライアントをFreeIPAに接続した後、以下のコマンドで認証フローが正常に機能しているかを確認します。
# SSSDのキャッシュをクリアして名前解決を確認
sss_cache -E
id username@ipa.example.internal
# Kerberosチケット取得の確認
kinit username
klist
# SSSDのログを確認(問題発生時)
journalctl -u sssd --since "10 minutes ago"
運用でよく遭遇するのが「idコマンドは通るがSSHログインが失敗する」ケースです。この場合、SSHDのUsePAM yes設定の有無とPAMスタックの確認(authselect currentコマンド)が有効です。RHEL 9系ではauthselectがPAM設定を管理しているため、手動でpam.dを編集するとauthselectが上書きすることがあります。
また、FreeIPAのホスト登録が完了しているかどうかはipa host-show $(hostname)で確認できます。ホストが登録されていないとHBAC(ホストベースのアクセス制御)ポリシーが適用されず、意図しないアクセス拒否が発生することがあります。移行直後はHBACルールを「allow_all」に設定し、動作確認後に絞り込む順序が安全です。
切り戻し設計:OpenLDAPへ戻すための準備
段階切り替えの最大のメリットは、問題が発生したときに対象クライアントだけをOpenLDAPに戻せる点にあります。切り戻しを確実に行うには、以下の準備を移行前に済ませておく必要があります。
- sssd.confのバックアップ:
ipa-client-install実行前の/etc/sssd/sssd.confをバックアップします。ファイル名に日付を付けて/root/に保存するのが現場の慣例です。 - authselectのプロファイル記録:
authselect currentの出力を記録しておき、切り戻し時にauthselect select sssd等で戻せるようにします。 - OpenLDAPサーバーの稼働継続: 全クライアントの移行が完了するまで旧OpenLDAPサーバーを停止しないことが鉄則です。
切り戻し手順としては、ipa-client-install --uninstallを実行してFreeIPAクライアント設定を削除し、バックアップしたsssd.confを復元、その後systemctl restart sssdで旧設定を有効化します。--uninstallはPAM設定やKerberosの/etc/krb5.confも元に戻すため、手動での後処理はほぼ不要です。
2026年現行環境における注意点と差分
2026年時点で移行を検討する際に押さえておくべき環境差分があります。
FreeIPA 4.12系の変更点:RHEL 9.4以降に同梱されるFreeIPA 4.12では、LDAP互換リスナー(compatツリー)のデフォルト動作が変わり、匿名バインドによるuid属性の参照が制限されています。古いアプリケーションがOpenLDAPに対して匿名バインドでユーザー検索していた場合、FreeIPA移行後に認証が通らなくなるケースがあります。移行前にアプリケーション側のLDAPバインド設定を確認してください。
Ubuntu 24.04のFreeIPAクライアント:Ubuntu 24.04 LTSではfreeipa-clientパッケージがデフォルトリポジトリに収録されており、追加のPPAは不要です。ただしSSSD 2.9系でのGSSAPI認証まわりの挙動がRHEL系と微妙に異なる場合があるため、/etc/sssd/sssd.confにkrb5_use_kdcinfo = Falseを追記することで回避できるケースが報告されています。
Debian 12(Bookworm):Debian 12ではfreeipa-clientパッケージが公式リポジトリに入りましたが、ipa-client-installコマンドの自動設定精度はRHEL系より低い部分があります。PAMの設定変更が不完全な場合があるため、インストール後にpam-auth-updateを手動で実行して設定を整合させる手順が必要です。
OpenLDAPからFreeIPAへの移行は、スキーマ差分・パスワードハッシュの扱い・ディストリビューションごとのクライアント挙動という三つの複雑さを抱えています。段階切り替えで検証ステップを設けながら進め、切り戻し手順を事前に整備しておくことが、本番環境でのダウンタイムを最小化する現実的な方法です。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
PR・広告
コマンド操作から基本運用までを手を動かして学べる定番書。記事で触れた技術の土台固めに。
※ Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。
