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.5k
FreeIPAの紹介
Linux向けのドメイン管理を行うFreeIPAを紹介します
Kazuo Moriwaka
November 29, 2017
Tweet
Share
More Decks by Kazuo Moriwaka
See All by Kazuo Moriwaka
システム全体の暗号化ポリシーをカスタマイズ
moriwaka
0
2k
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
1.5k
odpからmp4を作る / odp2mp4
moriwaka
0
280
Red Hat Enterprise Linux Web Console を使う / cockpit-rhel8
moriwaka
0
750
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.4k
Other Decks in Technology
See All in Technology
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
Terraform Stacks入門 #HashiTalks
msato
0
350
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
340
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Practical Orchestrator
shlominoach
186
10k
Become a Pro
speakerdeck
PRO
25
5k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Rails Girls Zürich Keynote
gr2m
94
13k
The Language of Interfaces
destraynor
154
24k
A designer walks into a library…
pauljervisheath
203
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
A Tale of Four Properties
chriscoyier
156
23k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
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 以降のユーザー向けドキュメントはこちらに 統合。和訳もあるよ。