らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

TACACS+ サーバの Docker コンテナを使って IOSv へ SSH ログインする

TACACS+ の検証をする際、Cisco ISE などを用意するのはやや手間がかかります。 そこで、簡易に TACACS+ 接続の検証が出来るように TACACS+ サーバが動作する Docker コンテナを作成しました。 利用方法をメモしておきます。

Docker のインストール

今回は Rocky Linux8 上で TACACS+ な Docker コンテナを動作させます。 予め下記などを参照して Rocky Linux8 へ Docker をインストールしておきます。

TACACS+ コンテナを起動する

Rocky Linux8 上で TACACS+ コンテナを起動します。

docker run --detach --tty --publish 49:49 --name tacacs-plus sig9/tacacs-plus

コンテナのサイズは 137MB でした。

# docker images
REPOSITORY         TAG       IMAGE ID       CREATED          SIZE
sig9/tacacs-plus   latest    97b262ec6105   10 minutes ago   137MB

IOSv のベースコンフィグ

CML2 上で IOSv を起動し、External Connector 経由で外部ネットワークへ接続出来るようにした上で、まず下記の基本設定を行いました。 インターフェイスのアドレスは DHCP としていますが、勿論固定アドレスでも問題ありません。

hostname IOSv
!
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
!
logging buffered 65536 debugging
!
clock timezone JST +9
!
no ip domain-lookup
ip domain name example.local
!
interface GigabitEthernet0/0
 ip address dhcp
 no shutdown
!
ip ssh version 2
!
no banner exec ^C
no banner incoming ^C
no banner login ^C
!
line con 0
 exec-timeout 300 0
!
line vty 0 4
 exec-timeout 300 0
 transport input telnet ssh
!
scheduler allocate
!
crypto key generate rsa modulus 2048
!
end

TACACS+ 認証用コンフィグ

コンテナに含めてある TACACS+ の設定ファイルでは、認証用のフレーズ (key) は secret に設定してあります。

aaa new-model
aaa authentication login MY-TACACS group tacacs+ local
aaa authentication enable default group tacacs+ enable
!
tacacs server MY-TACACS
 address ipv4 10.0.0.1
 key secret
!
line vty 0 4
 login authentication MY-TACACS
!
username admin privilege 15 secret password
!
end

IOSv へ TACACS+ 認証で SSH ログインする

IOSv へ SSH し、enable コマンドを実行してみます。 コンテナに含めてある TACACS+ の設定ファイルではユーザ名は tacadmin、パスワードは password でログイン出来ます。 enable 時のパスワードも password です。

$ ssh tacadmin@10.0.0.100
Password: password

IOSv> enable
Password: password
IOSv#

ルータ側でのデバッグ

TACACS+ 認証が上手くいかない場合はルータ側でデバッグしてみます。

debug tacacs authentication