10-1 認証サーバ ①目的 

d 

 

認証サーバを構築せずに、APにユーザ情報を登録して認証をすることができます。高いお金をかけて認証サーバを立てる必要性はなんですか?

 

人数が少ないときは、認証サーバを立てなくてもいいでしょう。むしろ、認証サーバの費用や運用負荷(サーバの障害対応、パッチあてなど)が増えてしまいます。

認証サーバの目的は大きく2つ
①ユーザの一元管理
②高度な機能

まず①に関して
 APにユーザを登録することができるが、APが複数台になると大変である。例えば、MACアドレス認証をする場合に、100台のAPがあれば、全てのAPにMACアドレスを登録する。しかも、MACアドレスが変わるたびに100台の設定変更が必要になる。
 その点、認証サーバをたてれば、その1台だけの管理をすればよい。
 理想は、無線LAN専用に認証サーバを立てるのではなく、既存の認証サーバにてユーザを一元管理するのがよいだろう。
 
②に関して
 高度な認証が可能になる。例えば、証明書を使ったIEEE802.1X認証ができるなど。

10-2 認証サーバ ②基本設計

(1)認証の内容
 認証の内容としては、ユーザID/パスワードが一般的である。
 それ以外には、MACアドレスでの認証も可能であるし、クライアント証明書での認証も可能である。

(2)認証プロトコル
 ①Radius
 ②Active Directory
 ③LDAP

(3)認証サーバの例
 ①Radius
 Windows2000や2003のIAS(Internet Authentication Service)、Window2008ではNPS(Network Policy Server)、LinuxでのFreeRADIUSがある。アプライアンス製品では、CiscoACS、安価なNetAttestなど
 ②Active Directory
 WindowsのAD
 ③LDAP
 OpenLDAPなど

6-1(1) AD(Active Directory)のインストール[Windows2003Server]

f 

Active Directoryってすごく難しいイメージがあります。
ちょっと私には厳しかな?

確かに、いろいろなことができるので設定は多岐にわたる。
ただ、単純に認証サーバとして立てるだけであれば、とてもシンプル。
まずは、基本的なインストールと設定を理解し、それ以降の複雑な内容は実際の組織の運用に合わせて理解すればいいでしょう。
では、以下に手順を示しますが、基本的には入れるだけ。

Windows2003を使ってADをインストールする。

1)「スタート」「ファイル名を指定して実行」「dcpromo」
2)基本的には「次へ」で進む。
3)新規にADを立てるので「新しいドメインのドメインコントローラ」を選択、「次へ」
ad1

4)「新しいフォレストのドメイン」「次へ」
5)新しいドメイン名としてドメイン名を入れる。ここでは「viva-musen.net」「次へ」
ad2 

6)基本的には全て「次へ」
7)DNS登録の診断
★重要★DNSはADインストール時に同時に行う。別で実施するとかなり大変。 
「このコンピュータに~」を選択
ad3

8)アクセス許可はそのままでいいでしょう。「次へ」
9)ディレクリサービス復元のパスワードは、何か設定して「次へ」
10)基本的に「次へ」で進み以下の「概要」が出たら最終確認画面。「次へ」でインストール開始。
ad4

11) インストールには数分~10分程度かかる。以下のメッセージが出れば完了。
簡単だったと思う。
ad5

6-1(2) ユーザ登録[Windows2003Server]

「スタート」「すべてのプログラム」「管理ツール」「Active Directory ユーザとコンピュータ」を選択。「Active Directory ユーザとコンピュータ」の画面が起動する。
登録したドメイン(今回の場合はviva-musen.net)が表示されることを確認する。

user1

ドメイン名を右クリックで「新規作成」「ユーザー」ユーザ名を入力する。
大事なのは「ユーザ ログオン名」これが認証するユーザIDになる。
user3

パスワードを入れる。
user2 

デフォルトで、一番上の「ユーザは次回ログオン時にパスワード変更が必要」にチェックが入っていると思う。今回はその必要がないので、チェックを外す。基本的に全部のチェックをはずしておいていい。利用状況に応じてチェックを入れる。

次へ」「完了」でユーザ作成完了。作るだけなら簡単である。

