designetwork

ネットワークを軸としたIT技術メモ

Cisco ASAにSSH公開鍵認証でログインする

f:id:daichi703n:20190103195640p:plain

サーバ運用では一般的なSSH公開鍵認証Cisco ASAで実装する。これにより、よりセキュア、かつ効率的に運用が可能になる。

オフィシャル情報

Cisco ASAのSSH関連設定ガイドはこちら www.cisco.com

本記事ではSSH公開鍵認証に特化して設定方法を記載する。

環境情報

自宅用なので、定期的なOSバージョンアップはしておらず、やや古い...。SSH公開鍵認証を適用する際には事前に導入バージョンで検証を実施ください。(後述の通りバージョンによる差異があります)

ASA5505# sh ver

Cisco Adaptive Security Appliance Software Version 9.2(3)
Device Manager Version 7.2(1)

Compiled on Mon 15-Dec-14 04:10 by builders
System image file is "disk0:/asa923-k8.bin"
...

認証は機器ローカルのみで実施する。よりセキュアな環境ではRADIUSサーバによる認証を検討ください。( Cisco ASA:RADIUSを使ったASAへのログイン設定と注意点 - Cisco Community )

ASA5505# sh run | i aaa
aaa authentication ssh console LOCAL
aaa authentication telnet console LOCAL

通常のパスワード認証でログインできる状態からスタートする。

ASA5505# sh run | i password
enable password PASSWORD encrypted
username dev password PASSWORD encrypted privilege 15
---

[dev@h-cent-mng01 ~]$ ssh dev@asa5505
dev@asa5505's password: PASSWORD
Type help or '?' for a list of available commands.
ASA5505>

SSH公開鍵認証の設定をする

設定コマンドは以下の通り。(上記ドキュメントを参考に設定)

ASA5505# conf t
ASA5505(config)# username dev password PASSWORD privilege 15
ASA5505(config)# username dev attributes
ASA5505(config-username)# ssh authentication publickey <PUBLIC_KEY>

ここで入力するPUBLIC_KEYは、以下のようなSSH公開鍵の、

[dev@h-cent-mng01 ~]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAAD... dev@d-cent-mng01.designet.local

スペースを含まないこの部分だけを入力する。

AAAAB3NzaC1yc2EAAAAD...

SSH秘密鍵でログインする

ローカルからは適切な秘密鍵を使用して接続するよう、.ssh/config等を設定する。Teraterm等の場合はSSH秘密鍵ファイルを選択する。

パスフレーズなしのSSHキーペアを設定している場合、以下のようにパスフレーズなしでログインできる。

[dev@h-cent-mng01 ~]$ ssh dev@asa5505
Type help or '?' for a list of available commands.
ASA5505>

(注意)パスワードなしユーザの作成・追加設定

検証したバージョンでは、以下のようにnopasswordとしてユーザを作成した場合、空のパスワードが設定されるため注意。

ASA5505(config)# username dev nopassword privilege 15
[dev@h-cent-doc01 ~]$ ssh asa5505
dev@asa5505's password: [何も入力せずEnter]
Type help or '?' for a list of available commands.
ASA5505>

検証バージョンではパスワードなしユーザは作成できない...

ASA5505(config)# username hatena ?

configure mode commands/options:
  attributes  Enter the attributes sub-command mode for the specified user
  nopassword  Indicates that this user has no password
  password    The password for this user

ASA5505(config)# username hatena attributes
ERROR: Invalid username

以下のバージョンでパスワード未定義が作成できるようになったようだ。(未検証)

SSH 公開キー認証の改善

9.6(2)

以前のリリースでは、ローカル ユーザ データベース( (aaa authentication ssh console LOCAL ))を使用して AAA SSH 認証を有効にしなくても、SSH 公開キー認証((ssh authentication ))を有効にすることができました。この設定は修正されたため、AAA SSH 認証を明示的に有効にする必要があります。ユーザが秘密キーの代わりにパスワードを使用できないよう、パスワード未定義のユーザ名を作成できるようになりました。

次のコマンドが変更されました。ssh authentication、username

(備考)Privilegeの動作

Privilegeの動作についてはこちらのやりとりがが参考になった。

serverfault.com

ログイン時からEnableモード(15)になるのではなく、(enable_15ユーザでなく)そのユーザでEnableモードに遷移できるということのようだ。Linuxで言うsudoできるようなものだ。

ASA5505> show curpriv
Username : dev
Current privilege level : 1
Current Mode/s : P_UNPR
ASA5505> en
Password: ENABLE_PASSWORD

ASA5505# show curpriv
Username : enable_15
Current privilege level : 15
Current Mode/s : P_PRIV

ASA5505# exit
ASA5505> login
Username: dev
Password: PASSWORD
ASA5505# sh curpriv
Username : dev
Current privilege level : 15
Current Mode/s : P_PRIV

まとめ - Cisco ASAにSSH公開鍵認証でログインする

Cisco ASAにSSH公開鍵認証を設定し、秘密鍵によるログインを実装した。検証用途で言うと、パスフレーズなしキーペアの使用により効率が向上する。より新しいOSバージョンを使用することで、パスワードログインを禁止し鍵認証を必須とすることができる。