...
- OS、DNS、ネットワーク、時刻同期などは設定済みとなっています。(Apache HTTP Server、mod_sslもインストール済み)
- CentOS7
- メモリ2GB以上
- Apache HTTP Server 2.4 と mod_ssl
- Shibboleth SP v3.0.0
本手順における用語の解説:
用語 | 説明 |
---|---|
DNS | DNSは、Domain Name Systemの略で、インターネット上でドメイン名を管理・運用するためのシステム。 |
Apache HTTP Server | Apache License2.0の条件でリリースされるフリーでオープンソースなクロスプラットフォームのWebサーバソフトウェア。 |
mod_ssl | mod_sslはOpenSSLを使ってApache HTTP Serverを通信の暗号化(SSL(Secure Sockets Layer), TLS(Transport Layer Security))に対応させるモジュール。 |
Shibboleth SP | Shibbolethは、組織内および組織を超えてWeb上でシングルサインオン(SSO)を実現し認証フェデレーションを構成するための、標準的なオープンソースソフトウェアのパッケージです。 Shibbolethを用いた認証はShibboleth(シボレス)認証と呼ばれます。 Shibboleth SPはSP(Service Provider)側にインストールするソフトウェアです。 |
SPサーバにインストールするのは、
- Apache HTTP Server
- mod_ssl
- Shibboleth SP
の3つのパッケージで、下図で背景色が白である図形部分です。
但し、本実習ではApache HTTP Server、mod_sslはインストール済み(下図、白背景の四角で示しています)のサーバを準備しており、Shibboleth SPをインストールする実習になります。(下図、白背景の楕円形で示しています)
実習環境ではSELinuxは無効化されているものとして手順を記載しています。下記コマンドでSELinux設定が確認できます。また、実習環境ではSELinuxは無効化されているものとして手順を記載しています。下記コマンドでSELinux設定が確認できます。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
$ /usr/sbin/getenforce |
実行していなければsudoコマンドを実行し、rootユーザで以降のコマンドを実行するようにしてください。あくまで実習の効率化のためであり、実環境ではコマンドごとにrootユーザでの実行の必要性の有無を確認してください。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
$ sudo -i # |
...
アンカー spInst2 spInst2
2.Shibbolethのインストール
1. repositoryファイル追加
Shibboleth用のrepositoryファイルをダウンロードします。 Shibboleth SP用のrepositoryファイルをダウンロードします。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# wgetcurl -O |
...
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# cp |
2. インストール
2.1 PGP鍵のインポート
yum コマンドの実行前に、まず「PGP鍵のインポート」を行います。
素の状態でyumコマンドにてインストールを実行すると、
情報 | ||
---|---|---|
| ||
Importing GPG key 0x7D0A1B3D "security:shibboleth OBS Project <security:shibboleth@build.opensuse.org>" from http://download.opensuse.org/repositories/security:/shibboleth/CentOS_7/repodata/repomd.xml.key
Is this ok [y/N]: |
と聞かれますが、PGP鍵を確認せずにインストールすることは大変危険です。
このPGP鍵を確認するためにあらかじめ以下の手順を実行してください。
Shibboleth関連のPGP鍵は以下のURLにあります。
https://shibboleth.net/downloads/PGP_KEYS
リンク先のテキストには
yumコマンドを使用する為、依存関係のあるunixODBCなども同時にインストールされます。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
(中略)
-----END PGP PUBLIC KEY BLOCK----- |
となっているところがいくつかありますが、そのうち"OBS security:shibboleth RPM repository key"の文字列のすぐ下にあるもの(2018年1月時点で8カ所中一番最後)を(-----
から始まる行も含めて)コピーして、
以下のコマンド等で新たに作成したKEYSというファイルにペーストしてください。
※vi以外のテキストエディタを使う場合、最終行に改行が入らないエディタがありrpmコマンドで失敗する場合が
ありますので、念のため最終行に改行を入れてください。
|
shibbolethパッケージの依存性、インストール容量等表示され、インストールするかの確認があります。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
vi KEYS |
次に
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
gpg --with-fingerprint KEYS |
を実行し、以下のフィンガープリント(指紋)と一致することを確認してください。
|
インストールが始まり、途中でPGP鍵のインポートに関して確認があります。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
パネル | ||||||
| ||||||
pub 1024D/7D0A1B3D 2008-06-30 security:shibboleth OBS Project
フィンガー・プリント = 6519 B5DB 7C1C 8340 A954 ED00 73C9 3745 7D0A 1B3D |
下記コマンドで、このPGP鍵をインポートすれば完了です。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# rpm --import KEYS |
...
title | ※よくあるエラー |
---|
...
PGP鍵をインポートしたとき、
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
エラー: KEYS: インポート読み込みに失敗しました(0)。 |
とエラーが出る場合は改行コードの問題が考えられます(WindowsでKEYSを作成した場合など)。その場合は以下のコマンドでエラーが解消されるか確認してください。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# tr -d \\r < KEYS > KEYS.lf ; rpm --import KEYS.lf |
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
エラー: KEYS: key 1 import failed. |
とエラーが出る場合はすでにPGP鍵がインポートされている可能性があります。以下のコマンドで
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# rpm -qa gpg-pubkey |
次の出力が含まれる場合はすでにPGP鍵がインポートされていますので次に進んでください。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
gpg-pubkey-7d0a1b3d-53ea2ad3 (最後のハイフン以降は異なっていても問題ありません) |
|
Fingerprint: に表示されている文字列が上記と一致することを確認の上、y[ENTER]
を入力してください。同様に2つ目のPGP鍵の確認がありますので、
パネル |
---|
|
Fingerprint: に表示されている文字列が上記と一致することを確認の上、y[ENTER]
を入力してください。
なお、OSインストール直後の状態でyum install shibbolethでインストールされるパッケージは以下の通りです。
(2023年7月現在, CentOS 7にて) 念の為下記コマンドでこのPGP鍵を用いて署名検証が行われることをチェックしてください。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# grep gpgcheck /etc/yum.repos.d/shibboleth.repo gpgcheck=1 ← =1であれば署名検証が行われる |
ここまで終了したら、shibbolethをインストールします。
2.2 Shibbolethのインストール
yumコマンドを使用する為、依存性のあるunixODBCなども同時にインストールされます。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
# yum install shibboleth
|
3. httpd 設定
/etc/httpd/conf.d/ssl.confにて、ServerNameを設定します。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
#ServerName www.example.com:443 |
情報 |
---|
加えて、SSL 3.0プロトコルに対する攻撃が発見されておりますので、当該プロトコルを無効化することをお勧めします。⇒SSLバージョン3の脆弱性について (CVE-2014-3566) panel |
|
4. shibd 起動
以下のコマンドでshibdを起動します。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
|
...
アンカー | ||||
---|---|---|---|---|
|
3.サービスの起動・停止方法
...
※shibdと同様、httpdもSPの設定ファイル(shibboleth2.xml等)を読み込みますので、設定ファイルを変更した際はhttpdの再起動もしくは再読み込み(reload)もあわせて行うようにしてください。httpdに含まれるShibbolethモジュール(mod_shib)が当該ファイルを読み込みます。
...
インストールが完了したら,サイト情報等の設定を行って下さい.