#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の採用 aaa new-model -radiusグループ設定 radiusグループごとにradiusサーバのIPアドレス・ポート指定・タイムアウト指定・再送要求指定・シークレット文字列をそれぞれ指定する。 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(ローカル設定)の順で適用~ aaa authentication login default group ForLogin local-case aaa authentication enable default group ForLogin enable -ローカルアカウントの設定 radiusサーバと疎通が取れない場合には、ローカルで設定したアカウントを利用する。~ service password-encryption enable secret ENABLE_PASSWORD username LOCAL_UID password LOCAL_PWD ** FreeRADIUS設定 [#oc312596] -radiusサーバとしての設定 クライアントとして含めるための記述。~ 以下ではサブネットごとの指定としているが、単一IPアドレスとしても可。 [centos@radius]# 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 ------------8<----------------- hoge Auth-Type:=Local , Cleartext-Password := "huga" foo Auth-Type:=Local , Cleartext-Password := "bar" ------------8<----------------- -LinuxシステムのUID/PWDと連携する場合~ ユーザ定義ファイルにユーザ名とパスワードを記載する。~ この場合、radiusd.confのuser,groupをrootにする必要がある。~ [centos@radius]# vi /etc/raddb/users ------------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 authorize { files unix } authenticate { files unix } post-auth { exec Post-Auth-Type REJECT { attr_filter.access_reject } } ~ ~ ~ #counter