Безопасность и VPN : Secure Shell (SSH)

Настройка Secure Shell на маршрутизаторах и коммутаторах с программным обеспечением Cisco IOS

23 марта 2008 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (28 июня 2007) | Отзыв

Содержание

Введение
Предварительные условия
      Требования
      Используемые компоненты
      Условные обозначения
SSH v1 в сравнении с SSH v2
Схема сети
Проверка аутентификации
      Проверка аутентификации без SSH
      Проверка аутентификации с SSH
Необязательные настройки конфигурации
      Предотвращение соединений не по протоколу SSH
      Настройка IOS-маршрутизатора или коммутатора в качестве SSH-клиента
      Добавление линейного доступа SSH
      Настройка версии SSH
      Варьирование выходных данных команды banner
      Не удается отобразить заголовок входа
Команды debug и show
Пример выходных данных отладки
      Отладка маршрутизатора
      Отладка сервера
Возможные проблемы
      Трафик SSH от SSH-клиента не откомпилирован по стандарту шифрования данных (DES)
      Неверный пароль
      SSH-клиент отправляет не поддерживаемый шифр (алгоритм BlowFish)
Связанные обсуждения сообщества поддержки Cisco
Дополнительные сведения

Введение

Secure Shell (SSH) – это протокол, который обеспечивает безопасное удаленное подключение к сетевым устройствам. Данные, передаваемые между клиентом и сервером, шифруются при использовании протокола SSH как версии 1, так и версии 2. Рекомендуется применять протокол SSH версии 2, поскольку он использует более совершенный алгоритм шифрования.

В данном документе рассматривается настройка SSH на маршрутизаторах и коммутаторах Cisco с ПО Cisco IOS®, которое поддерживает SSH. Данный документ содержит дополнительную информацию об отдельных версиях и образах программного обеспечения.

Предварительные условия

Требования

Для данного документа нет особых требований.

Используемые компоненты

Информация, содержащаяся в данном документе, соответствует программному обеспечению Cisco IOS 3600 (C3640-IK9S-M) 12.2(2)T1.

SSH был внедрен в следующие платформы и образы IOS:

  • Сервер SSH 1.0 (SSH v1) был внедрен в некоторые платформы и образы IOS, начиная с Cisco IOS 12.0.5.S.

  • Клиент SSH был внедрен в некоторые платформы и образы IOS, начиная с Cisco IOS 12.1.3.T.

  • Линейный доступ SSH (также называемый обратный Telnet-сеанс) был внедрен в некоторые платформы и образы IOS, начиная с Cisco IOS 12.2.2.T.

  • SSH 2.0 (SSH v2) был внедрен в некоторые платформы и образы IOS, начиная с Cisco IOS 12.1(19)E.

  • Дополнительную информацию о поддержке SSH в коммутаторах см. в разделе Настройка SSH на коммутаторах Catalyst, работающих под управлением CatOS.

Полный список наборов функций, поддерживаемых в различных выпусках Cisco IOS и на различных платформах, см. в средстве Software Advisor (только для зарегистрированных клиентов).

Сведения, представленные в данном документе, были получены на тестовом оборудовании в специально созданных лабораторных условиях. При написании данного документа использовались только данные, полученные от устройств с конфигурацией по умолчанию. При работе с реально функционирующей сетью необходимо полностью осознавать возможные последствия выполнения команд до их применения.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в разделе Технические советы Cisco. Условные обозначения.

SSH v1 в сравнении с SSH v2

Используйте средство Software Advisor (только для зарегистрированных клиентов) для упрощения поиска версии ПО с соответствующей поддержкой SSH v1 или SSH v2.

Схема сети

ssh-1.gif

Проверка аутентификации

Проверка аутентификации без SSH

Сначала проверьте аутентификацию без SSH, чтобы убедиться, что она работает с маршрутизатором Carter, а потом добавляйте SSH. Для аутентификации может использоваться локальное имя пользователя и пароль или сервер проверки подлинности, авторизации и учета (AAA) с выполняющимся TACACS+ или RADIUS. (При использовании SSH аутентификация с помощью линейного пароля невозможна.) Ниже приведен пример локальной аутентификации с установлением Telnet-соединения с маршрутизатором с помощью имени пользователя "cisco" и пароля "cisco".


!--- Команда aaa new-model принуждает использовать на маршрутизаторе локальное имя пользователя и пароль
!--- при отсутствии других инструкций AAA.

aaa new-model
username cisco password 0 cisco
line vty 0 4
transport input telnet

!--- Вместо aaa new-model можно использовать команду login local.

Проверка аутентификации с SSH

Для проверки аутентификации с SSH необходимо дополнить предыдущие инструкции: включить SSH на маршрутизаторе Carter и проверить SSH с ПК или станции UNIX.

ip domain-name rtp.cisco.com

!--- Создайте SSH-ключ, который будет использоваться в SSH.

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

На этой стадии команда show cry key mypubkey rsa должна продемонстрировать сгенерированный ключ. После добавления конфигурации SSH проверьте доступ к маршрутизатору с ПК или UNIX станции. Если доступ отсутствует, см. раздел Отладка в данном документе.

