Debian 8 Jessie
 

Kerberos認証を利用する
2015/06/03
 
ある特定のページに対してアクセス制限をかけ、認証には Windows Active Directory を利用します。
LAN 内に Windows Active Directory Domain Service が稼働していることが前提です。
ここでは例として、以下のような Active Directory ドメイン環境で設定します。
ドメインサーバー : Windows Server 2012 R2
ドメイン名 : FD3S01
レルム : FD3S.SRV.WORLD
ホスト名 : fd3s.srv.world
[1] 例として [/var/www/html/auth-kerberos] ディレクトリ配下を認証対象とし、SSL 通信を要求するように設定します。 よって、事前に SSL の設定実施済みが前提です。
root@www:~#
aptitude -y install libapache2-mod-auth-kerb
# レルム名を指定

 +------------------+ Configuring Kerberos Authentication +------------------+
 | When users attempt to use Kerberos and specify a principal or user name   |
 | without specifying what administrative Kerberos realm that principal      |
 | belongs to, the system appends the default realm.  The default realm may  |
 | also be used as the realm of a Kerberos service running on the local      |
 | machine.  Often, the default realm is the uppercase version of the local  |
 | DNS domain.                                                               |
 |                                                                           |
 | Default Kerberos version 5 realm:                                         |
 |                                                                           |
 | FD3S.SRV.WORLD________________________________________________________ |
 |                                                                           |
 |                                  <Ok>                                     |
 |                                                                           |
 +---------------------------------------------------------------------------+
# Active Directory のホスト名を指定

 +------------------+ Configuring Kerberos Authentication +------------------+
 | Enter the hostnames of Kerberos servers in the FD3S.SRV.WORLD Kerberos |
 | realm separated by spaces.                                                |
 |                                                                           |
 | Kerberos servers for your realm:                                          |
 |                                                                           |
 | fd3s.srv.world________________________________________________________ |
 |                                                                           |
 |                                  <Ok>                                     |
 |                                                                           |
 +---------------------------------------------------------------------------+
 
# Active Directory のホスト名を指定

 +------------------+ Configuring Kerberos Authentication +------------------+
 | Enter the hostname of the administrative (password changing) server for   |
 | the FD3S.SRV.WORLD Kerberos realm.                                     |
 |                                                                           |
 | Administrative server for your Kerberos realm:                            |
 |                                                                           |
 | fd3s.srv.world________________________________________________________ |
 |                                                                           |
 |                                  <Ok>                                     |
 |                                                                           |
 +---------------------------------------------------------------------------+

# keytab 作成 : HTTP/[ADのホスト名またはIPアドレス]@[レルム名]

root@www:~#
echo "HTTP/fd3s.srv.world@FD3S.SRV.WORLD" > /etc/krb5.keytab
root@www:~#
vi /etc/apache2/sites-available/auth-kerberos.conf
# 新規作成

<Directory /var/www/html/auth-kerberos>
    SSLRequireSSL
    AuthType Kerberos
    AuthName "Kerberos Authntication"
    KrbAuthRealms FD3S.SRV.WORLD
    Krb5Keytab /etc/krb5.keytab
    KrbMethodNegotiate Off
    KrbSaveCredentials Off
    KrbVerifyKDC Off
    Require valid-user
</Directory>

root@www:~#
mkdir /var/www/html/auth-kerberos

root@www:~#
a2ensite auth-kerberos

Enabling site auth-kerberos.
To activate the new configuration, you need to run:
  service apache2 reload

root@www:~#
systemctl restart apache2
# テストページ作成

[root@www ~]#
vi /var/www/html/auth-kerberos/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Test Page for Kerberos Auth
</div>
</body>
</html>
  Webブラウザからテストページにアクセスしてみます。 すると設定通り認証を求められますので、Active Directory に登録してあるユーザーで認証します。
  アクセスできました。
 
Tweet