IOSでのSSHの設定
- カテゴリ:
- Cisco
現在ではCCNAでもルータのアクセスに関してSSHの問題が出るようです。Linuxなどではかなり前からtelnetは標準で無効であり、当然といえば当然ですが…。
今回はSSHの基本的な利用を確認します。初期値ではSSHは無効になっています。
R1#sh ip ssh SSH Disabled - version 1.99 %Please create RSA keys (of atleast 768 bits size) to enable SSH v2. Authentication timeout: 120 secs; Authentication retries: 3 |
SSHを利用するにはRSAキーを作成します。
R1(config)#crypto key generate rsa modulus 1024 % Please define a domain-name first. |
ただ上記の結果から分かるとおり、あらかじめドメイン名の指定が必須です。
R1(config)#ip domain-name example.com R1(config)#crypto key generate rsa modulus 1024 The name for the keys will be: R1.example.com % The key modulus size is 1024 bits % Generating 1024 bit RSA keys, keys will be non-exportable...[OK] |
この時点でSSHで接続が可能となります。
R1(config)# Apr 20 05:52:11.391: %SSH-5-ENABLED: SSH 1.99 has been enabled R1(config)#do sh ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 3 |
接続を行うユーザを作成します。
R1(config)#username cisco secret cisco |
そしてローカル認証を有効にします。
R1(config)#line vty 0 15 R1(config-line)#login local R1#debug ip ssh client SSH Client debugging is on |
では隣接するR2(12.12.12.2)よりR1(12.12.12.1)にSSHでログインします。R2では特に設定は必要ありません。またWindowsなどからでももちろん利用できます。
IOSでsshコマンドを利用するには-lオプションでユーザ名を指定します。
R2#ssh -l cisco 12.12.12.1 Password: ← パスワードを入力 R1> |
この時、R1では下記のようなログが表示されます。
R1# Apr 20 06:26:07.135: SSH0: sent protocol version id SSH-1.99-Cisco-1.25 Apr 20 06:26:07.147: SSH0: protocol version id is - SSH-1.99-Cisco-1.25 |
このまま利用するにはあまりセキュリティ的に望ましくないので、まずアクセスリストを設定します。この設定により12.12.12.0/24からの接続のみが許可されます。
R1(config)#access-list 1 per 12.12.12.0 0.0.0.255 R1(config)#line R1(config)#line vty 0 15 R1(config-line)#access-class 1 in R1(config-line)#do sh ip acce 1 Standard IP access list 1 10 permit 12.12.12.0, wildcard bits 0.0.0.255 (2 matches) |
この時点ではTELNETが有効です。せっかくSSHを有効にしたのに、このままでは意味がありません。SSHのみでの接続とするにはtransport inputコマンドを利用します。
R1(config)#line vty 0 15 R1(config-line)#transport input ssh |
この時点でR2からのTELNETが利用できくなりました。
R2#telnet 12.12.12.1 Trying 12.12.12.1 ... % Connection refused by remote host |
初期値の設定ではSSHのバージョン1とバージョン2の両方が有効ですが、古いバージョン1をあえて利用する必要はありません。無効にします。sshコマンドで-vオプションを利用するとバージョンを指定できます。
R2#ssh -l cisco -v 1 12.12.12.1 |
下記はバージョン1で接続されたときのR1のログです。
Apr 20 06:35:27.827: SSH0: sent protocol version id SSH-1.99-Cisco-1.25 Apr 20 06:35:27.831: SSH0: protocol version id is - SSH-1.5-Cisco-1.25 |
R1でバージョン2のみを許可するように変更します。
R1(config)#do sh ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 3 R1(config)#ip ssh version ? <1-2> Protocol version R1(config)#ip ssh version 2 R1(config)#do sh ip ssh SSH Enabled - version 2.0 Authentication timeout: 120 secs; Authentication retries: 3 |
するとR2からバージョン1での接続が不可能になり、かなり安全な設定となりました。
R2#ssh -l cisco -v 1 12.12.12.1 [Connection to 12.12.12.1 aborted: error status 0] R1(config)# Apr 20 06:38:33.671: SSH0: Session terminated normally Apr 20 06:38:35.567: SSH0: sent protocol version id SSH-2.0-Cisco-1.25 Apr 20 06:38:35.579: SSH0: receive failure - status 0x07 Apr 20 06:38:35.683: SSH0: Session disconnected - error 0x07 |
SSHの設定をする時にはip ssh logging eventsを有効にすると便利です。
R1(config)# ip ssh logging events R1(config)# Apr 20 06:46:32.455: SSH0: sent protocol version id SSH-2.0-Cisco-1.25 Apr 20 06:46:32.463: SSH0: protocol version id is - SSH-1.99-Cisco-1.25 Apr 20 06:46:32.567: %SSH-5-SSH2_SESSION: SSH2 Session request from 12.12.12.2 (tty = 0) using crypto cipher 'aes128-cbc', hmac 'hmac-sha1' Succeeded Apr 20 06:46:33.739: %SSH-5-SSH2_USERAUTH: User 'cisco' authentication for SSH2 Session from 12.12.12.2 (tty = 0) using crypto cipher 'aes128-cbc', hmac 'hmac-sha1' Succeeded |
コメント