Необязательные настройки конфигурации

Предотвращение соединений не по протоколу SSH

Для предотвращения установления соединений не по протоколу SSH добавьте команду transport input ssh после этих строк, чтобы ограничить маршрутизатор только SSH-соединениями. Прямые (не SSH) Telnet-соединения не допускаются.

line vty 0 4

!--- Предотвратите соединения Telnet без SSH.

transport input ssh

Убедитесь, что пользователи, не использующие SSH, не могут установить Telnet-соединение с маршрутизатором Carter.

Настройка IOS-маршрутизатора или коммутатора в качестве SSH-клиента

Необходимо выполнить четыре действия, чтобы включить поддержку SSH на IOS-маршрутизаторе:

  1. Настройте команду hostname.

  2. Настройте домен DNS.

  3. Сгенерируйте SSH-ключ, который будет использоваться.

  4. Включите поддержку транспорта SSH для терминала виртуального типа (vtys).

Чтобы одно устройство выступало в роли SSH-клиента для другого, можно добавить SSH второму устройству, обозначенному как Reed. После этого взаимодействие устройств будет носить характер клиент-сервер, где Carter действует в роли сервера, а Reed – в роли клиента. Конфигурация IOS SSH-клиента на Reed та же, что требуется для конфигурации SSH-сервера на Carter.


!--- Шаг 1. Настройте имя узла, если оно еще не настроено.

hostname carter

!--- Команда aaa new-model принуждает использовать на маршрутизаторе локальное имя пользователя и пароль
!--- при отсутствии других инструкций AAA.

aaa new-model
username cisco password 0 cisco

!--- Шаг 2. Настройте домен DNS для маршрутизатора.

ip domain-name rtp.cisco.com

!--- Шаг 3. Создайте SSH-ключ, который будет использоваться в SSH.

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

!--- Шаг 4. По умолчанию в качестве транспорта vtys используется Telnet. В данном случае,
!--- Telnet отключен, поддерживается только SSH.

line vty 0 4
transport input SSH

!--- Вместо aaa new-model можно использовать команду login local.

Выполните следующую команду, чтобы добавить SSH с IOS SSH-клиента (Reed) IOS SSH-серверу (Carter) и проверить это.

  • SSH v1:

    ssh -l cisco -c 3des 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99
    

Добавление линейного доступа SSH

Если требуется исходящая линейная аутентификация SSH можно настроить и проверить SSH для исходящих обратных сеансов Telnet через Carter, который функционирует как сервер связи для Philly.

ip ssh port 2001 rotary 1
line 1 16
   no exec
   rotary 1
   transport input ssh
   exec-timeout 0 0
   modem In Out
   Stopbits 1

Если Philly подключен к порту 2 устройства Carter, тогда можно настроить SSH для Philly через Carter из Reed с помощью следующей команды.

  • SSH v1:

    ssh -c 3des -p 2002 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -p 2002 10.31.1.99
    

Со станции Solaris можно использовать следующую команду:

ssh -c 3des -p 2002 -x -v 10.13.1.99

Настройка версии SSH

Настройка SSH v1:

carter (config)#ip ssh version 1

Настройка SSH v2:

carter (config)#ip ssh version 2

Настройка SSH v1 и v2:

carter (config)#no ip ssh version

Варьирование выходных данных команды banner

Выходные данные команды banner изменяются в зависимости от Telnet и версии SSH-соединений. Следующая таблица описывает использование разных параметров команды banner с разными типами соединений.

Параметр команды Banner

Telnet

Только SSH v1

Только SSH v1 и v2

Только SSH v2

banner login

Отображается перед входом на устройство.

Не отображается.

Отображается перед входом на устройство.

Отображается перед входом на устройство.

banner motd

Отображается перед входом на устройство.

Отображается после входа на устройство.

Отображается после входа на устройство.

Отображается после входа на устройство.

banner exec

Отображается после входа на устройство.

Отображается после входа на устройство.

Отображается после входа на устройство.

Отображается после входа на устройство.

Не удается отобразить заголовок входа

SSH версии 2 поддерживает заголовок входа. Заголовок входа отображается, если SSH-клиент отправляет имя пользователя при установлении SSH-сеанса с маршрутизатором Cisco. Например, если используется Secure Shell SSH-клиент, то заголовок входа отображается. Если используется PuTTY SSH-клиент, то заголовок входа не отображается. Это связано с тем, что Secure Shell по умолчанию отправляет имя пользователя, а PuTTY нет.

Клиенту Secure Shell необходимо имя пользователя для инициирования подключения к устройству с поддержкой SSH. Кнопка Connect станет активной только после ввода имени узла и имени пользователя. Следующий снимок экрана иллюстрирует, что заголовок входа отображается, когда Secure Shell подключается к маршрутизатору. Затем отображается приглашение ввести пароль.

ssh-2.gif

Клиенту PuTTY не требуется имя пользователя для инициирования SSH-подключения к маршрутизатору. Следующий снимок экрана иллюстрирует подключение клиента PuTTY к маршрутизатору и запрос имени пользователя и пароля. Заголовок входа не отображается.

