らくがきちょう

なんとなく

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

Cisco IOS へのログインに RADIUS を利用する際の設計ポイントと実際の設定例をメモしておきます。検証には VIRL 上の IOSv 15.6(2)T を利用しました。以下の点に留意して設計していきます。

【ポイント.1】基本的なパラメータは?

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. SSHTELNET の両方

設定例

設定例は以下の通りです。

SSH

line vty 0 4
 transport input ssh

TELNET

line vty 0 4
 transport input ssh

SSHTELNET の両方

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