6-1(3)WindowsSever2012でのAD構築

最新のWindowsSever2012でも、もちろんADとRADIUSが構築できる。
作業手順は2003と大きく異なるが、基本的な考え方は同じである。

WindowsServer2012をActiveDirectoryサーバとして立ち上げる方法は次のとおり。
dcpromoコマンドは使えないので、サーバマネージャから操作する。

1)サーバマネージャを立ち上げて、「役割と機能の追加」をクリック
ad000

2)「開始する前に」の注意事項を読んで、次へ。
3)「インストール種類の選択」では、「役割ベースまたは機能ベースのインストール」を選択して次へ。
4)「対象サーバ」では、「サーバプールからサーバを選択」を選択し、インストールするサーバを選ぶ(最初は、1台しかないはず)
ad001

5)「サーバの役割の選択」で「ActiveDirectoryドメインサービス」にチェック。チェックした瞬間にポップアップが出るので「機能の追加」をクリックする。次へ。
ad002

6)「機能の選択」では何もチェックせず次へ。
7)「ActiveDirectoryドメインサービス」の注意事項を確認して、次へ
8)「インストールオプションの確認」を確認してインストール。「必要に応じて対象サーバを自動的に再起動」をチェックしておいてもOK。
9)インストールが終わると、「このサーバをドメインコントローラに昇格する」のリンクが表示されるので、ここをクリック。
ad003

10)「配置構成」で、「新しいフォレストを追加する」を選択し、ドメイン名を入力し、次へ。
ad004

11)「ドメインコントローラオプション」で、AD復元用のパスワードを入力して次へ。機能レベルはそのままでOK。DNSにチェックがあることを確認すること。
12)「DNSオプション」はそのまま次へ。
13)「追加オプション」は、入力したドメイン名の最初の部分が表示されていることを確認して、次へ。
ad005

14)「パス」はそのまま次へ。
15)「オプションの確認」は、内容を確認して次へ。
16)「前提条件のチェック」でチェックを行い(数分程度)、結果を確認したらインストール。
ad006

17)数分~十数分程度でドメインコントローラへの昇格が完了します。

6-6(0) 証明書発行の流れ

 PEAPを使うときにはRADIUSサーバに,EAP-TLSを使うときにはRADIUSサーバとクライアントにそれぞれ電子証明書が必要になる。 電子証明書の発行の流れを理解しておこう。

証明書発行の流れ

(1)秘密鍵・公開鍵ペアの作成
 秘密鍵と公開鍵のペアを作る。秘密鍵の取扱いには注意が必要である。秘密鍵を入手した第三者は,なりすましができるからだ。

(2)CSRの作成
 CSR(証明書署名要求)とは,CAに対して「証明書に署名してください」というお願いをするための情報である。市役所で住民票をもらうために書く申請用紙だと思えばよいだろう。
 CSRには,国名,組織名(会社名),サーバ名,公開鍵などの情報が含まれる。

(3)CSRの送付
 できあがったCSRを,CA(認証局)に送付する。

(4)CAによる署名
 CAでは,本人性の確認行う。証明書を作成して,CAの公開鍵を使って署名する。市役所の公印みたいなものだと思えばよい。

(5)証明書の返送
 CAは,できあがった証明書を要求者に送り返す。

(6)サーバへのインポート
 できあがった証明書と,秘密鍵をセットにしてサーバにインポートする。RADIUSサーバの場合,設定ファイルを置くディレクトリにファイルとして保管する。

6-2(1) IASによるRadiusサーバの構築(Windows2003)

IASのインストール
「コントロール パネル」「プログラムの追加と削除」「Windowsコンポーネントの追加と削除」「ネットワーク サービス」「詳細」ボタン
「インターネット認証サービス」をインストール

ias
 

   

IASの起動
「新しいRADIUSクライアント」を作る
ias2

   

名前とIPアドレスを入れる。
今回はWLCのIPアドレス(192.168.0.201)を設定する。
wlc3

クライアントベンダはデフォルトとする。※通常のRaiusなので「RADIUS Standard」

共有シークレットを入れる。(WLC側と合わせる)
ias3

IASのユーザとして、ADのアカウントを使うための設定をする。
ias4 

