こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
SAML環境のテストのために、SimpleSAMLphpを使って簡易IdP / SPをセットアップしていたのですが(これはまた別で纏める予定)、CentOS 7+PHP 7.3環境でApache+SSL環境を立ち上げて/var/www/simplesamlphp以下に展開したてで管理者ログインできなくなる事象(ERR_TOO_MANY_REDIRECTS)にはまっていました。Webで同様の事象を探しましたが私の場合と同じ原因のものがなかったので、私の環境で起きた原因と直し方を備忘録を兼ねて簡単に纏めます。
連載
(SAML第1回) SimpleSAMLphpを使った簡易IdPの作成
(SAML第2回) SimpleSAMLphpを使った簡易SPの作成
(SAML第3回) mod_auth_mellonを使った簡易SPの作成
環境
- OS: CentOS 7.9(最新にyumで更新)
- Apache: 2.4.6-97(最新のものをyumから取得) / User: hogehogeで動作
- PHP: 7.3.27(remiから取得)
- SimpleSAMLphp: 1.19.0(最新)
問題の状況
Apache+PHP+SSL環境が動作するところまでを確認。SimpleSAMLphpを取得・展開後、下記の画像で「管理者ログイン」をクリックすると
少しブラウザがなにか開くような挙動をした後に、下記のようなエラー画面になります。
検索結果と症状
これは、内部で無限ループが生じている際に発動するエラーで、検索して調べるとその対処方法ばかりが出てきます。しかし、私の場合はそれらとは異なっており、四苦八苦の上色々調べていくと、挙動がなぜか
- Apacheの実行ユーザをapache(CentOSのデフォルト)だと動作する
- Apacheの実行ユーザをhogehoge(新たに作ったユーザ)だと動作しないで無限ループ -> 上述のエラー画面
のようになっていました。
原因と対処方法
結果的に言うと、/var/lib/php/session以下のファイル(セッションファイル)が、多分最初に立ち上げた際にUID/GIDが”apache / apache”で作成されており、それらを更新することが出来ないために起こっていた問題でした。そのため
- /var/lib/php/session以下のファイルを削除して空にする。
- hogehogeユーザをapacheグループに追加する(/var/lib/php以下はapacheグループなら書き込める)。
という方法で動作させることが出来ました。
皆様はこのようなケースにハマることはないと思いますが、万が一同じ状況に陥った方が居ましたら、こういうケースもあるよ、という事で情報を(備忘録がてら)共有します。
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
CM
こちらで小学生の勉強支援サイトをオープンしました。算数のプリント(都度、自動生成)が無料でダウンロードできます。コンテンツは未だ少ないですが、徐々に増やしていきます。