1. はじめに
今日はSSHの設定方法を勉強します。
まだまだTelnet接続を使用している環境も多いと思いますが、世の中的にはManagementアクセスもよりセキュアにする方向に向かっているので、Telnetは割愛しました。
2. 前提
Catalystに192.168.1.1を設定し、SSHによるリモートアクセスを確認します。
3. 設定
IPの設定とインターフェースの開放
Switch(config)#interface Loopback 0
Switch(config-if)#ip address 192.168.1.1 255.255.255.0
ログインUsernameとPasswordを作成し、vtyに設定。接続方法をSSHに限定。
Switch(config)#username Jinnai73 secret cisco
Switch(config)#line vty 0 4
Switch(config-line)#login local
Switch(config-line)#transport input ssh
ホスト名、ドメイン名の設定、RSA鍵の作成
Switch(config)#hostname tc0001
tc0001(config)#ip domain-name jinnai73.com
tc0001(config)#crypto key generate rsa
The name for the keys will be: tc0001.jinnai73.com
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys ...[OK]
SSHv2に限定
tc0001(config)#ip ssh version 2
特権パスワードの設定
tc0001(config)#enable secret cisco
4. 解説
UsernameとPasswordはコンソール接続、リモート接続で共通のものをusername secret
コマンドで設定します。password
コマンドでも設定できますが、セキュリティ上username secret
を使用することが推奨されます。この辺りは前回書きました。
http://qiita.com/jinnai73/items/a240bf2bc1325b46edfe
パスワードを作成したらlogin local
コマンドでlineに適用します。Telnet接続を禁止するため、transport input
コマンドでsshでのログインのみ許可します。
Switch(config)#username Jinnai73 secret cisco
Switch(config)#line vty 0 4
Switch(config-line)#login local
Switch(config-line)#transport input ssh
続いてSSH接続に必要なRSA鍵を作成します。RSA鍵を確認するコマンドはshow crypto key mypubkey rsa
です。
Switch#show crypto key mypubkey rsa
Switch#
何も入っていませんね。鍵を生成するコマンドはcrypto key generate rsa
ですが、生成する前提としてスイッチのFQDN、つまりホストとドメイン名が決まっている必要があります。デフォルトではドメイン名が設定されていないため、以下のようなエラーが出ます。
Switch(config)#crypto key generate rsa
% Please define a domain-name first.
ドメイン名の設定はip domain-name
コマンド、確認はshow hosts
で行えます。
Switch#show hosts
Default domain is not set
Name/address lookup uses static mappings
Codes: u - unknown, e - expired, * - OK, ? - revalidate
t - temporary, p - permanent
Host Port Flags Age Type Address(es)
Switch#
それではホスト名とドメイン名を設定しましょう。
Switch(config)#hostname tc0001
tc0001(config)#ip domain-name jinnai73.com
tc0001(config)#end
tc0001#show hosts
Default domain is jinnai73.com
Name/address lookup uses static mappings
Codes: u - unknown, e - expired, * - OK, ? - revalidate
t - temporary, p - permanent
Host Port Flags Age Type Address(es)
tc0001#
設定できました。これでRSA鍵も生成可能になります。crypto key generate rsa
コマンドで生成、鍵長は2048 bitを指定します。
tc0001(config)#crypto key generate rsa
The name for the keys will be: tc0001.jinnai73.com
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys ...[OK]
tc0001(config)#
警告メッセージにもある通り、2048 bitでは約1分ほど時間がかかりますが、2016年現在1024 bit以下のRSAは(少なくともインターネット上では)使わない方が良いというのは異論が無いところでしょう。
この時点でSSHでの接続が可能になります。テストのため自分自身に接続してみましょう。
tc0001#ssh -v 2 -l Jinnai73 192.168.1.1
tc0001#ssh -v 2 -l Jinnai73 192.168.1.1
Password:
tc0001>
できました。sshのv1はセキュリティに問題があるため禁止しましょう。一度ログアウトして、sshをv2に限定したのちに、v1での接続ができないことを確認します。
tc0001(config)#ip ssh version 2
tc0001(config)#exit
tc0001#ssh -v 1 -l Jinnai73 192.168.1.1
[Connection to 192.168.1.1 aborted: error status 0]
tc0001#
うまくできています。この状態ではSSHアクセスした後に特権モードに入ろうとしてもできないため、enable secret
で特権パスワードの設定もしておきましょう。
5. おわりに
思ったよりボリュームが増えてしまいました。明日ももう少し、機器管理を勉強しようと思います。