CentOS 7でFreeIPAを使用して集中Linux認証を設定する方法

前書き

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に対して認証できます。

このチュートリアルでは、CentOS 7サーバーにFreeIPAサーバーをインストールします。 次に、クライアントマシンを構成して、FreeIPAユーザーがIPA資格情報でログインできるようにします。

このチュートリアルに従うと、https://www.digitalocean.com/community/tutorials/how-to-configure-a-freeipa-client-on-ubuntu-16-04/ [Ubuntu 16.04でFreeIPAクライアントを設定できます]またはhttps://www.digitalocean.com/community/tutorials/how-to-configure-a-freeipa-client-on-centos-7[CentOS 7でFreeIPAクライアントを構成]。

前提条件

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

  • 1 GB以上のRAMを備えた1台のCentOS 7サーバー。 デフォルトでは、CentOS 7はrootユーザーのみを使用します。 FreeIPAを使用してユーザーを管理するため、別のユーザーを手動で追加する必要はありません。 rootユーザーとしてこのチュートリアルに従うだけです。

  • サーバーで有効になっているファイアウォール。https://www.digitalocean.com/community/tutorials/additional-recommended-steps-for-new-centos-7-servers#configuring-a-basic- firewall [CentOS 7チュートリアルの追加推奨手順のファイアウォールの手順]。 FreeIPAは機密性の高いユーザー資格情報を処理するため、これを強くお勧めします。

  • サーバーとクライアントに使用する完全に登録されたドメイン。 https://namecheap.com [Namecheap]で購入するか、http://www.freenom.com/en/index.html [Freenom]で無料で入手できます。

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

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

  • サーバーがIPv6経由で到達できるようにする場合は、サーバー名がサーバーのIPv6アドレスを指しているAAAAレコード。

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

ステップ1-IPAサーバーの準備

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

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

サーバーを作成するときにホスト名を設定するか、サーバーの作成後にコマンドラインからホスト名を設定することができます。そのためには、 `+ hostname +`コマンドを使用します。

hostname ipa.example.org

次に、パッケージリポジトリを `+ yum +`で更新します。

yum update

次に、ファイアウォールでFreeIPAに必要なポートを開きます。

firewall-cmd --permanent --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp}

ファイアウォールをリロードして、変更を有効にします。

firewall-cmd --reload

最後に、DNS名が適切に解決されることを確認する必要があります。 これには `+ dig `コマンドを使用できます。 ` dig `およびその他のDNSテストユーティリティを入手するには、 ` bind-utils +`パッケージをインストールします。

yum install bind-utils

次に、「+ dig +」を使用してAレコードを確認します。

dig +short ipa. A

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

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

dig +short ipa. AAAA

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

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

dig +short -x
dig +short -x

これらは両方とも `+ ipa .. +`を返すはずです

FreeIPAはDNSを頻繁に使用するため、次のステップでは、サーバーがFreeIPAが適切に機能するために必要な特定のDNS要件を満たしていることを確認します。

ステップ2-DNSのセットアップ

FreeIPAを実行するすべてのマシンは、ホスト名として完全修飾ドメイン名(FQDN)を使用する必要があります。これは前のステップで設定しました。 さらに、各サーバーのホスト名は、「+ localhost +」ではなく、IPアドレスに解決する必要があります。

DigitalOceanでは、https://cloud.digitalocean.com/ [コントロールパネル]でサーバーのパブリックIPアドレスを確認できます。 `+ ip +`コマンドを使用してサーバーのIPアドレスを見つけることもできます。

ip addr show

これにより、次のような出力が生成されます。

Output. . .
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
   inet /18 brd 111.111.111.255 scope global eth0
      valid_lft forever preferred_lft forever
   inet6 /64 scope global
      valid_lft forever preferred_lft forever
. . .
IPv4アドレスは* inet の直後に表示され、IPv6アドレスが有効になっている場合は inet6 の後に表示されます。 プライベートネットワーキングを有効にしている場合、追加のプライベートIPアドレスが表示されることもあります。これらのアドレスは無視できます。 パブリックIPアドレスとプライベートIPアドレスを区別するには、プライベートIPv4アドレスが次の範囲にあることに注意してください: +192.168。。* +