ssh-3.gif

Следующий снимок экрана иллюстрирует, что заголовок входа отображается, если PuTTY настроен на отправку имени пользователя маршрутизатору.

ssh-5.gif

Команды debug и show

Прежде чем применять команды debug, описанные и продемонстрированные здесь, ознакомьтесь с разделом Важные сведения о командах отладки. Некоторые команды show поддерживаются средством Output Interpreter (только для зарегистрированных клиентов), которое позволяет просматривать и анализировать выходные данные команды show.

  • debug ip ssh – отображение сообщений отладки для SSH.

  • show ssh – отображение состояния соединений SSH-сервера.

    carter#show ssh
      Connection    Version Encryption    State              Username
       0            1.5     DES           Session started    cisco
  • show ip ssh – отображение версии и данных настройки для SSH.

    • Соединение версии 1 (для версии 2 не подходит)

      carter#show ip ssh
        SSH Enabled - version 1.5
        Authentication timeout: 60 secs; Authentication retries: 2
    • Соединение версии 2 (для версии 1 не подходит)

      carter#show ip ssh
        SSH Enabled - version 2.0
        Authentication timeout: 120 secs; Authentication retries: 3
    • Соединения версий 1 и 2

      carter#show ip ssh
        SSH Enabled - version 1.99
        Authentication timeout: 120 secs; Authentication retries: 3

Пример выходных данных отладки

Отладка маршрутизатора

Примечание. Некоторые выходные данные отладки приведены в несколько строк из соображений оформления.

00:23:20: SSH0: starting SSH control process
00:23:20: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:23:20: SSH0: protocol version id is - SSH-1.5-1.2.26
00:23:20: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:23:21: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH0: sending encryption confirmation
00:23:21: SSH0: keys exchanged and encryption on
00:23:21: SSH0: SSH_CMSG_USER message received
00:23:21: SSH0: authentication request for userid cisco
00:23:21: SSH0: SSH_SMSG_FAILURE message sent
00:23:23: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:23:23: SSH0: authentication successful for cisco
00:23:23: SSH0: requesting TTY
00:23:23: SSH0: setting TTY - requested: length 24, width 80; set:
   length 24, width 80
00:23:23: SSH0: invalid request - 0x22
00:23:23: SSH0: SSH_CMSG_EXEC_SHELL message received
00:23:23: SSH0: starting shell for vty

Отладка сервера

Примечание. Эти выходные данные получены на машине Solaris.

rtp-evergreen.rtp.cisco.com#ssh -c 3des -l cisco -v 10.31.1.99
rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5, 
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits) 
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: 3des
rtp-evergreen: Sent encrypted session key.
rtp-evergreen: Installing crc compensation attack detector.
rtp-evergreen: Received encrypted confirmation.
rtp-evergreen: Doing password authentication.
cisco@10.13.1.99's password: 
rtp-evergreen: Requesting pty.
rtp-evergreen: Failed to get local xauth data.
rtp-evergreen: Requesting X11 forwarding with authentication spoofing.
Warning: Remote host denied X11 forwarding, perhaps xauth program
   could not be run on the server side.
rtp-evergreen: Requesting shell.
rtp-evergreen: Entering interactive session.

Возможные проблемы

В этом разделе приведены примеры выходных данных отладки для нескольких неверных конфигураций.

Трафик SSH от SSH-клиента не откомпилирован по стандарту шифрования данных (DES)

Отладка Solaris

rtp-evergreen#/opt/CISssh/bin/ssh -c des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5, 
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits) 
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: des
rtp-evergreen: Sent encrypted session key.
cipher_set_key: unknown cipher: 2

Отладка маршрутизатора

00:24:41: SSH0: Session terminated normally
00:24:55: SSH0: starting SSH control process
00:24:55: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:24:55: SSH0: protocol version id is - SSH-1.5-1.2.26
00:24:55: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:24:55: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:24:55: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH0: sending encryption confirmation
00:24:56: SSH0: Session disconnected - error 0x07

Неверный пароль

Отладка маршрутизатора

00:26:51: SSH0: starting SSH control process
00:26:51: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:26:52: SSH0: protocol version id is - SSH-1.5-1.2.26
00:26:52: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:26:52: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH0: sending encryption confirmation
00:26:52: SSH0: keys exchanged and encryption on
00:26:52: SSH0: SSH_CMSG_USER message received
00:26:52: SSH0: authentication request for userid cisco
00:26:52: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:26:54: SSH0: password authentication failed for cisco
00:26:54: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: authentication failed for cisco (code=7)
00:26:54: SSH0: Session disconnected - error 0x07

SSH-клиент отправляет не поддерживаемый шифр (алгоритм BlowFish)

Отладка маршрутизатора

00:39:26: SSH0: starting SSH control process
00:39:26: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:39:26: SSH0: protocol version id is - SSH-1.5-W1.0
00:39:26: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:39:26: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:39:26: SSH0: Session disconnected - error 0x20

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 4145