リモートアクセスポリシーの設定
①「リモートアクセスポリシー」「新しいリモートアクセスポリシー」をクリックして「次へ」
②ポリシーの構成方法は、ウィザードを使ってもいいが、ここでは「カスタム ポリシーを設定する」にチェックを入れ、ポリシー名をつける
policy

③ポリシー条件を「追加」ボタンで追加する。ここにあるように、送信元のIPアドレスや時間帯など、様々な要件でポリシーが作成される。深い意味は無いが、ここではWindows-Groupとする。
Domain Usersとしているが、Radius用のグループを作ってそれを指定するのが本来であろう。
policy2

policy3

④「リモートアクセス許可を与える」にチェックを入れる。(当然)
⑤プロファイルにて「プロファイルの編集」を押す
⑥「認証」タブで「暗号化されていない認証」にチェックを入れる。
※IEEE802.1X認証をするときは違う設定になる。
policy4

⑦「次へ」「完了」

ADのアカウント側でも設定が必要である。
該当アカウントのプロパティで「ダイヤルイン」「アクセスを許可」にチェックを入れる。
ad

※Radiusが正常に動作するかはNTRadPingにて試験するとよい。
また、ログの取得も大事だ。

6-6(1)CAの構築

CentOS6.3でのCA構築方法。

①OpenSSLの設定を変更しておく。最近の推奨値である鍵長2048bit、メッセージダイジェストsha256に変更する。

# vi /etc/pki/tls/openssl.cnf

106~107行目
default_bits            = 1024
default_md              = sha1
  ↓
default_bits            = 2048
default_md              = sha256

75行目
 default_md      = default               # use public key default MD
  ↓
 default_md      = sha256               # use public key sha256

CA証明書の使用用途(KeyUsage,ExtendedKeyUsage)を指定しておく。[ v3_ca]セクションで、次の行を有効にしておく。それぞれの意味は、NIIのサイトに詳しい解説がある。

basicConstraints = critical,CA:true
keyUsage = cRLSign, keyCertSign , digitalSignature,keyAgreement , keyCertSign , keyEncipherment
extendedKeyUsage = serverAuth, clientAuth

さらに、CSRを作成するときの手間を減らすための設定をする。毎回国名や組織名を入力するのは大変手間がかかる。そこで、入力の手間を減らせるようにopenssl.cnfを変更する。変更した内容が、入力時のデフォルト値になる。

[ req_distinguished_name ]セクションを変更する。内容はサンプルなので、CAを作成したときの名前にあわせて変更する。

・130行目付近
  countryName_default             = XX
   ↓
  countryName_default             = jp

・135行目付近
   #stateOrProvinceName_default    = Default Province
   ↓
   stateOrProvinceName_default   = Japan

・141行目付近
   0.organizationName_default      = Default Company Ltd
   ↓
   0.organizationName_default    = viva-musen

また、クライアント証明書やサーバ証明書を発行するためのテンプレートも作っておく。最終行に追加しておく。これは、証明書の種類がクライアント証明書やサーバ証明書であると言うことを示す情報だ。

[ clientAuth ]
extendedKeyUsage = clientAuth
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

[ serverAuth ]
extendedKeyUsage = serverAuth , clientAuth
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

②CA管理用のスクリプトを修正。

# cd /etc/pki/tls/misc/
# cp CA CA.sh

# vi CA.sh

65行目
CADAYS=”-days 1095″     # 3 years

CADAYS=”-days 3650″     # 10 years  ・・・CA証明書の有効期間は長い方が運用上楽。

130行目
 -out ${CATOP}/$CAREQ
 ↓
 -out ${CATOP}/$CAREQ -sha256 -newkey rsa:2048  ・・・鍵長は2048bitにしておこう。

③新規CAの作成。

