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でユーザ・グループの管理やドメインの操作などを行うことができるコマンド。
コマンド | 説明 |
---|---|
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
で行う
- NFSv4の共有ディレクトリの設定は
/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に関する操作を行うコマンド。
getcifsaclコマンド
CIFSのACLに関する操作を行うコマンド。