検証で RADIUS サーバを用意したい場合、以下のような方法があります。もちろん、フリーウェアを探してみる… と言った手段もあると思います。
- Linux で FreeRADIUS を使う
- Windows Server 2012 以降の NPS(Network Policy Server)を使う
- NetAttest EPS、NetWyvern RADIUS、Account@Adapter+ のようなアプライアンス(の、評価版)を使う
他の手段として、MikroTik の RouterOS を使うと手軽に RADIUS サーバを作ることが出来ます。今回は CHR(Cloud Hosted Router)を RADIUS サーバとして設定し、Cisco IOS へのログイン認証を処理させます。
user-manager をインストールする
RouterOS を RADIUS サーバとして動作させる為には RouterOS に「user-manager」というパッケージを追加する必要があります。デフォルトの状態では以下のように user-manager パッケージが無いはずです。
[admin@MikroTik] > /system package print Flags: X - disabled # NAME VERSION SCHEDULED 0 routeros-x86 6.34rc19 1 system 6.34rc19 2 X wireless-cm2 6.34rc19 3 X ipv6 6.34rc19 4 ups 6.34rc19 5 wireless-fp 6.34rc19 6 hotspot 6.34rc19 7 dhcp 6.34rc19 8 mpls 6.34rc19 9 routing 6.34rc19 10 ppp 6.34rc19 11 security 6.34rc19 12 advanced-tools 6.34rc19
MikroTik のダウンロードページから利用している OS に合わせた Extra Package をダウンロード&展開します。展開したファイルの中に user-manager のパッケージ(.npk ファイル)があるはずなので、これを「WebUI の Files メニューからアップロードする」または「scp でコピーする」いずれかの手段で RouterOS へコピーします。今回は scp でコピーしました。
$ scp user-manager-6.34rc19.npk admin@192.168.1.1:/
アップロードしたパッケージを有効化する為、RouterOS を再起動します。
[admin@MikroTik] > /system reboot Reboot, yes? [y/N]: y
再起動後にパッケージの状態を確認するとアップロードした user-manager が追加されているはずです。
[admin@MikroTik] > /system package print Flags: X - disabled # NAME VERSION SCHEDULED 0 routeros-x86 6.34rc19 1 system 6.34rc19 2 X wireless-cm2 6.34rc19 3 X ipv6 6.34rc19 4 ups 6.34rc19 5 wireless-fp 6.34rc19 6 hotspot 6.34rc19 7 dhcp 6.34rc19 8 mpls 6.34rc19 9 routing 6.34rc19 10 ppp 6.34rc19 11 security 6.34rc19 12 advanced-tools 6.34rc19 13 user-manager 6.34rc19
user-manager を設定する
user-manager の設定は概ね、以下のような流れで設定します。
- プロファイルを作成する
- ルータ(RADIUS クライアント)を登録する
- ユーザを登録する
まず、プロファイルを作成しておきます。作成したプロファイルは後で作成するユーザと関連付けることになります。
/tool user-manager profile add name=PROFILE1 owner=admin
RADIUS クライアントを登録します。今回はアドレスを「192.168.1.2」、共有シークレットを「SECRET」としました。
/tool user-manager router add customer=admin ip-address=192.168.1.2 name=IOSv shared-secret=SECRET
最後にユーザを登録します。今回はユーザ名を「USER1」、パスワードを「PASSWORD1」としました。但し、ユーザを追加(add)するだけでは不十分であり、ユーザと先に作成したプロファイルを create-and-activate-profile コマンドで紐付ける必要があります。
/tool user-manager user add customer=admin password=PASSWORD1 username=USER1 create-and-activate-profile [ find username="USER1" ] customer=admin profile=PROFILE1
これで RouterOS 側の設定は完了です。ここまでのコンフィグをまとめると以下のようになります。
/tool user-manager profile add name=PROFILE1 owner=admin /tool user-manager router add customer=admin ip-address=192.168.1.2 name=IOSv shared-secret=SECRET /tool user-manager user add customer=admin password=PASSWORD1 username=USER1 create-and-activate-profile [ find username="USER1" ] customer=admin profile=PROFILE1
RouterOS の設定例
デフォルト値も含め、RouterOS の設定例は以下の通りです。
/tool user-manager customer set admin access=own-routers,own-users,own-profiles,own-limits,config-payment-gw /tool user-manager profile add name=PROFILE1 name-for-users="" override-shared-users=off owner=admin price=0 starts-at=now validity=0s /ip address add address=192.168.1.1/24 interface=ether2 network=192.168.1.0 /ip hotspot user add /tool user-manager database set db-path=user-manager /tool user-manager router add coa-port=1700 customer=admin disabled=no ip-address=192.168.1.2 log=auth-fail name=IOSv shared-secret=SECRET use-coa=no /tool user-manager user add customer=admin disabled=no password=PASSWORD1 shared-users=1 username=USER1 wireless-enc-algo=none wireless-enc-key="" wireless-psk=""
Cisco の設定例
Cisco(IOSv)側の設定例は以下の通りです。
aaa new-model ! aaa authentication login default group radius ! interface GigabitEthernet0/1 ip address 192.168.1.2 255.255.255.0 no shutdown ! radius server RADIUS-SERVER address ipv4 192.168.1.1 auth-port 1812 acct-port 1813 key SECRET ! line vty 0 4 transport input telnet ssh ! end
設定確認テスト
RouterOS から IOSv へ TELNET してみます。user-manager に設定したユーザ名/パスワードでログイン出来れば設定完了です。
[admin@MikroTik] > /system telnet 192.168.1.2 Trying 192.168.1.2... Connected to 192.168.1.2. Escape character is '^]'. User Access Verification Username: USER1 Password: Router>