2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOSのApacheで、ActiveDirectory連携のベーシック認証ができなくなった

Last updated at Posted at 2019-12-05

はじめに

普段はDebian系のOSを使っているのですが、久しぶりにCentOSを使う必要があり、SELinuxにやられたので書きます。

getenforce 0をしてSELinuxを無効化すればいいよ、的な記事が世の中にはたくさんあるみたいですが、SELenuxの無効化はしません。

今回起きたこと

閲覧を特定の人に制限するために、ApacheでActiveDirectory(LDAP認証)と連携してベーシック認証をおこなうページを作成しました。
だいたい以下のような感じの構成で順調に動いていました。ADは同じLAN内の別サーバです。

環境

  • CentOS 7.7
  • Apache2.4
  • mod_auth_ldap

ある日、社員さんから「認証ができなくなった」と報告がありました。確認すると、ベーシック認証のダイアログは表示されますが、認証はできず 500 Internal Server Error と表示されてしまいます。

調査

Apacheのログの確認

とりあえず、ログを見てみます。特に何もありません。

PHPのプログラムの確認

次に、Apacheでのベーシック認証は完了しているものの、PHPのプログラムのロジックに問題があるのでは考えてPHPのプログラムを確認してみました。
ログの出力レベルの設定をして確認しましたが、プログラムには問題なさそうです。

LDAPモジュールのエラーの確認

次に、LDAPモジュールのデバッグオプションを有効にしてみました。Apacheの設定ファイルに以下を追加します。

LDAPLibraryDebug 7

以下のようなログが表示されました。正しく通信できてないぽいですね。
ldap_create
ldap_simple_bind
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP <ip_address>
ldap_new_socket: 16
ldap_prepare_socket: 16
ldap_connect_to_host: Trying <ip_address>
ldap_pvt_connect: fd: 16 tm: 10 async: 0
ldap_ndelay_on: 16
attempting to connect: 
connect errno: 13

「ldap connect errno: 13」とGoogleで検索すると、[StackOverflowののページ](https://stackoverflow.com/questions/28684736/php-ldap-connection-cant-contact-ldap-server) が出てきました。ページに記載があるように、以下のコマンドを実行してみると、無事解決しました。
setsebool -P httpd_can_network_connect on

httpd_can_network_connectは、Apacheプロセスで動作するHTTPスクリプト・モジュールから外部への通信についてのポリシーのようです。

おわりに

別の社員さんに確認すると、OSのアップデートをしたとのことでした。OSのアップデートで設定が書き換わるなどしたのかもしれません。

CentOSで困ったときは、まずはSELinuxを疑ってみるのが良いかもしれません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?