コンテンツにスキップ

Cisco IOS へのログインで RADIUS 認証を利用する際のポイントと設定例

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 のみ」にしておくのが良いと思います。

  1. SSH
  2. TELNET
  3. 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 ログイン」各々で利用するログイン認証方式を以下から選択します。

  1. RADIUS 認証
    • RADIUS サーバダウン時はログイン出来ない
    • つまり、RADIUS サーバダウン時は何も出来ない
  2. RADIUS 認証 → ローカル認証
    • RADIUS サーバダウン時はローカル認証にフォールバックする
    • つまり、RADIUS サーバダウン時でもログイン出来る可能性が残る
  3. ローカル認証
    • 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 パスワードの認証方式に以下から選択します。

  1. RADIUS 認証
  2. RADIUS 認証 → ローカル認証
  3. ローカル認証

但し、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