目的

FreeRADIUS2を利用した802.1X認証を実施する。
オーセンティケータにはCisco機器(ルータ・L2SW)を利用する
サプリカントはWindowsXP付属のものを利用する
RADIUSサーバはCentOS6.3上で稼動。本稿記述時点でのバージョンは2.1.12

[root@radius]# radiusd -v
radiusd: FreeRADIUS Version 2.1.12, for host x86_64-redhat-linux-gnu, built on Oct  3 2012 at 01:22:51
Copyright (C) 1999-2011 The FreeRADIUS server project and contributors.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYRIGHT.
[root@radius]#

RADIUSについて

FreeRADIUSによる認証サーバOpenSSLによるPKI構築を参照

802.1X認証

以下の認証方式による接続テストを実施する。

  • EAP-MD5
  • EAP-PEAP(内部認証:MS-CHAP-V2)
  • EAP-TLS
  • MACアドレス認証(802.1X認証ではない)

利用するCisco機器は以下

  • Cisco1812J(IOS:15.1(4)M1)
  • Catalyst2940-8TT(IOS:12.1(22)EA8a)
  • Catalyst2960-24T(IOS:12.2(58)SE2)

設定

Cisco設定

全般設定

802.1X認証とログイン認証を別サーバで実施する場合は、radiusサーバをグループ化する必要がある。

  • radiusグループを作成する場合
    !aaaの採用
    aaa new-model
    aaa session-id common
    !radiusサーバグループの作成と802.1X認証を実施
    aaa group server radius ForDot1X
     server-private 192.168.10.251 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key RADSECRET
    aaa authentication dot1x default group ForDot1X
    dot1x system-auth-control
    !radiusアトリビュートによるダイナミックVLANを実施する場合は下記を投入
    aaa authorization network default group ForDot1X if-authenticated
  • radiusグループを作成しない場合
    !aaaの採用
    aaa new-model
    aaa session-id common
    !radiusサーバの設定と802.1X認証を実施
    radius-server host 192.168.10.251 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key RADSECRET
    aaa authentication dot1x default group radius
    dot1x system-auth-control
    !radiusアトリビュートによるダイナミックVLANを実施する場合は下記を投入
    aaa authorization network default group radius if-authenticated

Cisco1812J

MACアドレスバイパスは非対応

vlan database
 vlan 10 name soumu_seg
 vlan 20 name keiri_seg
 exit
!
interface vlan 10
  ip address 192.168.10.181 255.255.255.0
ip default-gateway 192.168.10.254
ip route 0.0.0.0 0.0.0.0 192.168.10.254
!
interface fas 2
 description ## AuthPort : eap ##
 switchport mode access
 no ip address
 dot1x port-control auto
 spanning-tree portfast
interface fas 9
 description ## UplinkPort ##
 switchport access vlan 10
 spanning-tree portfast

Catalyst2940

MACアドレスバイパスは非対応

vlan 10
 name soumu_seg
vlan 20
 name keiri_seg
!
interface vlan 10
  ip address 192.168.10.181 255.255.255.0
ip default-gateway 192.168.10.254
!
interface FastEthernet0/1
 description ## AuthPort : eap ##
 switchport mode access
 dot1x port-control auto
 spanning-tree portfast
interface GigabitEthernet0/1
 description ## UplinkPort ##
 switchport access vlan 10
 spanning-tree portfast

Catalyst2950

vlan 10
 name soumu_seg
vlan 20
 name keiri_seg
!
interface vlan 10
  ip address 192.168.10.181 255.255.255.0
ip default-gateway 192.168.10.254
!
interface fas 0/1
 description ## AuthPort : eap ###
 switchport mode access
 dot1x pae authenticator
 dot1x port-control auto
 dot1x violation-mode protect
 dot1x timeout tx-period 3
 spanning-tree portfast
interface fas 0/2
 description ## AuthPort : mac address bypass ##
 switchport mode access
 dot1x mac-auth-bypass
 dot1x pae authenticator
 dot1x port-control auto
 dot1x violation-mode protect
 dot1x timeout tx-period 3
 spanning-tree portfast
interface GigabitEthernet0/48
 description ## UplinkPort ##
 switchport access vlan 10
 spanning-tree portfast

Catalyst2960

vlan 10
 name soumu_seg
vlan 20
 name keiri_seg
!
interface vlan 10
  ip address 192.168.10.181 255.255.255.0
ip default-gateway 192.168.10.254
!
interface FastEthernet0/1
 description ## AuthPort : eap ###
 switchport mode access
 authentication order dot1x
 authentication priority dot1x
 authentication port-control auto
 dot1x pae authenticator
 spanning-tree portfast
!
interface FastEthernet0/2
 description ## AuthPort : mac address bypass ##
 switchport mode access
 authentication order mab
 authentication priority mab
 authentication port-control auto
 mab
 dot1x pae authenticator
 spanning-tree portfast
