序章

FreeIPA は、MicrosoftのActive Directoryと同様に、アカウント管理と一元化された認証を提供するLinux用のオープンソースセキュリティソリューションです。 FreeIPAは、389 Directory Server、MIT Kerberos、SSSDなどの複数のオープンソースプロジェクトの上に構築されています。

FreeIPAには、CentOS 7、Fedora、およびUbuntu 14.04/16.04のクライアントがあります。 これらのクライアントを使用すると、IPAドメインにマシンを簡単に追加できます。 他のオペレーティングシステムは、SSSDまたはLDAPを使用してFreeIPAに対して認証できます。

このチュートリアルでは、既存のFreeIPAサーバーに対して認証するようにUbuntu16.04マシンを構成します。 クライアントを構成すると、マシンにログインできるユーザーとユーザーのグループを管理できるようになります。 さらに、sudoを使用できるユーザーを設定できます。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • FreeIPAサーバーソフトウェアがインストールされた1台のCentOS7サーバー。これは、このFreeIPA onCentOS7チュートリアルに従ってセットアップできます。

  • このUbuntu16.04セットアップガイドに従ってセットアップされた1台のUbuntu16.04サーバー(ファイアウォールを含む)。 ただし、FreeIPAを使用してユーザーを管理するため、sudoの非rootユーザーを手動で追加する必要はありません。 このチュートリアルは、rootとして簡単に実行できます。

  • Ubuntuサーバー用に設定された次のDNSレコード。 それらを追加する方法の詳細については、このホスト名チュートリアルに従うことができます。

    • サーバー名を含むAレコード(例: ipa-client.example.com)クライアントサーバーのIPv4アドレスを指します。
    • サーバーをIPv6経由で到達可能にする場合は、サーバー名がクライアントサーバーのIPv6アドレスを指すAAAAレコード。

このチュートリアル全体を通して、UbuntuIPAクライアントのサンプルドメインとしてipa-client.example.comを使用し、CentOSIPAサーバーのipa.example.comを使用します(前提条件のチュートリアルと一致するように)。

ステップ1—IPAクライアントの準備

インストールを開始する前に、UbuntuサーバーでFreeIPAクライアントを実行する準備ができていることを確認するためにいくつかのことを行う必要があります。 具体的には、サーバーのホスト名を設定し、システムパッケージを更新して、前提条件のDNSレコードが伝播されていることを確認します。

まず、FreeIPAクライアントが正しく機能するには、Ubuntuサーバーのホスト名が完全修飾ドメイン名(FQDN)と一致している必要があります。 このチュートリアルでは、FQDNとしてipa-client.example.comを使用します。

これが新しいサーバーの場合は、サーバーの作成時にホスト名を設定できます。

すでにサーバーをお持ちの場合は、以下のように、代わりにhostnameコマンドを使用できます。 ホスト名はシステムパラメータであり、通常のユーザーは変更できないため、既存のシステムのホスト名を変更するには、rootである必要があることに注意してください。

  1. hostname ipa-client.example.com

hostnameコマンドを使用してサーバーのホスト名を変更する場合は、/etc/hostnameファイルでも手動でホスト名を変更することをお勧めします。

  1. nano /etc/hostname

サーバーの元のホスト名を持つファイルには、次の1行のみが含まれている必要があります。

/ etc / hosts
your_original_hostname

クライアントの完全なFQDNに変更します。

/ etc / hosts
ipa-client.example.com

次に、ファイルを保存して閉じます。

サーバーのホスト名が正しく設定されたら、パッケージリポジトリを更新します。

  1. apt-get update

最後に、DNS名が正しく解決されることを確認する必要があります。 これにはdigコマンドを使用できます。 DigはデフォルトでUbuntuにインストールされています。

まず、digを使用してAレコードを確認します。

  1. dig +short ipa-client.example.com A

これにより、your_server_ipv4が返されます。

IPv6を有効にしている場合は、AAAAレコードを同じ方法でテストできます。

  1. dig +short ipa-client.example.com AAAA

これにより、your_server_ipv6が返されます。

逆引き参照をテストすることもできます。 これは、IPアドレスからホスト名を解決できるかどうかをテストします。

  1. dig +short -x your_server_ipv4
  2. dig +short -x your_server_ipv6

これらは両方ともipa-client.example.com.を返すはずです

サーバーの準備ができたので、FreeIPAクライアントパッケージをインストールして構成できます。

ステップ2—FreeIPAクライアントのインストール

Ubuntu 16.04では、FreeIPAクライアントがデフォルトのリポジトリに含まれています。

  1. apt-get install freeipa-client

インストーラーが実行されると、Kerberos認証の構成というタイトルの画面でKerberosレルムとKerberosサーバーの入力を求めるプロンプトが表示される場合があります。 FreeIPAインストーラーはこれらの設定を上書きしますが、ここでも正しく入力することをお勧めします。

サーバーのインストール時にKerberosレルムが構成されました。 通常はipa.example.comになります。Kerberosサーバーと管理サーバーは、IPAサーバーのアドレスである必要があります。 前提条件のサーバーチュートリアルに従った場合、これもipa.example.comになります。 これらのプロンプトの後に、ipa-clientパッケージがインストールされます。

次に、FreeIPAインストールコマンドを実行します。 これにより、CentOSFreeIPAサーバーに対して認証するようにFreeIPAを構成する手順をガイドするスクリプトが実行されます。

  1. ipa-client-install --mkhomedir

--mkhomedirフラグは、IPAユーザーがマシンに初めてログインするときに、IPAユーザーのホームディレクトリを作成するようにFreeIPAに指示します。 この動作を望まない場合は、このフラグを省略できます。

インストーラーは最初にIPAドメインの入力を求めます。 サーバーを構成するときに設定されます。