# ./CA.sh -newca
CA certificate filename (or enter to create)
(enterを押す)
Making CA certificate …
Generating a 2048 bit RSA private key
………..+++
………………………..+++
writing new private key to ‘/etc/pki/CA/private/./cakey.pem’
Enter PEM pass phrase: (CAの秘密鍵のパスフレーズを入力)
Verifying – Enter PEM pass phrase:(CAの秘密鍵のパスフレーズを再入力)
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:jp ・・・国名を2文字で入力。
State or Province Name (full name) []:Japan ・・・国名または州名を入力(何か入れておかないと、後でエラーになる)
Locality Name (eg, city) [Default City]:. ・・・都市名を入力。空欄にする場合はピリオド。
Organization Name (eg, company) [Default Company Ltd]:viva-musen ・・・組織名(会社名など)を入力
Organizational Unit Name (eg, section) []: ・・・組織単位(部署名など)を入力。
Common Name (eg, your name or your server’s hostname) []:viva-musen-CA  ・・・CAの名前を入力
Email Address []: ・・・emailを入力。空欄でもOK。

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ・・・enterでOK
An optional company name []: ・・・enterでOK
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/./cakey.pem:(CAの秘密鍵のパスフレーズを入力)
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            **:09:ba:8e:7c:5f:**:16
        Validity
            Not Before: Dec  8 02:31:43 2012 GMT
            Not After : Dec  6 02:31:43 2022 GMT
        Subject:
            countryName               = jp
            stateOrProvinceName       = Japan
            organizationN
ame          = viva-musen
            commonName                = viva-musen-CA
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                7D:75:1A:**:C0:7D:57:0D:6F:**:45:27:2A:5D:C3:3B:**:06:E0:9B
            X509v3 Authority Key Identifier:
                keyid:**:75:1A:61:C0:7D:57:0D:6F:9D:45:27:2A:**:C3:3B:0D:**:E0:9B

            X509v3 Basic Constraints:
                CA:TRUE
Certificate is to be certified until Dec  6 02:31:43 2022 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
#chmod 600 /etc/pki/CA/private/cakey.pem
CAの秘密鍵を、root以外がアクセスできないように修正

失敗したら、
# rm -rf /etc/pki/CA/*
を実行してから、再度newscaする。
※CAの構築後は、/etc/pki/CA/のファイルは消してはならない!

この時点で、/etc/pki/CA/にたくさんのファイルができている。
/etc/pki/CA/cacert.pem  ・・・CAの公開鍵証明書(RADIUSサーバやクライアントに配布するファイル)
 →Windowsでインポートする場合には、cacert.cerにリネームしておく。
/etc/pki/CA/private/cakey.pem ・・・CAの秘密鍵(非公開のファイル。厳重に管理すること!)

④出来上がったCA証明書の内容確認

# openssl x509 -in /etc/pki/CA/cacert.pem -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            bb:09:ba:8e:7c:5f:82:16
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=jp, ST=Japan, O=viva-musen, CN=viva-musen-CA
        Validity
            Not Before: Dec  8 02:31:43 2012 GMT
            Not After : Dec  6 02:31:43 2022 GMT
        Subject: C=jp, ST=Japan, O=viva-musen, CN=viva-musen-CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
 ・
 ・
 ・
O7LRl2gxmbq/XUvbXBWouiBuuizpuCyDTJRjsKIhjw/Pi794CVeQyQVj9/WMra3O
U8RtZlIpGKGCEdg=
—–END CERTIFICATE—–

6-2(2) IASの動作確認、トラブルシューティング

ツールを使って試験をする。
WLCにていきなり試験をしてもいいが、そもそもRADIUSがきちんと動作しているかの確認を取った方がいい。
たとえば、NTRadPingを使って簡単に試験ができる。
Ntradp

「Send」ボタンを押して成功すると「response:Access-Accept」と表示される。

イベントビューワでのログ確認

トラブルシューティングにはログ分析が欠かせない。
「スタート」「管理ツール」「イベントビューワ」で確認をするとよい。
以下のように、どこでエラーになったかが表示される。

※ログの取得はデフォルトでONだと思う。もし取れない場合は、IAS管理画面の「インターネット認証サービス」を右クリック「プロパティ」で設定をする。
ivent

ArubaのWLC(無線LANコントローラ)からテストをする。
「Diagnostics」タブより、「Network」「AAA Test Server」にて、認証サーバを選択し、ユーザ名とパスワードを入力する。
「Begin Test」にてテストを行える。

「Authentication Successful」が出れば成功。「Authentication failed」で失敗。
aruba_aaa_test