🐓

ローカル認証の練習

2022/12/18に公開

ローカル認証

それぞれのCisco機器内にユーザのデータベースを作成して、作成したユーザの情報で認証を行うものです。
username コマンドでユーザを作り、login local でローカル認証を利用できるようにします。

ccna ユーザを作成して、仮想端末でローカル認証を有効にしてみます。

r1(config)#username ccna password cisco
r1(config)#line vty 0 4
r1(config-line)#login local

設定の確認

r1#show run | include username
username ccna password 0 cisco

r1#show run | section line vty
line vty 0 4
 access-class 1 out
 password cisco
 login local

telnet 接続時に、はじめにユーザ名が求められるようになります。

admin@ip-10-0-0-73:~$ telnet 10.2.0.254
Trying 10.2.0.254...
Connected to 10.2.0.254.
Escape character is '^]'.


User Access Verification

Username: ccna
Password:
r1>

ssh

ssh を有効にするには、下記を設定する必要があります。

  • ホスト名の設定
  • ドメイン名の設定
  • ホストキーの作成

ip ssh version 2 によって、ssh version 1 を禁止することができます。

なお、ローカルデータベースにユーザを作成していないと ssh 接続できません。

r1(config)#ip domain-name localdomain.local
r1(config)#crypto key generate rsa
The name for the keys will be: r1.localdomain.local
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, keys will be non-exportable...[OK]

r1(config)#ip ssh version 2

接続してみます。

r2>ssh -l ccna 10.2.1.253

Password:

r1>
r1>show users
    Line       User       Host(s)              Idle       Location
   0 con 0                idle                 00:00:27
* 98 vty 0     ccna       idle                 00:00:00 10.2.1.254

  Interface    User               Mode         Idle     Peer Address

r1>

linux 環境から接続する時は、利用が非推奨となった古いキー交換アルゴリズムや暗号化方式に対応するように、オプションで明示する必要があります。

$ ssh -o "KexAlgorithms diffie-hellman-group1-sha1" -o "Ciphers aes192-cbc" ccna@10.2.1.253

transport input ssh コマンドで telnet 接続を無効化することができます。

r1(config)#line vty 0 4
r1(config-line)#transport input ssh

r1#show run | section line vty
line vty 0 4
 access-class 1 out
 password cisco
 login local
 transport input ssh

telnet 接続しようとすると次のメッセージが表示されます。

r2>telnet 10.2.1.253
Trying 10.2.1.253 ...
% Connection refused by remote host

権限レベル

権限レベルによって、ユーザがどんなコマンドを実行することができるのかを決められます。
ユーザを作成するときに privilege によって、作成するユーザの権限レベルを指定することができます。

権限レベル 0 は最も制限されたレベルで、いくつかのコマンドを除き実行することができません。

r1(config)#username ccna privilege 0 password cisco

r1#show run | section username
username ccna privilege 0 password 0 cisco

実行できるコマンドは下記のものに限られます。

Username: ccna
Password:
r1>
r1>?
Exec commands:
  <1-99>   Session number to resume
  disable  Turn off privileged commands
  enable   Turn on privileged commands
  exit     Exit from the EXEC
  help     Description of the interactive help system
  logout   Exit from the EXEC

r1>

権限レベル 1 はデフォルトのレベルです。
権限レベルを指定しないとき、権限レベル 1 になります。

r1(config)#username ccnp privilege 1 password cisco

r1#show run | section username ccnp
username ccnp password 0 cisco
Username: ccnp
Password:
r1>
r1>?
Exec commands:
  <1-99>               Session number to resume
  access-enable        Create a temporary Access-List entry
  access-profile       Apply user-profile to interface
  clear                Reset functions
  connect              Open a terminal connection
  credential           load the credential info from file system
  crypto               Encryption related commands.
  disable              Turn off privileged commands
  disconnect           Disconnect an existing network connection
  enable               Turn on privileged commands
  exit                 Exit from the EXEC
  help                 Description of the interactive help system
  lat                  Open a lat connection
  lock                 Lock the terminal
  login                Log in as a particular user
  logout               Exit from the EXEC
  modemui              Start a modem-like user interface
  mrinfo               Request neighbor and version information from a multicast router
  mstat                Show statistics after multiple multicast traceroutes
  mtrace               Trace reverse multicast path from destination to source
  name-connection      Name an existing network connection
  pad                  Open a X.29 PAD connection
  ping                 Send echo messages
  ppp                  Start IETF Point-to-Point Protocol (PPP)
  radius               radius exec commands
  release              Release a resource
  renew                Renew a resource
  resume               Resume an active network connection
  rlogin               Open an rlogin connection
  set                  Set system parameter (not config)
  show                 Show running system information
  slip                 Start Serial-line IP (SLIP)
  ssh                  Open a secure shell client connection
  systat               Display information about terminal lines
  tclquit              Quit Tool Command Language shell
  telnet               Open a telnet connection
  terminal             Set terminal line parameters
  tn3270               Open a tn3270 connection
  traceroute           Trace route to destination
  tunnel               Open a tunnel connection
  udptn                Open an udptn connection
  vmi-dump             Dump  VMI debug info test command
  vmi-neighbor-create  Create VMI neighbor test command
  vmi-neighbor-kill    Create VMI neighbor test command
  webvpn               WebVPN exec command
  where                List active connections
  x28                  Become an X.28 PAD
  x3                   Set X.3 parameters on PAD

r1>

権限レベル 15 は特権ユーザのレベルです。
コマンドプロンプトも、enable したときと同じ # になります。

r1(config)#username ccie privilege 15 password cisco

r1#show run | section username ccie
username ccie privilege 15 password 0 cisco
Username: ccie
Password:
r1#

まとめ

ローカル認証は各機器にユーザデータベースを作成する必要があります。
そのため多数の機器で同じユーザを使いたいときには管理が煩雑になります。管理対象が少ない場合等にはローカル認証で充分ですが、台数が増えるならAAA認証を選択したほうがいいです。

GitHubで編集を提案

Discussion