インストールスクリプトプロンプト
Provide the domain name of your IPA server (ex: example.com): ipa.example.com

次に、IPAサーバーのドメイン名を入力する必要があります。 これは、IPAWebUIへのアクセスに使用するURLと同じである必要があります。 前提条件でサーバーのチュートリアルに従った場合、それはIPAドメインと同じになります。

インストールスクリプトプロンプト
Provide your IPA server name (ex: ipa.example.com): ipa.example.com

:冗長IPAサーバーを備えたシステムでは、IPAドメインとIPAサーバー名が異なる可能性があります。

単一のサーバーでは、フェイルオーバーは機能しません。 FreeIPAはこれについて警告します。続行するには、yesと入力する必要があります。

インストールスクリプトプロンプト
Autodiscovery of servers for failover cannot work with this configuration.
If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.
Proceed with fixed values and no DNS discovery? [no]: yes

すべてのオプションが正しいことを確認して、続行します。

インストールスクリプトプロンプト
Continue to configure the system with these values? [no]: yes

次に、管理者のユーザー名を入力します。 ここでは、サーバーのインストール時に作成されたデフォルトのIPA管理者ユーザーのみを使用します。

インストールスクリプトプロンプト
User authorized to enroll computers: admin

最後に、IPA管理者ユーザーのパスワードを入力します。 これは、FreeIPAサーバーの構成中に設定されました。

パスワードを入力すると、FreeIPAクライアントがシステムを構成します。 出力の最後の行はClient configuration complete.になります。これは、インストールが成功したことを示します。

次に、システムがIPAWebインターフェイスに表示されることを確認する必要があります。

ステップ3—認証の確認

https://ipa.example.comであるIPAWebUIに移動します。 以前に使用したIPA管理者アカウントを使用してWebUIにログインします。 次の画面が表示されます。

ipa login

ホストタブに移動します。 IPAサーバーと、構成したばかりのクライアントが表示されます。 IPAクライアントのエントリをクリックします。 これにより、ホストの概要が表示されます。

この画面から、クライアントマシンに関する情報を入力したり、マシンのグループとロールを管理したりできます。

client view

:デフォルトでは、すべてのIPAユーザーがIPAドメイン内のすべてのマシンにログインできます。

ローカル端末からIPAユーザーを使用してマシンにログインすることもできます。

  1. ssh [email protected]ipa-client.example.com

IPAユーザーとしてマシンにログインします。 成功したら、この接続を終了して戻ることができます。

IPAユーザーには基本的なアクセス権がありますが、sudoは無効になっています。 次のステップでは、sudoを有効にします。

ステップ4— sudoルールの有効化と検証(オプション)

sudoアクセスを有効にするためにクライアント構成ファイルを変更する必要はありません。 ただし、必要に応じて、IPAWebUIでsudoルールを構成してアクセスを許可する必要があります。

FreeIPAを使用すると、どのユーザーおよびユーザーグループがどのマシンでsudoコマンドを実行できるかを指定できます。 また、ユーザーがsudoで実行できるコマンドや、偽装できるユーザーを制限することもできます。

このチュートリアルでは、管理者グループがすべてのマシンに完全にsudoアクセスできるようにする簡単なルールの追加について説明します。 管理者グループは、以下に表示されている他のグループとともに、デフォルトでFreeIPAに存在することに注意してください。

  1. IPA Web UIから、サービスをクリックしてから、sudoをクリックします。 ドロップダウンメニューが表示されます。
  2. ドロップダウンメニューで、 sudoルールをクリックし、追加をクリックして、ルール名フィールドにルールの名前を入力します。 ここでは、adminグループにsudoを許可しているため、adminを使用します。
  3. 次に、追加して編集をクリックします。 これにより、ルールのオプションの完全なセットが表示されます。
  4. Whoおよびユーザーグループの下で+追加をクリックします。 adminsグループを選択し、矢印をクリックして、AvailableからProspectiveに移動します。 次に、追加をクリックします。
  5. このホストにアクセスで、任意のホストを選択します。 コマンドの実行で、任意のコマンドを選択します。 As Whom で、AnyoneAnyGroupを選択します。 ここで、sudoが有効になっているこれらのマシン、sudoで実行できるコマンド、および偽装できるユーザーを制限できます。
  6. 最後に、ページの上部に移動して、保存をクリックします。

これで、ルールがアクティブになります。 ただし、伝播に時間がかかる場合があり、sudoルールを有効にするには、sshdサービスを再起動する必要がある場合があります。 これを行うには、IPAクライアントでsystemctl restart sshd.serviceを実行できます。

それが完了したら、クライアントマシンにsudoアクセス権があることを確認しましょう。 ローカルマシンから、IPA管理者ユーザーを使用してクライアントにログインしてみてください。 このユーザーは、デフォルトでadminsグループに含まれています。

  1. ssh [email protected]ipa-client.example.com

ログインしたら、インタラクティブなsudoプロンプトを開始してみてください。

  1. sudo -i

プロンプトが[email protected]に変わるはずです。 exitと入力するだけで、通常のプロンプトに戻ることができます。

sudoアクセスが拒否された場合は、マシンを再起動して、sudoルールが正しく構成されていることを確認してください。

結論

FreeIPAに対して認証するようにマシンを構成すると、IPAWebUIまたはそのコマンドラインインターフェイスからシステムへのユーザーおよびグループアクセスを構成できます。 FreeIPAには高度な機能がありますが、より単純な構成の場合は、ユーザーとホストを追加するだけで、簡単な集中認証システムを提供できます。

FreeIPAは非常に用途の広い認証ツールであり、次に何をする必要があるかは、それをどのように使用するかによって大きく異なります。 詳細については、FreeIPAWebサイトにドキュメントリソースのリストがあります。