interface GigabitEthernet0/1
 description ## UplinkPort ##
 switchport access vlan 10
 spanning-tree portfast

radiusサーバの設定

FreeRadius?設定ファイルの修正

  • DHファイルの準備
    openssl dhparam -5 -out /etc/raddb/radiuscerts/dh 1024
  • 認証方式の指定
    利用する認証方式にEAPを追加する。
    [centos@radius]# vi /etc/raddb/sites-available
    authorize {
            files
            unix
            eap {  
                    ok = return
            }
    
    }
    authenticate {
            files
            unix
            eap
    }
    post-auth {
            exec
            Post-Auth-Type REJECT {
                    attr_filter.access_reject
            }
    }
  • EAP全般設定
    /etc/raddb/eap.confに設定するが、デフォルトのままで問題ない。
    eapセクション中の default_eap_type が md5となっていても、tlsとなっていても、デフォルトのEAPが通らない場合はNAKレスポンス中にステーション側のEAP方式を返すらしいので、RADIUSサーバ側で適切なEAP方式を試行するっぽい。
    [centos@radius]# vi /etc/raddb/eap.conf
    eap {
     default_eap_type = tls
     timer_expire     = 60
     ignore_unknown_eap_types = no
     cisco_accounting_username_bug = no
     max_sessions = 4096
     tls {
      bcrtdir    = radiuscerts
      certdir = ${confdir}/${bcrtdir}
      cadir = ${confdir}/${bcrtdir}
      private_key_password = RadiusSV
      private_key_file = ${certdir}/RadiusSV_key.pem
      certificate_file = ${certdir}/RadiusSV_crt.pem
      CA_file = ${cadir}/chainCA_crt.pem
      dh_file = ${certdir}/dh
      #random_file = ${certdir}/random
      random_file = /dev/urandom
      CA_path = ${cadir}
      cipher_list = "DEFAULT"
      ecdh_curve = "prime256v1"
      cache {
            enable = no
            lifetime = 24 # hours
            max_entries = 255
      }
      verify{
      }
     }
    }
  • ユーザリスト
    # vi users
    $INCLUDE /etc/raddb/userlist/users.eap
    $INCLUDE /etc/raddb/userlist/users.login
    $INCLUDE /etc/raddb/userlist/users.mab01
    $INCLUDE /etc/raddb/userlist/users.mab02
# vi userlist/users.eap
eapuser Auth-Type == EAP , Cleartext-Password := "eappass"
# vi userlist/users.mab01
DEFAULT Auth-Type == PAP
        Tunnel-Type := 13 , Tunnel-Medium-Type := 6 , Tunnel-Private-Group-Id := "soumu_seg",
        Fall-Through = Yes

1877ecd5f394 Cleartext-Password := "1877ecd5f394" , NAS-Port-Type == Ethernet
2877ecd5f394 Cleartext-Password := "2877ecd5f394" , NAS-Port-Type == Ethernet
# vi userlist/users.mab02
DEFAULT Auth-Type == PAP
        Tunnel-Type := 13 , Tunnel-Medium-Type := 6 , Tunnel-Private-Group-Id := "keiri_seg",
        Fall-Through = Yes

055dc061bf92 Cleartext-Password := "055dc061bf92" , NAS-Port-Type == Ethernet
255dc061bf92 Cleartext-Password := "255dc061bf92" , NAS-Port-Type == Ethernet
# chown -R root.radiusd userlist

EAP-MD5

ユーザ定義ファイルにユーザ名とパスワードを記載する。
Auth-TypeがSystemになっていれば、LinuxUID/PWDが利用できるが、EAPの場合にはAuth-TypeをEAPにする必要があるため、LinuxUID/PWDは利用できないみたい。

[centos@radius]# vi /etc/raddb/users
------------8<-----------------
eapuser Auth-Type:=EAP     , Cleartext-Password := "eappass"
------------8<-----------------

EAP-TLS

