前書き

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サーバーに対して認証するようにCentOS 7マシンを構成します。 クライアントを設定すると、どのユーザーとユーザーのグループがマシンにログインできるかを管理できるようになります。 さらに、どのユーザーが `+ sudo +`を使用できるかを設定できます。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • FreeIPAサーバーソフトウェアがインストールされた1台のCentOS 7サーバー。https://www.digitalocean.com/community/tutorials/how-to-set-up-centralized-linux-authentication-with-freeipa- on-centos-7 [このCentIP 7のFreeIPAチュートリアル]。

  • FreeIPAクライアントとして使用される別のCentOS 7サーバーは、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7に従ってセットアップします[このCentOS 7セットアップガイド] 、ファイアウォールを含む。 ただし、FreeIPAを使用してユーザーを管理するため、sudoの非ルートユーザーを手動で追加する必要はありません。 * root *としてこのチュートリアルに従うだけです。

  • IPAクライアント用に設定された次のDNSレコード。 追加方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このホスト名チュートリアル]を参照してください。

  • サーバー名を含むAレコード(例: ++)クライアントサーバーのIPv4アドレスを指します。

  • サーバーがIPv6経由で到達できるようにする場合は、クライアントサーバーのIPv6アドレスを指すサーバー名を持つAAAAレコード。

  • オプションで、 `+ yum install nano `でインストールされた ` nano `テキストエディター。 CentOSにはデフォルトで ` vi `テキストエディタが付属していますが、 ` nano +`はよりユーザーフレンドリーです。

このチュートリアルでは、IPAクライアントのサンプルドメインとして「+ ipa-client.example.com 」を使用し、IPAサーバーの「 ipa.example.com +」を使用します(前提条件のチュートリアルに一致させるため)。

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

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

開始するには、FreeIPAクライアントが正しく機能するために、クライアントのホスト名が完全修飾ドメイン名(FQDN)と一致する必要があります。 このチュートリアルでは、FQDNとして「++」を使用します。

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

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

hostname

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

nano /etc/hostname

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

/ etc / hosts

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

/ etc / hosts

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

サーバーのホスト名が正しく設定されたら、システムを更新します。

yum update

最後に、DNS名が適切に解決されることを確認する必要があります。 これには `+ dig `コマンドを使用できます。 CentOS 7には、すぐに使用できるDNSユーティリティは付属していません。 ` bind-utils +`パッケージからインストールする必要があります。

yum install bind-utils

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

dig +short  A

これは `++`を返すはずです。

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

dig +short  AAAA

これは `++`を返すはずです。

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

dig +short -x
dig +short -x

これらは両方とも「。」を返すはずです

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

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

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

yum install freeipa-client

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

ipa-client-install --mkhomedir

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

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

インストールスクリプトプロンプト

Provide the domain name of your IPA server (ex: example.com):

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

インストールスクリプトプロンプト

Provide your IPA server name (ex: ipa.example.com):

単一のサーバーでは、フェイルオーバーは機能しません。 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]:

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

インストールスクリプトプロンプト

Continue to configure the system with these values? [no]:

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

インストールスクリプトプロンプト

User authorized to enroll computers: admin

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

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

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

ステップ3-認証の検証

IPA Web UI、つまり「+ https:// +」に移動します。 前に使用したIPA管理者アカウントでWeb UIにログインします。 次の画面が表示されます。

image:https://assets.digitalocean.com/articles/freeipa-client/aqxSqYs.jpg [ipa login]

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

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

画像:https://assets.digitalocean.com/articles/freeipa-client/WMAcK07.jpg [クライアントビュー]

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

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

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

手順4-sudoルールの有効化と検証(オプション)

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

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

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

  1. IPA Web UIから、* Services をクリックしてから、 sudo *をクリックします。 ドロップダウンメニューが表示されます。

  2. ドロップダウンメニューで[* sudo rules ]をクリックし、[ add ]をクリックして[ Rule name ]フィールドにルールの名前を入力します。 ここでは、adminグループにsudoを許可しているため、 admin *を使用します。

  3. 次に、[追加して編集]をクリックします。 これにより、ルールの完全なオプションセットが表示されます。

  4. [* Who ]および[ User groups ]で[ + add ]をクリックします。 adminsグループを選択し、矢印をクリックして Available から Prospective *に移動します。 次に、[追加]をクリックします。

  5. このホストにアクセス*で、*任意のホスト*を選択します。 *コマンドの実行*で、*任意のコマンド*を選択します。 * As Whom *で、 Anyone および Any Group *を選択します。 これは、sudoが有効になっているこれらのマシン、sudoで実行できるコマンド、および偽装できるユーザーを制限できる場所です。

  6. 最後に、ページの上部までスクロールして、[保存]をクリックします。

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

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

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

sudo -i

プロンプトが「+ root @ ipa-client 」に変更されます。 通常のプロンプトに戻るには、単に「 exit +」と入力します。

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

結論

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

FreeIPAは非常に用途の広い認証ツールであり、次に何をする必要があるかは、その使用方法に大きく依存します。 詳細については、FreeIPA Webサイトにhttps://www.freeipa.org/page/Documentation [ドキュメントリソースのリスト]があります。