SlideShare a Scribd company logo
1 of 21
Download to read offline
知っているようで知らないPAMのお話
株式会社サーバーワークス
法人営業課 久保智夫
自己紹介
• 法人営業課(@大阪オフィス)の器用貧乏
• セールス〜PM〜一部構築も
• まだ試用期間中
• そして今日が本社最後の勤務日
• 職歴
• 主にISPでSI/NI事業の技術職・PMなど ←社会人人生の半分以上
• 後は省略(書ききれないので)
• 自称サーバーワークスのレイヤー低い(OSI的に)系
• 好物
配属の経緯
本題
今日のテーマ
認証その1: PAM編
認証ってなんだろう
• 単語自体は毎日何度も耳にしますよね
• パスワード認証、生体認証、Kerberos認
証、LDAP認証、認証VLAN、ISMS認証、
第三者認証・・・・
• 意味は何となくわかるけど、厳密に定義
せよと言われると結構悩む
• そもそも何だ??
先生に聞いてみた
トドのつまりこういうことのようです。
もう少し掘り下げると
• ITサービスの世界では、何らかの資源やサービス、シス
テムにアクセスする際に、アクセスしようとする者が本
人であるか(=正当性)を確認するプロセス
“は○たいら”っぽい髪型をした誰か
本物の“は○たいら”
-リソース
-情報
-サービス
-システム
…etc
本人であるかを確認
❌
⭕️
今日は、自分でもあまり得意ではない認証のうち、UNIX
環境でメジャーな存在であるPAMについてお話しします。
UNIX上での認証の用途の例
• Squid や apache での BASIC 認証
• Dovecot での IMAP ユーザ認証
• SSH でのログイン認証
• UNIX パスワード認証
• などなど他にも
• 上記は全て、システムを利用する人の正当性を確認するもの
独自認証乱立の弊害
• UNIX上で様々なアプリケーションがそれぞれ独自の認証
機能・認証用DBを持つと効率が悪い
squid apache dovecot
❌ ❌
各DB同士の互換性は無い
認証
機能 独自
DB
認証
機能
認証
機能独自
DB
独自
DB
認証機能統合の利便性
• 認証処理を一箇所にまとめ、認証機能を API 化して各ア
プリケーションが利用することで、
• “アプリケーションには認証機能を実装せず
API を利用するだけで認証を行える”
• というメリットが生まれる。
squid apache dovecot
独自
DB
独自
DB
独自
DB❌ ❌❌
DB
認証API
PAMとは
• Pluggable Authentication Module
• 認証処理を実行するプログラム群
• 外部から利用するためのAPI群
• 下位レベルにある認証スキームを入れ替えることで、様々な認証
バックエンドを利用できる(プログラムでは意識不要)
• UNIXやLinuxの各種ディストリビューションで古くから実装
プログラムA プログラムB プログラムC
PAMライブラリ
設定ファイル
(/etc/pam.d)
下位レベルの認証スキーム
モジュールインタフェースの種類
• PAMは大きく分けて以下4つのモジュールインタフェース(処理と読み替えて支障無
い)から構成される。これらのスタックを1行ずつ実行していくことで認証〜アカウン
ティング〜セッションオープン/クローズという一連の流れを管理している。
• 主に認証方法などを管理するモジュール
認証モジュール(auth)
• アカウントの有効期限切れやパスワードポリシーなどに関連する処
理を管理するモジュール
アカウント管理モジュール(account)
• パスワードの変更や更新などを管理するモジュール
パスワード管理モジュール(password)
• 利用者が認証後に使用するセッションを管理するモジュール
セッション管理モジュール(session)
[モジュールインタフェース] [制御フラグ] [モジュールパス] [モジュール引数]
PAM設定ファイルの書式
※モジュール引数は無いこともある
制御フラグ
• 制御フラグには以下のような種類がある(もっとややこしい表記方
法もあるが、割愛)
フラグ 意味
required このフラグが立ったモジュールが成功しないと認証が失敗。ただ
し次のモジュールがある場合は続けてそちらを参照する。
requisite このフラグが立ったモジュールが成功しないと認証が失敗。以降
のモジュールが存在しても参照されずにエラーとなる。先に
requiredで失敗していた場合、requiredエラーとして扱われる。
sufficient このフラグが立ったモジュールが成功し、かつ先のモジュールが
全て成功していた場合、以降のモジュールが存在しても参照され
ずに認証され、次のインタフェースに進む。
optional 他に参照するモジュールがない場合、このフラグが立ったモ
ジューが成功すると認証される。
include 引数で指定したファイルを読み込み、記述に従って処理する。
substack 引数で指定したファイルを読み込、記述に従って処理する。
Includeと違い、認証の成否がファイル内で完結する
PAM設定ファイルの中身
02: 外部ファイル(system-auth)を読み込んで認証処理を行う
※system-auth自体は環境変数セット、/etc/passwd & /etc/shadowを基に認証を行う
03: 外部ファイル(system-auth)を読み込んでアカウント確認を行う
※system-authではpasswd & shadowでのアカウント有効性確認を行う
04: 外部ファイル(system-auth)を読み込んでパスワードの確認を行う
※system-authではpam_cracklibによるパスワードポリシ確認、/etc/shadowの書き換え
を行 う。
05: (su実行元プロセスの)セッションキーリングが存在する場合、revokeされる
06: /etc/security/limits.confや/etc/security/limits.d/*で定義された内容に基づいてリソー
スの制限を行う
#%PAM-1.0
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so revoke
session required pam_limits.so
01:
02:
03:
04:
05:
06:
例)Amazon Linux(3.14.48-33.39.amzn1.x86_64)の/etc/pam.d/sudo
いくつかモジュール紹介
• pam_unix.so
• 従来通りのUNIXパスワード認証(/etc/passwd & /etc/shadow)
• pam_ldap.so
• LDAPサーバを認証バックエンドに使うためのモジュール
• pam_google_autheticator
• Google Authenticatorを利用した二要素認証を実現するモジュール
まとめ:PAMを使うメリット
• アプリケーション側で認証処理を実装せず、PAMに丸投
げすることができる
• 認証バックエンドを置き替えたいときは、PAMのモ
ジュールを入れ替えればアプリケーションに意識されず
に置き換えることができる
• スタックを組めば、認証・パスワードチェック・アカウ
ントチェック・リソース割り当てを自由に制御すること
ができる
最後に
• 明日から関西に帰ります。本社の皆さんお世話になりま
した&これからもお世話になります
• 関西ってとにかく食べ物が美味しくて海山近くて観光名
所多くて最高なので、みんな転勤&移住してくればいい
と思うのです
• 最近Twitter始めましたが正直よくわかってない
• @bokucurry
ご静聴ありがとうございました

More Related Content

What's hot

Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料Hironori Miura
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
AWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAmazon Web Services Japan
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)J-Stream Inc.
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイントAmazon Web Services Japan
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014Amazon Web Services
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 

What's hot (20)

Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
AWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリ
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
 
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
(SPOT301) AWS Innovation at Scale | AWS re:Invent 2014
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
私がなぜZscalerに?
私がなぜZscalerに?私がなぜZscalerに?
私がなぜZscalerに?
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 

More from Serverworks Co.,Ltd.

会社概要_株式会社サーバーワークス
会社概要_株式会社サーバーワークス会社概要_株式会社サーバーワークス
会社概要_株式会社サーバーワークスServerworks Co.,Ltd.
 
AWS re:Invent 2021 コスト削減に役立つアップデートまとめ
AWS re:Invent 2021 コスト削減に役立つアップデートまとめAWS re:Invent 2021 コスト削減に役立つアップデートまとめ
AWS re:Invent 2021 コスト削減に役立つアップデートまとめServerworks Co.,Ltd.
 
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!Serverworks Co.,Ltd.
 
なぜ今AWSが選ばれているのか? クラウドが求められている本当の理由
なぜ今AWSが選ばれているのか?クラウドが求められている本当の理由なぜ今AWSが選ばれているのか?クラウドが求められている本当の理由
なぜ今AWSが選ばれているのか? クラウドが求められている本当の理由Serverworks Co.,Ltd.
 
お菓子ノベルティとの1年越しの戦い、そして今
お菓子ノベルティとの1年越しの戦い、そして今お菓子ノベルティとの1年越しの戦い、そして今
お菓子ノベルティとの1年越しの戦い、そして今Serverworks Co.,Ltd.
 
機械学習を始める前の「学習」
機械学習を始める前の「学習」機械学習を始める前の「学習」
機械学習を始める前の「学習」Serverworks Co.,Ltd.
 
クラウドインテグレーターのお仕事
クラウドインテグレーターのお仕事クラウドインテグレーターのお仕事
クラウドインテグレーターのお仕事Serverworks Co.,Ltd.
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計Serverworks Co.,Ltd.
 
2018年8月 Just Skill研修資料
2018年8月 Just Skill研修資料2018年8月 Just Skill研修資料
2018年8月 Just Skill研修資料Serverworks Co.,Ltd.
 
キータイプハック 〜意外と身近なEmacsキーバインド〜
キータイプハック 〜意外と身近なEmacsキーバインド〜キータイプハック 〜意外と身近なEmacsキーバインド〜
キータイプハック 〜意外と身近なEmacsキーバインド〜Serverworks Co.,Ltd.
 
ディスプレイアームのすすめ
ディスプレイアームのすすめディスプレイアームのすすめ
ディスプレイアームのすすめServerworks Co.,Ltd.
 
ちょっと先の未来をいくイケてる営業スタイル
ちょっと先の未来をいくイケてる営業スタイルちょっと先の未来をいくイケてる営業スタイル
ちょっと先の未来をいくイケてる営業スタイルServerworks Co.,Ltd.
 
業務改善の考え方について
業務改善の考え方について業務改善の考え方について
業務改善の考え方についてServerworks Co.,Ltd.
 
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたこと
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたことIT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたこと
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたことServerworks Co.,Ltd.
 

More from Serverworks Co.,Ltd. (20)

会社概要_株式会社サーバーワークス
会社概要_株式会社サーバーワークス会社概要_株式会社サーバーワークス
会社概要_株式会社サーバーワークス
 
AWS re:Invent 2021 コスト削減に役立つアップデートまとめ
AWS re:Invent 2021 コスト削減に役立つアップデートまとめAWS re:Invent 2021 コスト削減に役立つアップデートまとめ
AWS re:Invent 2021 コスト削減に役立つアップデートまとめ
 
nyumon_hearts
nyumon_heartsnyumon_hearts
nyumon_hearts
 
AWS Organizations
AWS OrganizationsAWS Organizations
AWS Organizations
 
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!
【ANGEL Dojo】"人と会う"をもっとずっと、かんたんに。Ossu!
 
なぜ今AWSが選ばれているのか? クラウドが求められている本当の理由
なぜ今AWSが選ばれているのか?クラウドが求められている本当の理由なぜ今AWSが選ばれているのか?クラウドが求められている本当の理由
なぜ今AWSが選ばれているのか? クラウドが求められている本当の理由
 
20190124 waf
20190124 waf20190124 waf
20190124 waf
 
お菓子ノベルティとの1年越しの戦い、そして今
お菓子ノベルティとの1年越しの戦い、そして今お菓子ノベルティとの1年越しの戦い、そして今
お菓子ノベルティとの1年越しの戦い、そして今
 
機械学習を始める前の「学習」
機械学習を始める前の「学習」機械学習を始める前の「学習」
機械学習を始める前の「学習」
 
クラウドインテグレーターのお仕事
クラウドインテグレーターのお仕事クラウドインテグレーターのお仕事
クラウドインテグレーターのお仕事
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
 
2018年8月 Just Skill研修資料
2018年8月 Just Skill研修資料2018年8月 Just Skill研修資料
2018年8月 Just Skill研修資料
 
キータイプハック 〜意外と身近なEmacsキーバインド〜
キータイプハック 〜意外と身近なEmacsキーバインド〜キータイプハック 〜意外と身近なEmacsキーバインド〜
キータイプハック 〜意外と身近なEmacsキーバインド〜
 
ディスプレイアームのすすめ
ディスプレイアームのすすめディスプレイアームのすすめ
ディスプレイアームのすすめ
 
硬貨の価値
硬貨の価値硬貨の価値
硬貨の価値
 
ちょっと先の未来をいくイケてる営業スタイル
ちょっと先の未来をいくイケてる営業スタイルちょっと先の未来をいくイケてる営業スタイル
ちょっと先の未来をいくイケてる営業スタイル
 
Echo 買いました。
Echo 買いました。Echo 買いました。
Echo 買いました。
 
業務改善の考え方について
業務改善の考え方について業務改善の考え方について
業務改善の考え方について
 
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたこと
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたことIT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたこと
IT知識ゼロ、ゆとり世代、文系出身女子がIT業界に入り感じたこと
 
競馬の楽しみ方
競馬の楽しみ方競馬の楽しみ方
競馬の楽しみ方
 

知っているようで知らないPAMのお話