コンテンツにスキップ

5.Linuxアイデンティティ管理/ファイル共有

5.1. FreeIPAのインストール/メンテナンス

5.1.1 FreeIPA

FreeIPAはLinuxの統合認証基盤のこと。 オープンソースで開発されており、KerberosやDNS, SELinuxなどを用いて統合された認証環境を提供する。 なお、IPAはIdentity, Policy, Auditの略である。

また、クライアントのコンポーネントとしてSSSDを使用している。

FreeIPAで管理できる対象(エンティティ)には以下の通り。

  • ユーザ/グループ
  • SMB共有
  • SSH認証鍵

FreeIPAのコンポーネント

FreeIPAは以下のコンポーネントで構成されてる。 またFreeIPAのコンポーネントには汎用のLinuxシステムが統合されている。

コンポーネント 説明
389 Directory Server LDAP
MIT Keroberos 認証サービス
Dogtag Certificate System PKI(公開鍵基盤)
NTP 時刻同期
DNS IPアドレス/ドメインの紐づけ
SSSD 識別/認証サービス管理
Certmonger 証明書期限の監視/更新

5.1.2. FreeIPAのインストール

FreeIPAは、インストール自体はスクリプト化されており容易にできる。 求められるスペックは以下の通り。

  • ユーザ数 10,000、グループ数 100 ... 最低 2GB の RAM と 1GB のスワップスペース
  • ユーザ数 100,000、グループ数 50,000 ... 最低 16GB の RAM と 4GB のスワップスペース

FreeIPAサーバ/ドメインのインストール

  • ipa-server-install ... IPAサーバのインストール
  • ipa-client-install ... IPAクライアントのインストール
  • ipa-replica-install ... IPAサーバのレプリカインストール
  • ipa-replica-prepare ... IPAサーバのレプリカ用イメージファイル作成
  • ipa-replica-manage ... IPAレプリカサーバの設定確認など

5.1.3. ADのレプリケーションとKerberosのCrossRealm認証

Kerberosではrealmという管理対象ノード群の枠組みがある。 realmは複数作成することができるが、複数のrealm間で相互に信頼関係を構築する方法をCrossrealmと呼ぶ。

CrossRealm認証によりADとの信頼関係を構築することで、ADドメインに参加しているユーザがLinuxマシンへSSOができるようになったり、Linuxドメインのサービスやリソースへアクセスできるようになる(Windowsクライアントの管理はできません)。

IPAとADとのCrossRealm認証はipa-adtrust-installによるSamba(CIFS)の構築とipa trust-addコマンドによる信頼関係の構築を行う必要がある。

sudo、autofs、SSHおよびSELinuxの統合

FreeIPAのクライアントではSSSDがデフォルトで構成される。 SSSDによって、sudoの統合、ホストベースのアクセス制御(HBAC)のポリシー、SELinuxユーザマッピングなどができるようになる。 これらの設定は、FreeIPAの4.0以降のバージョンでは基本的にインストール時に設定される。

  • sudo ... LDAPにファイルを登録することにより統一的に管理することができる
  • SSH ... LDAPに公開鍵をインストールすることで、ホストローカルな設定ファイルをドメイン対応させることができる
  • SELinuxユーザマッピング ... SELinuxでは、ホストベースのアクセス制御(HBAC)をドメインに提供する。リモートユーザや新しいホストの追加時に一貫した制御ポリシーを適用・管理できる

5.1.4. ipaコマンド

ipaコマンドはFreeIPAでユーザ・グループの管理やドメインの操作などを行うことができるコマンド。

ipa <コマンド> [パラメータ]
コマンド 説明
user-add ユーザの追加
user-del ユーザの削除
group-add グループの追加
group-del グループの削除
user-find ユーザの検索
group-add-member グループへのユーザ追加
user-show ユーザ情報表示
group-show グループ情報表示
trust-add ドメインの信頼関係追加

5.2. FreeIPAのエンティティ管理

5.3. FreeIPAのActiveDirectoryインテグレーション

5.4. ネットワークファイルシステム(NFS)

5.4.1. NFSv4

NFS(Network File System)はLinuxでの一般的なファイル共有プロトコル。 NFSv4はNFSのVersion4.0。

NFSv4の主な特徴は以下の通り。

  • セキュアな認証メカニズム「Kerberos」「SPKM」「LIPKEY」の導入
  • 擬似(Pseudo)ファイルシステムの提供
  • ACLによるアクセス制御
  • パフォーマンスの改善(一部の権限をクライアント側へ委譲)

NFSv4の認証メカニズム

NFSv4では、セキュアな通信を確立するために以下の認証メカニズムが採用された。

認証メカニズム 説明
Keroberos SSOを使用可能にする
SPKM シンプルな公開鍵基盤を提供する認証方式
LIPEKY SPKMを使用したクライアント-サーバ間で暗号化通信を行う

疑似(Pseudo)ファイルシステム

擬似(Pseudo)ファイルシステムは複数のファイルシステムをクライアント側で一つのツリーに見せかけることができる仕組み。 これはNFSv3の欠点を補った仕組みともいえる。

NFSv4サーバの設定

  • /etc/exports
    • NFSv4の共有ディレクトリの設定は/etc/exportsで行う
  • /etc/idmapd.conf
    • NFSv4のデーモンの挙動を設定する

5.4.2. CIFS

CIFSはSMBを拡張したファイル/プリンタ共有などのプロトコル。 CIFSはWindows系OS以外でも利用できるように仕様が公開されている。

CIFSには以下のような特徴は以下の通り。

  • Unicodeに対応
  • oplockと呼ばれる便宜的ロックにより、共有ファイルへのロック情報をクライアントでキャッシュすることで高いパフォーマンスを発揮

CIFSによるファイル/ディレクトリのパーミッション

Linux上でマウントしたWindowsマシンの共有は、デフォルトでrootユーザが所有者として設定され、一般ユーザでは書き込みができない。 WindowsのファイルシステムにはLinuxのような所有者やパーミッションの仕組みが無いため起こる 。 Windowsマシンの共有の所有者やパーミッションを設定するには、マウント時のオプションとしてUIDやGID、ファイルやディレクトリのパーミッションを指定する必要がある。

CIFSのセキュリティモード

  • NTLM(NT LAN Manager authentication)
    • Windows OSのネットワークにおける認証方式の一つ
    • 共有フォルダや共有プリンタなどに利用される
  • Keroberos
    • SSO認証を可能にする認証方式

CIFSのマウント/アンマウント

CIFSのマウントにはmount.cifsコマンド、もしくはmount -t cifsを使用する。 なおアンマウントはunmountコマンドで行う。

setcifsaclコマンド

CIFSのACLに関する操作を行うコマンド。

setcifsacl <オプション>

getcifsaclコマンド

CIFSのACLに関する操作を行うコマンド。

getcifsacl <オプション>