Cisco IOS へのログインに RADIUS を利用する際の設計ポイントと実際の設定例をメモしておきます。検証には VIRL 上の IOSv 15.6(2)T を利用しました。以下の点に留意して設計していきます。
【ポイント.1】基本的なパラメータは?
RADIUS を利用するのであれば最低限、以下の項目は必ず必要になります。
- RADIUS サーバは冗長化するか? それともシングル構成か?
- RADIUS サーバのアドレス
- RADIUS サーバのポート番号
- RADIUS シークレット
その他には以下等の詳細パラメータを決めていきます。
- RADIUS 認証のタイムアウト/再送回数
設定例
RADIUS の設定を行う前に最低限、基本設定を済ませておきます。
- SSH ログイン出来る設定
- RADIUS サーバの定義
具体的な設定例は以下の通りです。
hostname IOSv
ip domain-name EXAMPLE.LOCAL
!
crypto key generate rsa modulus 2048
ip ssh version 2
!
enable password PASSWORD
!
aaa new-model
!
aaa group server radius AAA-GROUP-RADIUS
server-private [RADIUS-SERVER] auth-port 1812 acct-port 1813 timeout 3 retransmit 3 key [RADIUS-SECRET]
!
username LOCAL-USER password LOCAL-USER
!
interface GigabitEthernet0/0
ip address [ADDRESS] [SUBNETMASK]
no shutdown
!
ip route 0.0.0.0 0.0.0.0 [NEXTHOP]
!
line vty 0 4
transport input ssh
!
end
【ポイント.2】VTY ログインを許可するプロトコルは?
VTY ログインを許可するプロトコルを決める必要があります。大凡の場合、以下のうち、いずれかを選択することになると思います。特に理由が無く、機器のライセンス的にも問題が無いのであれば、「SSH のみ」にしておくのが良いと思います。
- SSH
- TELNET
- SSH と TELNET の両方
設定例
設定例は以下の通りです。
SSH
line vty 0 4
transport input ssh
TELNET
line vty 0 4
transport input ssh
SSH と TELNET の両方
line vty 0 4
transport input ssh telnet
【ポイント.3】ログイン方式毎のログイン認証方式をどうするか?
「コンソールログイン」「VTY ログイン」各々で利用するログイン認証方式を以下から選択します。
- RADIUS 認証
- RADIUS サーバダウン時はログイン出来ない
- つまり、RADIUS サーバダウン時は何も出来ない
- RADIUS 認証 → ローカル認証
- RADIUS サーバダウン時はローカル認証にフォールバックする
- つまり、RADIUS サーバダウン時でもログイン出来る可能性が残る
- ローカル認証
- RADIUS 認証を利用しない
設定例
コンソールも VTY も RADIUS 認証を利用する
「line con」と「line vty」の両方に同じグループを定義することで同じ認証方式(今回であれば RADIUS 認証)を設定します。以下の設定例では「RADIUS サーバダウン時はローカル認証にフォールバック」させています。
aaa authentication login AUTHENTICATION-RADIUS group AAA-GROUP-RADIUS local-case
!
line con 0
login authentication AUTHENTICATION-RADIUS
!
line vty 0 4
login authentication AUTHENTICATION-RADIUS
フォールバックさせたくない場合は aaa authentication login の設定を以下のように変更します(local-case を削除することで Backup authentication の設定を削除します)。
aaa authentication login AUTHENTICATION-RADIUS group AAA-GROUP-RADIUS
コンソールはローカル認証、VTY は RADIUS 認証を利用する
「line con」と「line vty」で異なるグループを設定します。
aaa authentication login AUTHENTICATION-CONSOLE local-case
aaa authentication login AUTHENTICATION-RADIUS group AAA-GROUP-RADIUS local-case
!
line con 0
login authentication AUTHENTICATION-CONSOLE
!
line vty 0 4
login authentication AUTHENTICATION-RADIUS
【ポイント.4】enable パスワードの認証方式をどうするか?
enable パスワードの認証方式に以下から選択します。
- RADIUS 認証
- RADIUS 認証 → ローカル認証
- ローカル認証
但し、enable パスワードの認証方式は コンソールログインと VTY ログインで分ける、ということが出来ません。 つまり、enable パスワードの認証方式を「コンソールログイン時はローカル認証方式を、VTY ログイン時は RADIUS 認証方式という具合に使い分ける」ということは出来ないようです。もし「RADIUS 認証のみ」としていると RADIUS サーバがダウンしてしまうと enable モードに移行出来なくなってしまいます。
尚、RADIUS 認証を利用する場合、RADIUS サーバには「$enab15$」というユーザ名で認証を行います。よって、RADIUS サーバ側には「$enab15$」という名前のユーザを定義しておく必要があります。
設定例
ローカル認証を利用する
デフォルトではローカル認証になるので、特に明示的な設定は必要ありません。
RADIUS 認証を利用する
RADIUS 認証を利用するには以下のように設定します。下記の設定例では RADIUS サーバダウン時にはローカル認証にフォールバックするように設定しています。
aaa authentication enable default group AAA-GROUP-RADIUS enable
フォールバックさせたくない場合は以下のように設定します。
aaa authentication enable default group AAA-GROUP-RADIUS
【サンプル】コンフィグ例
以下の方針/パラメータでコンフィグを作成してみます。
項目 | 値 |
---|---|
VY アクセス | SSH のみ |
コンソールログイン時の認証方式 | ローカル認証のみ |
VTY ログイン時の認証方式 | RADIUS 認証 → ローカル認証 |
enable 実行時の認証方式 | RADIUS 認証 → ローカル認証 |
RADIUS サーバのアドレス | 192.168.1.100 |
RADIUS サーバのポート番号 | 1812 |
RADIUS シークレット | SECRET |
ローカル認証時のユーザ名 | LOCAL-USER |
ローカル認証時のパスワード | LOCAL-PASS |
ローカル認証時の enable パスワード | PASSWORD |
具体的なコンフィグ例は以下です。
hostname IOSv
ip domain-name EXAMPLE.LOCAL
!
crypto key generate rsa modulus 2048
!
ip ssh version 2
!
enable password PASSWORD
!
aaa new-model
!
aaa group server radius AAA-GROUP-RADIUS
server-private 192.168.1.100 auth-port 1812 acct-port 1813 timeout 1 retransmit 1 key SECRET
!
aaa authentication login AUTHENTICATION-CONSOLE local-case
aaa authentication login AUTHENTICATION-RADIUS group AAA-GROUP-RADIUS local-case
aaa authentication enable default group AAA-GROUP-RADIUS enable
!
username LOCAL-USER password LOCAL-PASS
!
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 192.168.1.254
!
line con 0
login authentication AUTHENTICATION-CONSOLE
!
line vty 0 4
login authentication AUTHENTICATION-RADIUS
transport input ssh
!
end
コメント