Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FreeIPAの紹介
Search
Kazuo Moriwaka
November 29, 2017
Technology
2
2.7k
FreeIPAの紹介
Linux向けのドメイン管理を行うFreeIPAを紹介します
Kazuo Moriwaka
November 29, 2017
Tweet
Share
More Decks by Kazuo Moriwaka
See All by Kazuo Moriwaka
システム全体の暗号化ポリシーをカスタマイズ
moriwaka
0
2.2k
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
1.6k
odpからmp4を作る / odp2mp4
moriwaka
0
330
Red Hat Enterprise Linux Web Console を使う / cockpit-rhel8
moriwaka
0
830
systemdエッセンシャル / systemd-intro
moriwaka
46
12k
flatpak
moriwaka
0
2.5k
Red Hat Enterprise Linux 8 の セキュリティトピック
moriwaka
2
1.3k
システム全体の暗号化ポリシー設定
moriwaka
0
1.1k
端末のセッション記録
moriwaka
0
5.6k
Other Decks in Technology
See All in Technology
生成 AI プロダクトを育てる技術 〜データ品質向上による継続的な価値創出の実践〜
icoxfog417
PRO
5
1.8k
EDRの検知の仕組みと検知回避について
chayakonanaika
8
3.1k
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
270
Share my, our lessons from the road to re:Invent
naospon
0
120
AIエージェント元年
shukob
0
130
Windows の新しい管理者保護モード
murachiakira
0
180
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
140
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
300
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
540
Two Blades, One Journey: Engineering While Managing
ohbarye
1
430
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Speed Design
sergeychernyshev
27
800
Faster Mobile Websites
deanohume
306
31k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Applications with DynamoDB
mza
93
6.2k
Done Done
chrislema
182
16k
We Have a Design System, Now What?
morganepeng
51
7.4k
The Cult of Friendly URLs
andyhume
78
6.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Optimizing for Happiness
mojombo
376
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Transcript
1 FreeIPA の紹介 森若和雄 2017-11-29
2 このスライドの目的 • 目的 : OSS の認証基盤 FreeIPA が解決している 課題とどうやって解決しているかをざっくり紹介しま
す • 背景 : FreeIPA はかなりよくできていて、使うために 必要なドキュメント類も既にしっかりしたものがあ る。でも「ウチで使ってるよ」という人を日本であまり 見かけない…… → 布教活動が必要なのでは……
3 概要 • FreeIPA のサーバー側 • FreeIPA のクライアント側 • くっつけると……
?
4 FreeIPA のサーバー側
5 Linux でもドメイン管理したい FreeIPA プロジェクトが始まったのは 2007 年ごろ • Windows 世界は
AD で統合されてきたのに UNIX 世界は…… – LDAP でアカウントまとめるくらい – samba で ADに直接繋ぐとログインやファイル共有はできるけど UNIX 世界のための拡張は期待できない • ドメインコントローラの基本的な機能はもうある – ユーザ情報、ホスト情報などを保持→ LDAP – シングルサインオン→ Kerberos – ホスト登録するし、サービスの自動検出 → DNS – Kerberos で認証するから時計あわせるよね→ NTP – 証明書の発行と管理→ PKI → くっつければいいのでは…… ?
6 FreeIPA • 各プロトコルの代表的なソフトを束ねよう – MIT Kerberos – 389 Directory
Server – BIND – Dogtag (PKI 基盤 ) – これらを統合するのに必要なもの色々 • 基本的な方針 – 汎用のディレクトリではない。企業内の ID 管理を行う。 – UNIX/Linux 世界のための認証基盤を作る。 • AD と同じものは作りませんが AD との相互運用性は気にします – FreeIPA 未対応のシステムからも利用できるように互換性のあ るインタフェースを提供する。 FreeIPA DNS LDAP KDC PKI
7 くっつけただけなの ? • 「束ねよう」といっても簡単にはくっつかないのでいろ いろ開発しています – FreeIPA のポリシーにあわせた挙動を強制するための 389DS
用プラグイン • オペレータがパスワードを再発行するとリセット必須にする • LDAP 内のパスワードハッシュは外部から見えないようにするなど – サーバとクライアントのインストーラ – API 一式とコマンドラインクライアント – クライアント側サービス SSSD – Web UI 一式 – DNS を利用した自動検出、自動設定 – 2 要素認証、 HBAC 、などなど
8 用語 • Linux ドメイン : FreeIPA が管理するドメインのこと – 別に
Linux でなくてもいいのですがドキュメントがそう なっているので…… • IPA: Identity Policy Audit の略なのですが Audit 機能はなくなってしまい、実態としては Identity と Policy 管理の仕組みになっています • IdM: RHEL6 から FreeIPA が RHEL に同梱される にあたって、 Identity Management という名前がつ きました。その略称が IdM です。 •
9 デモサイト https://ipa.demo1.freeipa.org パスワード等は以下ページ参照 http://www.freeipa.org/page/Demo
10 FreeIPA のクライアント側
11 Linux/UNIX の認証 • Name Service Switch(NSS) – ユーザ ID
やグループ ID 、ホス ト名と、それにひもづく情報を 提供・更新する – libc の関数、 getpw() や gespent() 等がインタフェース となり、 nsswitch.conf でバック エンドを指定 • Pluggable Authentication Module(PAM) – 認証サービスへのアクセス – PAM ライブラリを認証をおこな うアプリケーションが呼びだす getpw() getserv byname() getspent() NSS nss_ldap.so nsswitch.conf nscd login vsftpd sshd PAM library pam_ldap.so pam.d
12 ドメイン修飾のある認証 • 認証するときに複数の名前空間を扱いたい – '
[email protected]
' ユーザーと、 '
[email protected]
' ユーザーを区別したい •
今までの PAM と NSS の仕組みで素直に設定する と、 PAM と NSS が独立しているので破綻する – 認証されたユーザがどちらのドメインかわからないから ※ 実際に pam_ldap で複数同一名のユーザがいると認証を失敗させる LDAP 1号 LDAP 2 号 PAM NSS 'kmoriwak' で認証できた どっちの 'kmoriwak'? example.com 情報 redhat.com 情報
13 SSSD によるドメイン対応 • 複数ドメインに対応した認 証と識別のサービス – PAM と NSS
のバックエン ドとして動作 – エントリのキャッシュも行う – オフライン時の認証に利用 するためにパスワードの ハッシュも維持 – 各ドメインに名前をつけ、 ' ユーザ名 @ ドメイン名 ' と いう名前を利用できる • 各ドメイン毎に ID と Auth のバックエンドを指定 example.com 設定 login vsftpd アプリケーション PAM library NSS library SSSD ID Auth redhat.com 設定 ID Auth LDAP Kerberos AD
14 簡単に設定したい…… !! • 課題 : 認証だけしたい時でも関連する設定が多い – Kerberos を認証サービスに、
LDAP を ID サービスに設定 した SSSD の設定 – pam の設定に pam_sss を追加 – nsswitch.conf に nss_sss を追加 • 解決 : realmd, realm コマンド – AD および FreeIPA で認証する設定を自動化 • 上記設定を自動的に実施 – DBus 経由で利用できるのでデスクトップ環境とも統合 – 認証以外の設定は行わないので注意 ( 必要な場合は後述 の ipa-client-install を利用する )
15 SSH • ドメイン内で認証したいだけなら Kerberos で OK • でも配りたいデータもあるね •
ホストの fingerprint を配布したい – fingerprint 、まじめにチェックしたことありますか ? – ホスト再構築時に known_hosts を更新し忘れて怒られ がち → ドメイン参加時に FreeIPA に公開鍵を登録、 DNS に SSHFP レコードを追加
16 ssh( 続 ) • ユーザーの公開鍵を自動配布したい – ドメイン外のマシンからログインしたい – パスワード認証を許可したくない
– 鍵をコピーするためだけにパスワード認証を許可して弱 くなりがち → LDAP で対応ユーザの sshPublicKey 属性を検索
17 sudoer
18 automount
19 くっつけると……
20 Linux System Linux System FreeIPA によるポリシー管理と SSO FreeIPA DNS
LDAP KDC PKI Linux System SSSD 認証 アイデンティディ 名前解決 証明書 Policies sudo HBAC automount selinux ssh keys UNIX/Linux 環境用の ポリシー管理と SSO を 実現。
21 Linux System ドメイン内での ssh FreeIPA • パスワードを打つのは最初のログインだけ • ドメイン内なら
ssh の各ユーザの鍵配布不要 • HBAC などのポリシーを設定可 ( デフォルトは全員 何でもできるポリシー ) Linux System ssh SSSD 1. 通常のログインが Kerberos 認証 ssh login 2. ticket で認証 SSSD 3. HBAC など ポリシーを確認
22 Linux System FreeIPA による ssh 鍵配布 FreeIPA ssh ユーザは
ssh 公開鍵を freeipa に登録 ssh は LDAP バックエンド で公開鍵を検索 • ssh でパスワード認証を禁止 • ドメイン内の各サーバへの鍵配布不要 • 不要になった鍵の削除も簡単
23 Linux System Linux System Active Directory と連携 FreeIPA DNS
LDAP KDC PKI Active Directory DNS LDAP KDC PKI Linux System SSSD 認証 アイデンティディ 名前解決 証明書 Policies sudo HBAC automount selinux ssh keys Kerberosの cross realm trust で AD と連携して SSO Trust
24 24 web アプリケーションの認証を統合 FreeIPA Linux System アプリケーション 認証 モジュール
SSSD Active Directory keycloak ユーザ ブラウザ Trust • SPNEGO(Kerberos) 対応 app →FreeIPA へ PAM 経由で認証 • SAML, Open ID Connect 対応 app → Keycloak 経由で認証 • LDAP, PAM 対応 app → SSO は不可。共通パスワードは利用可
25 Q&A • Q: なんで OpenLDAP じゃなくて 389DS なの ?
A: FreeIPA の開発チームが、ほぼ 389DS のチームと 同じなので。 • Q: RHEL に入ってる ipa と freeipa って何か違うの ? A: ソフトウェアとしてはほぼ一緒。ロゴがちがうくらい。 • Q: FreeIPA ってユーザいるの ? A: サポートへの問い合わせベースで集計すると RHEL IdM のユーザーは順調に増えています。言える範囲だと アメリカの証券取引委員会 (SEC) が使っています。
26 構築とか難しいんでしょ ? • 前提条件が厳しめ – 導入ホストは DNS で正引き、逆引きができてアドレスが 一致することが必須
(/etc/hosts のみは不可 ) – FQDN が必須 – NTP での時刻あわせを強く推奨 – FreeIPA の DNS を使う場合は専用サブドメインを推奨 • ドキュメントにしっかり書いているので確認 – http://www.freeipa.org/page/Deployment_Recommendations – http://www.freeipa.org/page/Quick_Start_Guide
27 主なインストール手順 主なインストール手順 • firewall の port あけて、パッケージをいれて以下を実行 • サーバ
: ipa-server-install コマンド – DNSが必要なら forwarder, reverse DNS zone の指定 – ドメイン名、 realm 名、管理者パスワード指定 – 外部 CAを使うなら証明書の指定 • クライアント : ipa-client-install コマンド – (自動で発見されない場合 ) サーバを指定 – Kerberos realm に接続するための認証ユーザ – SSSDの設定の他、ホストの証明書発行、 sshキーの初期 化、 ipaUniqueID • 詳しくはこちら: http://red.ht/2zKkKFu
28 スケーラビリティは ? • マルチマスタレプリケーション対応 – 複数 DC, 無停止アップデート可 –
証明書発行のみシングルノード • ざっくり 10 万アカウント +5 万グループだとサーバ にメモリ 16GB くらい必要 – 100 万アカウント必要とかだと速度が厳しい – 古いバージョンでは 5000 アカウントくらいで管理操作 の反応が遅くなってきます。最新に近い版を使いましょ う。
29 ドキュメントは ? • FreeIPA 自体のドキュメントは以下。特にデザインド キュメントがあるのがありがたい – http://www.freeipa.org/page/Documentation •
ユーザー向けのドキュメント – RHEL のドキュメントの一部として提供 : http://red.ht/2iXUYDP – FreeIPA 3 以降のユーザー向けドキュメントはこちらに 統合。和訳もあるよ。