OpenSSLによるPKI構築を参照し、認証局を作成しておくこと。
デフォルトのFreeRADIUSで作成されている証明書情報などを利用する場合には、 有効期限切れのため、独自RADIUSサーバとしてサーバ証明書を生成する必要がある。

  • サーバ証明書を作成(RootCAから作成)
    cd ~/ca
    mkdir RadiusSV
    cd ~/ca/RadiusSV
    mkdir private
    
    openssl req -config ../configs/openssl_req.cnf -new -newkey rsa:2048 -keyout private/RadiusSV_key.pem -out RadiusSV_csr.pem
    
    openssl rsa -in private/RadiusSV_key.pem -out private/RadiusSV_key.pem
    
    cd ~/ca/RootCA
    openssl ca -config ../configs/openssl_sign.cnf  -keyfile private/RootCA_key.pem -batch -days 30 -cert RootCA_crt.pem -extensions v3_server -in ../RadiusSV/RadiusSV_csr.pem -out ../RadiusSV/RadiusSV_crt.pem
    
    cd ~/ca/RadiusSV
    openssl x509 -in RadiusSV_crt.pem -out RadiusSV_crt.pem
  • クライアント証明書(秘密鍵パスワード、エクスポート用パスワード除去済み)を作成(InterCAから作成)
    cd ~/ca
    mkdir ClientDV01
    cd ~/ca/ClientDV01
    mkdir private
    
    openssl req -config ../configs/openssl_req.cnf -new -newkey rsa:2048 -keyout private/ClientDV01_key.pem -out ClientDV01_csr.pem
    
    openssl rsa -in private/ClientDV01_key.pem -out private/ClientDV01_key.pem
    
    cd ~/ca/InterCA
    openssl ca -config ../configs/openssl_sign.cnf  -keyfile private/InterCA_key.pem -batch -days 30 -cert InterCA_crt.pem -extensions v3_client  -in ../ClientDV01/ClientDV01_csr.pem -out ../ClientDV01/ClientDV01_crt.pem
    
    cd ~/ca/ClientDV01
    openssl pkcs12 -export -inkey private/ClientDV01_key.pem -in ClientDV01_crt.pem -certfile ../chainCA_crt.pem -out ClientDV01_crt.p12
    →ここでパスワードは空欄エンターとする
  • クライアント証明書(秘密鍵パスワード、エクスポート用パスワードあり)を作成(InterCAから作成)
    cd ~/ca
    mkdir ClientDV02
    cd ~/ca/ClientDV02
    mkdir private
    
    openssl req -config ../configs/openssl_req.cnf -new -newkey rsa:2048 -keyout private/ClientDV02_key.pem -out ClientDV02_csr.pem
    
    cd ~/ca/InterCA
    openssl ca -config ../configs/openssl_sign.cnf  -keyfile private/InterCA_key.pem -batch -days 30 -cert InterCA_crt.pem -extensions v3_client -in ../ClientDV02/ClientDV02_csr.pem -out ../ClientDV02/ClientDV02_crt.pem
    
    cd ~/ca/ClientDV02
    openssl pkcs12 -export -inkey private/ClientDV02_key.pem -in ClientDV02_crt.pem -certfile ../chainCA_crt.pem -out ClientDV02_crt.p12

クライアントの設定

WindowsOSは標準でEAP-MD5(WinXPのみ搭載),EAP-PEAP,EAP-TLS対応のサプリカントが搭載されているが、 通常はローカルエリア接続のプロパティに「認証タブ」が表示されないため、以下の手順でサービスを開始する。

  1. スタートメニューからコントロールパネルを起動
  2. 管理ツールからサービスを選択
  3. Wired AutoConfig?を右クリックして、開始を選択
  4. Wired AutoConfig?を右クリックして、プロパティを選択し、「スタートアップの種類」を「自動」にしておく

EAP-MD5

MD5は証明書を利用せず、パスワードのハッシュ値を用いた利用者認証を実施する。

  • WindowsXPの設定
    ローカルエリア接続のプロパティから認証タブを選択し、802.1X認証の有効にチェックを入れ、ネットワーク認証方法をMD5にすればOK
  • Windows7の設定
    Windows7にはEAP-MD5がプルダウンボックスになかった。だめなのか?

EAP-PEAP(MS-CAHP-V2)

PEAPはサーバ証明書を利用し、UID/PWDによる利用者認証を実施する。

  • WindowsXPの設定
    ローカルエリア接続のプロパティから認証タブを選択し、802.1X認証の有効にチェックを入れ、ネットワーク認証を保護されたEAP(PEAP)にする。
    設定をクリックし、サーバ証明書を検証するにチェックを入れ、信頼されたルート証明機関の中から、RADIUSサーバのサーバ証明書を発行したCAの証明書を選択し、チェックボックスにチェックを入れておく。
    下部の認証方法を選択するでEAP-MSCHAPV2を選択し、構成のボタンをクリックし、出てきたダイアログの接続のための認証方法のチェックをはずしておく。
    これがチェックされたままだと、Windowsログインのユーザ名とパスワードで認証しようとするため、うまくいかない。

EAP-TLS

PEAPはサーバとクライアントの双方で証明書を利用し、相互認証を実施する。

  • WindowsXPの設定
    ローカルエリア接続のプロパティから認証タブを選択し、802.1X認証の有効にチェックを入れ、 スマートカードまたはその他の証明書を選択する。
    設定をクリックし、サーバ証明書を検証するにチェックを入れ、信頼されたルート証明機関の中から、RADIUSサーバのサーバ証明書を発行したCAの証明書を選択し、チェックボックスにチェックを入れておく。




Counter: 25271, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-18 (水) 16:38:53 (2507d)