- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
* 目的 [#u899c7d3]
FreeRADIUS2を利用したCisco機器へのログイン認証を実施する。~
OSには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について [#q135f828]
[[FreeRADIUSによる認証サーバ]]を参照
* やりたいこと [#c522ad60]
RADIUSと連携し、ログイン認証を実施する。~
利用するCisco機器は以下
-Cisco1812J(IOS:15.1(4)M1)
-Catalyst2950-8TT(IOS:12.1(22)EA8a)
-Catalyst2960-24T(IOS:12.2(58)SE2)
想定するログイン方法は以下
-telnet
-ssh
-web管理
RADIUSと連携したいシステムは以下
-ローカルDB
-Linuxシステムアカウント
-LDAP
-ActiveDirectory
* 設定 [#u3078088]
** Cisco設定 [#na560363]
aaaを有効にし、グローバルコンフィグモードでradiusサーバ設定、radiusグループ設定でログイン認証、イネーブル認証、実行コマンド認可を有効にする。~
radiusサーバへの問い合わせ時に1秒以上応答がなければ、1回だけ再問い合わせし、それでも応答が無い場合には、サーバが死んでいると判断するようにしている。~
-aaaの採用
802.1X認証とログイン認証を別サーバで実施する場合は、radiusサーバをグループ化する必要がある。
-radiusグループを作成する場合~
!aaaの採用
aaa new-model
-radiusグループ設定
radiusグループごとにradiusサーバのIPアドレス・ポート指定・タイムアウト指定・再送要求指定・シークレット文字列をそれぞれ指定する。
aaa session-id common
!radiusサーバグループの作成とログイン認証を実施
aaa group server radius ForLogin
server-private 192.168.10.193 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key SECRET
-radius適用対象設定
ログイン認証には、ForLoginグループ→local-case(ローカル設定で大文字小文字を区別)の順で適用~
イネーブル認証には、ForLoginグループ→enable(ローカル設定)の順で適用~
server-private 192.168.10.251 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key RADSECRET
!ログイン認証には、radius→local-case(ローカル設定で大文字小文字を区別)の順で適用~
!イネーブル認証には、radius→enable(ローカル設定)の順で適用~
aaa authentication login default group ForLogin local-case
aaa authentication enable default group ForLogin enable
aaa authentication enable default group ForLogin enable
!ログイン時に特権モードになるアトリビュートを設定する場合は下記コマンドを投入
aaa authorization exec default group ForLogin if-authenticated
!ローカルアカウントはradiusサーバと疎通が取れない場合に利用される
enable secret ENABLE_PASSWORD
username LOCAL_UID password LOCAL_PWD
-ローカルアカウントの設定
radiusサーバと疎通が取れない場合には、ローカルで設定したアカウントを利用する。~
service password-encryption
-radiusグループを作成しない場合~
!aaaの採用
aaa new-model
aaa session-id common
!radiusサーバの設定とログイン認証を実施
radius-server host 192.168.10.251 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key RADSECRET
!ログイン認証には、radius→local-case(ローカル設定で大文字小文字を区別)の順で適用~
!イネーブル認証には、radius→enable(ローカル設定)の順で適用~
aaa authentication login default group radius local-case
aaa authentication enable default group radius enable
!ログイン時に特権モードになるアトリビュートを設定する場合は下記コマンドを投入
aaa authorization exec default group radius if-authenticated
!ローカルアカウントはradiusサーバと疎通が取れない場合に利用される
enable secret ENABLE_PASSWORD
username LOCAL_UID password LOCAL_PWD
** FreeRADIUS設定 [#oc312596]
-radiusサーバとしての設定
-radiusサーバとしての設定~
クライアントとして含めるための記述。~
以下ではサブネットごとの指定としているが、単一IPアドレスとしても可。
[centos@radius]# vi /etc/raddb/clients.conf
# vi /etc/raddb/clients.conf
------------8<-----------------
client ManagementNetwork {
ipaddr = 192.168.XXX.0
netmask = 24
secret = cisco_device
shortname = router_switch
}
------------8<-----------------
-usersファイルに書き込む場合~
ユーザ定義ファイルにユーザ名とパスワードを記載する。
[centos@radius]# vi /etc/raddb/users
-usersファイルの利用~
ユーザ定義ファイルにユーザ名とパスワードを記載する。~
ユーザ定義ファイルは/etc/raddb/usersを直接操作するのではなく
外部ファイルを読み込んでおいたほうが後々の修正が容易になる。
# vi users
$INCLUDE /etc/raddb/userlist/users.login
--ユーザとパスワードを指定する場合~
# vi /etc/raddb/users.login
------------8<-----------------
hoge Auth-Type:=Local , Cleartext-Password := "huga"
foo Auth-Type:=Local , Cleartext-Password := "bar"
hoge Auth-Type:=PAP , Cleartext-Password := "huga"
foo Auth-Type:=PAP , Cleartext-Password := "bar"
------------8<-----------------
-LinuxシステムのUID/PWDと連携する場合~
ユーザ定義ファイルにユーザ名とパスワードを記載する。~
この場合、radiusd.confのuser,groupをrootにする必要がある。~
[centos@radius]# vi /etc/raddb/users
--LinuxシステムのUID/PWDと連携する場合~
# vi /etc/raddb/users.login
------------8<-----------------
UID Auth-Type:=System
------------8<-----------------
もしくはデフォルトの記述で全ユーザを有効にしてもよい。
[centos@radius]# vi /etc/raddb/users
------------8<-----------------
DEFAULT Auth-Type:=System
Fall-Through=Yes
------------8<-----------------
-利用する認証方式にunixを追加する。
[centos@radius]# vi /etc/raddb/sites-available
--実用的な設定例~
# vi userlist/users.login
#パスワードはハッシュ値として保存することも可能
#ハッシュ値は echo -n PASSWORD | openssl md5 で作成
loginuser Auth-Type := PAP , MD5-Password := "xxxx"
# 特権モードになるためのユーザ名は$enab15$
$enab15$ Auth-Type := PAP , MD5-Password := "xxxx"
NETUSER Auth-Type := PAP , MD5-Password := "xxxx"
Service-Type := NAS-Prompt-User , Cisco-AVPair := "shell:priv-lvl=1"
#リプライアイテムにService-Type := NAS-Prompt-User , Cisco-AVPair := "shell:priv-lvl=15"を含めると
#ログイン直後に特権モードになることが可能。
NETADMIN Auth-Type := PAP , MD5-Password := "xxxx"
Service-Type := NAS-Prompt-User , Cisco-AVPair := "shell:priv-lvl=15"
-利用する認証方式にunixを追加する。~
# vi /etc/raddb/sites-available/default
authorize {
files
unix
}
authenticate {
files
unix
}
post-auth {
exec
Post-Auth-Type REJECT {
attr_filter.access_reject
}
}
~
~
~
#counter