運用・管理 / Secure Shell
Secure Shell(SSH)は、暗号/認証技術を利用してネットワーク経由の端末ログインなどを安全に行うためのプロトコルです。通信内容の暗号化により盗聴や改ざんを防ぐほか、サーバーやユーザーの認証機能によってなりすましを防ぐ効果もあります。また、サブアプリケーションであるSCP(Secure CoPy)やSFTP(Secure File Transfer Protocol)によって安全なファイル転送を行ったり、TCPフォワーディング(ポートフォワーディング)機能を用いて簡易的なVPNを構築したりすることもできます。
本製品は、SSHバージョン2に対応したサーバー機能を備えています(IPv4、IPv6両対応)。認証方式はパスワード認証と公開鍵認証(RSA、ECDSA、ED25519)をサポートしています。
SSHサーバー
SSHサーバー機能は初期設定では無効です。なお、起動時にAMFネットワーク未検出時の拡張動作が機能した場合、SSHサーバーは有効化されますが、その設定はAMFネットワーク未検出時の一時的な設定であるため、運用上の必要性に応じて無効化してください。
以下では、本製品をSSHサーバーとして動作させるための基本設定について説明します。SSHはIP上で動作するため、IPの設定までは済んでいるものとします。
ここでは、初期設定のユーザーである「manager」と、新規に登録したユーザー「admin」に対し、SSHログインを許可するよう設定します。managerはパスワード認証のみ、adminはパスワード認証と公開鍵認証の両方を使えるものとします。
- 権限レベル15の新規ユーザー「admin」を登録します。
awplus(config)# username admin privilege 15 password adkf8KH!
- SSHサーバーを有効化します。
awplus(config)# service ssh
- SSHサーバーの有効化直後は、SSHログインが可能なユーザーは存在しません。SSHログインを許可するには、ssh server allow-usersコマンドを使います。ここでは、初期設定の管理者ユーザー「manager」と新規作成した管理者ユーザー「admin」にSSHログインを許可するよう設定します。
awplus(config)# ssh server allow-users manager awplus(config)# ssh server allow-users admin
- 以上でmanagerとadminがパスワード認証でログインできるようになりました。続いて、adminに対する、公開鍵認証の設定を行います。クライアントPC上において、SSHソフトウェア付属のユーティリティーなどでユーザー「admin」の公開鍵ペアを作成してください。公開鍵のアルゴリズムには、RSA、ECDSA、ED25519などがありますが、ここではRSA鍵を使うものとします。
- PC上で作成したユーザー「admin」用のRSA公開鍵をダウンロードします。ここでは、公開鍵がpchost.example.comというコンピューター上の「admin_id_rsa.pub」という名前のファイルに格納されているものとし、同コンピューターからSCPプロトコルでローカルファイルシステムに転送(リモートコピー)するものとします。
awplus(config)# end awplus# copy scp://pcuser@pchost.example.com/tmp/admin_id_rsa.pub flash Enter destination file name [admin_id_rsa.pub]: pcuser@pchost.example.com's password: XXXXXXXX (実際には表示されません) Copying.. Successful operation
- adminのRSA公開鍵を「信頼済みユーザー公開鍵リスト」(Authorized Keysデータベース)に登録します。これでadminは、公開鍵認証によるログインができるようになります。
awplus# configure terminal Enter configuration commands, one per line. End with CNTL/Z. awplus(config)# crypto key pubkey-chain userkey admin admin_id_rsa.pub
設定は以上です。
SSHサーバーへの接続を特定のホストからだけに制限することもできます。これには、ssh server allow-usersコマンドの省略可能な第2パラメーターHOSTNAME-PATTERNを使います。ホストによるアクセス制限はSSHユーザーごとに設定します。たとえば、SSHユーザー「manager」に対し、192.168.10.186からのみ接続を許可するには、次のようにします。
awplus(config)# ssh server allow-users manager 192.168.10.186
IPアドレスを範囲指定することもできます。たとえば、SSHユーザー「manager」に対し、192.168.10.0/24の範囲からのみ接続を許可するには、次のようにします。アスタリスク(*)はワイルドカードの指定で、任意の文字列にマッチします。
awplus(config)# ssh server allow-users manager 192.168.10.*
HOSTNAME-PATTERNをホスト名で指定することもできますが、その場合は次の追加設定が必要です。
- 使用するDNSサーバーの設定(ip name-serverコマンド。初期状態では未設定)
- DNSへの問い合わせ機能の有効化(ip domain-lookupコマンド。初期状態で有効)
- ログイン元ホスト名の逆引き有効化(ssh server resolve-hostsコマンド。初期状態では無効)
たとえば、delirium.example.comという名前を持つホストからのみ、ユーザー「admin」でのログインを許可するには、次のようにします。
awplus(config)# ip name-server 172.16.10.8 awplus(config)# ssh server resolve-hosts awplus(config)# ssh server allow-users admin delirium.example.com
SSHサーバーの設定や状態はshow ssh serverコマンドで確認できます。
awplus# show ssh server
作成したホスト鍵の情報はshow crypto key hostkeyコマンドで確認できます。
awplus# show crypto key hostkey Type Bits Fingerprint --------------------------------------------------------------- rsa 3072 SHA256:wPo/qzwNsGLKnlVj9+U48gZQxHvtntmhmFxMqI5jd6M ecdsa 256 SHA256:1NJi1rtrI3uT2JPaWW6v/UW8xC66NWxs/MSrvdKppXs ed25519 256 SHA256:a0Tsz1PHpIIl9YDpsPYCzMiX13FDEaiO8uqblV+WqZc awplus# show crypto key hostkey rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKtnCsVoyQvP8LAoOp0OdiW118z8tG95iwTlo14IDH GyErnCC2OinCFwMH/nW/8qfuEpG/yQdI7cXVH6euTz4XnaL38gxsU02M1vyzCJv0DjKiI+L31g/UGCWw rZCrG9+NKTLbi6xbnmlxWruE4hhBYZi28lCnSIVADv3YadRLdcGMspnI6MEw4UTlZQb8y51Hjy2Io2cH a1aacYsgfxVLJ4hH8L79+UewM3YC9QAJUjJ/vyPHikxtnC6Aqpm30Pbd/S4fcs1Uix0xwDOmH2iw0tnA bYgEeoJnq2uiR3KvIWPeHdLbf4CCwsIARKPKE1Qg+EdUowbeEO6tEDePNCOJ
ユーザーの公開鍵の情報はshow crypto key pubkey-chain userkeyコマンドで確認できます。
awplus# show crypto key pubkey-chain userkey admin No Type Bits Fingerprint Comment ------------------------------------------------------------------------------- 1 rsa 4096 SHA256:iJ18qK5lVV3sT/jMvflfAInORmLgsf3L5TmDZt3J admin@pc awplus# show crypto key pubkey-chain userkey admin 1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCX5FS6ZRCR/Wkl3PiFxum0czn1QCViNUZoTiwbYWOW FCtg57erbjaC3OzsWWtHiC+q/pIahCvAGo8XJWBW1F0ckPWBIkhLmyLaxwtAEPLY/KT2lhDen9TJt3Uv nNNQImTL5ZA1+c3JvNjEsSwUun3mi6gLG/QpUsXSwnz6m5J6AJbnEWLnniYBlQHUelBgTmh6W9eDjfCW SNxvQco9aHpgQOg2vTAgxboGCAiiVSgrxAYR5SxUGnshuLw8d3mdQSI6W08BvTFA9QzuYaa4eBnf43Of utA7yeVQ3m/2845CKMjrgCvvQ7isxhK1qhHuSjcGR8H58mCf75V7Wnut+o3ksc8Ts4m1BK5JEE5BWV7H Zxx3pN01L1RgxNqqTUWcMpi53BDqhBaSxDmciUPW3ZzFkLs2V6oCZ82jl/KCPCOmENcVHjCU80l4YaOx 0OEyn1aYIbqlOC1+lBNGIpUByvfRx1W13TztrIXqqPwnsn5dsdcZlqm8jtOzf39vwD37tdH3F3bOL3ei xBlDlDl87q43sw5Y+RHRz/n7/nxRTnqbFEvnWf8f09bShFRbGWjm3NmbVq+b6NRRsaLgw7qRqOsLf7TG TQGMw+rpEpaAaAIFNd5Yn9pVOKYMNt+ibsNmkGMWF/j+D/aPh/PZSXidbo5mouMFnKvUXebX1cGhEQ+Q 2w== admin@pc
現在ログインしているユーザーの一覧を確認するには、show usersコマンドを実行します。
awplus> show users
確立中のSSHセッションはshow sshコマンドで確認できます。
awplus# show ssh
Secure Shell Sessions:
ID Type Mode Peer Host Username State Filename
------------------------------------------------------------------------------
3402 ssh server 192.168.20.2 admin open
確立中のSSHセッションを切断するには、clear sshコマンドを使います。
awplus# clear ssh 3402