以前に Cisco IOS ルータへの Radius ログイン時、自動的に特権モードにするにはというメモを書きましたが、これでは設定として不十分な為、新たに「Cisco IOS ルータへ Radius 認証でログインする」方法に関して、メモを書き直します。
設定方針
- コンソールログイン
- Radius 認証はさせず、ローカル認証させる
- 特権モードへの移行にはパスワード (
enable secret
) が必要
- SSH ログイン (Radius サーバ正常時)
- SSH ログイン (Radius サーバ障害時)
- Radius サーバがダウンしている場合はローカル認証に切り替える
- 特権モードに昇格する場合はコンソールログイン同様、パスワード (
enable secret
) が必要
- それ以外のログイン
- Telnet 等、他のログイン方法は無効とする
パラメータ
事前に決定しておく必要がある代表的なパラメータを表にまとめます。
項目 | 意味 | 設定例 |
---|---|---|
[HOSTNAME] |
ホスト名 | iosv-1 |
[ENABLE-SECRET] |
特権モードのパスワード | enable-secret |
[DOMAIN] |
ドメイン名 | example.com |
[RADIUS-ADDRESS] |
Radius サーバのアドレス | 10.0.0.100 |
[SECRET] |
Radius シークレット | radius-secret |
[LOCAL-ADMIN] |
ローカルユーザ | admin |
[LOCAL-PASS] |
ローカルユーザ用のパスワード | password |
[ADDRESS] |
インターフェイスのアドレス | 10.0.0.1 |
[NETMASK] |
インターフェイスのネットマスク | 255.255.255.0 |
[GATEWAY] |
デフォルトゲートウェイ | 10.0.0.254 |
IOS ルータ用のコンフィグ
クラシックな IOS 用のコンフィグは以下のようです。 正確な情報を調べることは出来なかったのですが、(IOS-XE 以前の) クラシックな IOS では RadSec (RFC-6614 Transport Layer Security (TLS) Encryption for RADIUS には対応していないようなので、通常の Radius プロトコルを用いています。
service password-encryption service timestamps debug datetime msec localtime service timestamps log datetime msec localtime ! hostname [HOSTNAME] ! enable secret [ENABLE-SECRET] ! aaa new-model ! aaa group server radius GROUP-RADIUS server-private [RADIUS-ADDRESS] auth-port 1812 acct-port 1813 timeout 3 retransmit 1 key [SECRET] ! aaa authentication login default none aaa authentication login VTY_LOGIN group GROUP-RADIUS local aaa authentication login CON_LOGIN local aaa authorization exec default none aaa authorization exec VTY_EXEC group GROUP-RADIUS if-authenticated ! ip domain-name [DOMAIN] ! clock timezone JST 9 0 ! crypto key generate rsa modulus 2048 ip ssh version 2 no ip http server no ip http secure-server ! username [LOCAL-ADMIN] privilege 15 password [LOCAL-PASS] ! interface GigabitEthernet0/0 ip address [ADDRESS] [NETMASK] no shutdown ! ip route 0.0.0.0 0.0.0.0 [GATEWAY] ` line con 0 exec-timeout 60 0 login authentication CON_LOGIN ! line vty 0 4 exec-timeout 60 0 authorization exec VTY_EXEC login authentication VTY_LOGIN transport input ssh ! end