Нужно ли устанавливать секретный ключ на устройстве Cisco?

Я настраиваю маршрутизатор Cisco 2901. У меня есть пароль для входа в консольную строку, а строки vty настроены так, чтобы принимать только ssh-соединения с аутентификацией с открытым ключом. Вспомогательная линия отключается. Есть только два администратора, которые будут обращаться к маршрутизатору, и мы оба уполномочены выполнять любую конфигурацию на маршрутизаторе.

Я не специалист по передаче Cisco, но считаю это достаточным для обеспечения доступа к конфигурации маршрутизатора. Тем не менее, в каждом отдельном руководстве, которое я прочитал, я должен установить секретный ключ, независимо от каких-либо других пользовательских или строковых паролей.

Есть ли что-то еще для пароля включения, который я не знаю? Есть ли другой способ доступа к маршрутизатору, чем к консольным, вспомогательным или vty-строкам?

<б> РЕДАКТИРОВАТЬ: Я добавил фактическую конфигурацию ниже, чтобы более четко рассказать о моей ситуации. Следующие действия, требующие пароля включения, или конфигурацию username , кроме того, что находится внутри ip ssh pubkey-chain .

  aaa new-model

ip ssh тайм-аут 60
ip ssh аутентификация-повторы 2
ip ssh версия 2
ip ssh pubkey-chain
 имя пользователя tech
  key-hash ssh-rsa [HASH]
Разрешение ip scp-сервера

line vty 0 4
 транспортный ввод ssh
 
15 голосов | спросил Marwan 7 Jpm1000000pmWed, 07 Jan 2015 17:41:40 +030015 2015, 17:41:40

5 ответов


22

Нет, нет - технически. Но можете ли вы войти в режим разрешений без одного зависит от того, как вы входите.

Вот версия мгновенного удовлетворения:

Вы можете войти через консоль без пароля включения, но вы будете застревать в пользовательском режиме, если вы используете простой пароль входа vty без набора разрешенных паролей.

Вот длинная версия ретранслятора StackExchange:

Аутентификация Cisco - это своего рода беспорядок для начинающих. Там много старого багажа. Позвольте мне попытаться сломать это в реальном смысле.

Каждый, у кого есть бизнес, регистрирующийся в маршрутизаторе или коммутаторе, переходит непосредственно в режим привилегированных (разрешенных). Пользовательский режим - это, в основном, передний вестибюль, и он служит для большей цели, чем для вытягивания чертежа. В крупных организациях, где у вас есть обширные сети и одинаково обширные пулы труда, может быть оправдано, что кто-то может постучать в парадную дверь и убедиться, что кто-то все еще там. (То есть, для входа в систему и запускать самые тривиальные команды, чтобы увидеть, что устройство, по сути, отвечает и не горит). Но в любой среде, в которой я когда-либо работал, уровень 1 был как минимум некоторая способность нарушать вещи.

Как таковой, и особенно в сценарии, подобном вашему, знание пароля включения обязательно, чтобы что-либо сделать. Вы могли бы сказать, что это второй уровень безопасности - один пароль для входа в устройство, другой - для перехода на административную привилегию, но для меня это кажется немного глупым.

Как уже отмечалось, вы можете (и многие люди) использовать один и тот же пароль, что мало помогает, если кто-то получил неавторизованный доступ через telnet /ssh. Наличие статических глобальных паролей, разделяемых всеми, возможно, является большей проблемой, чем наличие одного токена, который требуется ввести. Наконец, большинство других систем (служб, устройств и т. Д.) Не требуют второго уровня аутентификации и обычно не считаются небезопасными.

Хорошо, это мое мнение по этой теме. Вы сами должны решить, имеет ли смысл смысл вашей безопасности. Давайте приступим к делу.

Cisco (разумно) требует, чтобы вы установили пароль удаленного доступа по умолчанию. Когда вы переходите в режим настройки строки ...

  маршрутизатор & GT; включить
маршрутизатор # configure terminal
router (config) # строка vty 0 15
Маршрутизатор (конфигурации строки) #
 

... вы можете сказать маршрутизатору пропустить аутентификацию:

  router (config-line) # no login
 

... и быстро взломайте, но ваш злоумышленник окажется в пользовательском режиме. Поэтому, если у вас есть пароль для включения, по крайней мере у вас несколько ограничен ущерб, который можно сделать. (Технически вы не можете пойти дальше без пароля включения. Еще об этом в одно мгновение ...)

Естественно, никто не будет делать это в реальной жизни. Минимальное требование по умолчанию и здравый смысл состоит в том, чтобы установить простой пароль:

  router (config-line) # login
маршрутизатор (config-line) # пароль cisco
 

Теперь вам будет предложено ввести пароль, и вы снова окажетесь в пользовательском режиме. Если вы входите через консоль, вы можете просто ввести enable , чтобы получить доступ, не вводя другой пароль. Но все по-другому происходит через telnet, где вы, скорее всего, получите это:

  $ telnet 10.1.1.1
Попытка 10.1.1.1 ...
Подключено к 10.1.1.1.
Символом Escape является «^]».


Проверка доступа пользователей

Пароль: *****
Маршрутизатор & GT; включить
% Нет установленного пароля
Маршрутизатор & GT;
 

Перемещение ... Вероятно, вы уже знаете, что по умолчанию все ваши настроенные пароли отображаются как обычный текст:

  router # show run | пароль
нет шифрования паролей услуг
 пароль cisco
 

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

К счастью, эта первая строка в фрагменте выше, no service password-encryption , является ключом к изменению этого:

  router (config) # service password-encryption
router (config) # строка vty 0 15
маршрутизатор (config-line) # пароль cisco
 

Теперь, когда вы посмотрите на конфигурацию, вы увидите следующее:

  router (config-line) # do show run | begin line vty
line vty 0 4
 пароль 7 01100F175804
 авторизоваться
line vty 5 15
 пароль 7 01100F175804
 авторизоваться
!
!
конец
 

Это немного лучше, чем пароли с открытым текстом, потому что отображаемая строка не является достаточно запоминающейся для плеч-серфинга. Тем не менее, тривиально расшифровывать - и я использую этот терминздесь свободно. Вы можете буквально вставить эту строку выше в один из дюжины взломов паролей JavaScript на первой странице результатов Google и сразу же вернуть исходный текст.

Эти так называемые «7» пароли обычно считаются «запутанными», а не «зашифрованными», чтобы подчеркнуть тот факт, что он едва лучше, чем ничего.

Как оказалось, все эти команды password устарели. (Или, если это не так, они должны быть.) Вот почему у вас есть следующие два варианта:

  router (config) # включить пароль PlainText
router (config) # enable secret Зашифрованный
router (config) # do show run | Включить
включить секрет 5 $ 1 $ sIwN $ Vl980eEefD4mCyH7NLAHcl
включить пароль PlainText
 

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

Когда вы вводите пароль в приглашении, он проходит один и тот же алгоритм хеширования и должен, следовательно, генерировать один и тот же хеш, который затем сравнивается с тем, который содержится в файле конфигурации. Если они совпадают, ваш пароль будет принят. Таким образом, обычный текст не известен маршрутизатору, кроме как в течение короткого момента, когда вы создаете или вводите пароль. Примечание. Всегда есть вероятность, что какой-то другой вход может генерировать один и тот же хеш, но статистически это очень низкая (читая: пренебрежимо малая) вероятность.

Если вы использовали эту конфигурацию самостоятельно, маршрутизатор позволит использовать как enable password , так и enable secret , но секрет выигрывает от подсказки пароля , Это один из тех Cisco-измов, который не имеет большого смысла, но так оно и есть. Кроме того, нет эквивалентной команды secret из режима конфигурации линии, поэтому вы застряли с запутавшимися паролями там.

Хорошо, поэтому теперь у нас есть пароль, который невозможно восстановить (легко) из файла конфигурации, но все еще есть одна проблема. Он передается обычным текстом при входе в систему через telnet. Не хорошо. Мы хотим SSH.

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

  router (config) # имя пользователя admin привилегия 15 секрет EncryptedPassword
router (config) # строка vty 0 15
router (config-line) # транспортный ввод ssh
маршрутизатор (config-line) # нет пароля
маршрутизатор (config-line) # login local
маршрутизатор (config-line) # выход
router (config) # ip ssh version 2
router (config) # криптовый ключ генерировать rsa модуль 1024
 

Теперь вы готовите с газом! Обратите внимание, что в этой команде используются пароли secret . (Да, вы можете, но не должны, используйте password ). Часть привилегия 15 позволяет полностью обойти пользовательский режим. Когда вы входите в систему, вы переходите в привилегированный режим:

  $ ssh [email protected]
Пароль: *****

маршрутизатор #
 

В этом случае нет необходимости использовать пароль включения (или секрет).

Если вы еще не задумываетесь, «вау ... что такое кластерная эмблема , что », помните, что есть еще одна длинная ветка, которая по-прежнему скрывается за командой aaa new-model , где вы можете погрузиться в такие вещи, как внешние серверы аутентификации (RADIUS, TACACS +, LDAP и т. д.), списки аутентификации (которые определяют источники для использования и в каком порядке), уровни авторизации и учет активности пользователя.

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

Надеюсь, что это поможет!

ответил SirNickity 7 Jpm1000000pmWed, 07 Jan 2015 21:50:40 +030015 2015, 21:50:40
3

Да, вам нужно что-то настроить. Именно так работает IOS. Вы можете сделать это так же, как ваш пароль для входа, если хотите.

Для нескольких пользователей я рекомендую вам настроить аутентификацию AAA, которая позволит вам перейти непосредственно в режим разрешения без ввода другого пароля. Это также позволит вам отслеживать активность отдельных администраторов. (Но вам все равно нужно установить секретный пароль включения.)

  aaa новая модель
aaa аутентификация логин по умолчанию локальный
Разрешить авторизацию aaa по умолчанию

имя пользователя chen-li пароль foo privilege 15
имя пользователя safar пароль bar привилегия 15
 
ответил Ron Trunk 7 Jpm1000000pmWed, 07 Jan 2015 18:21:45 +030015 2015, 18:21:45
1

Чтобы добавить к существующей информации здесь.

включить

Первым вариантом установки пароля enable является enable password .

  Switch (config) #enable password passfoo
Switch # show running-config | включить включение
включить пароль passfoo
 

Как вы можете видеть, пароль хранится в текстовом формате. Это плохой .

Второй вариант enable secret .

  Switch (config) #nable секрет?
  0 Задает пароль UNENCRYPTED
  5 Задает секрет MD5 HASHED
  8 Определяет секретный секрет PBKDF2 HASHED
  9 Определяет секрет SCRYPT HASHED.
  LINE Секция UNENCRYPTED (cleartext) 'enable'
  level Установить пароль уровня уровня
Switch (config) #enable секретный passfoo
Switch # show running-config | включить включение
включить секрет 5 $ 1 $ cSF4 $ uydOsfi3J2vGT.77tuYWh1
 

Это лучше . По крайней мере, у нас есть хэш пароля. Однако это все еще использует соленое MD5, поэтому его, вероятно, достаточно легко взломать с помощью большого списка слов и openssl.

Третий вариант (и цель этого ответа) - это enable algorithm-type , который позволяет нам использовать PBKDF2 или SCRYPT.

  Switch (config) #enable algorithm-type?
  md5 Кодировать пароль, используя алгоритм MD5
  scrypt Кодирование пароля с использованием алгоритма хэш-кодирования SCRYPT
  sha256 Кодировать пароль, используя алгоритм хэширования PBKDF2
Переключатель (config) #nable-type scrypt secret?
  LINE Секция UNENCRYPTED (cleartext) 'enable'
  level Установить пароль уровня уровня
Переключатель (config) #enable-type scrypt secret passfoo
Switch # show running-config | включить включение
включить секрет 9 $ 9 $ dXjOMeJPYKOFbl $ 0D4.ItXi8yrjp.A9dt7Ew6tTgr3LYmMlzD672d.LjFk
 

Это определенно лучший .

Philip D'Ath написал хорошее резюме о том, почему выбрать тип 9. Thomas Pornin и Ilmari Karonen предоставляют более подробную информацию.

ответил Samuel Harmer 28 Jpm1000000pmSun, 28 Jan 2018 19:17:56 +030018 2018, 19:17:56
0

Это в основном дополнительный уровень безопасности. Если у вас нет версии IOS, которая поддерживает шифрование паролей служб, то только пароли шифруются, тогда как консоль и пароли VTY являются открытым текстом. Если кто-то смог получить копию вашего конфига (скажем, из резервной копии или без компьютера, на котором был telnetted), зашифрованный пароль для доступа затруднит получение контроля над вашим маршрутизатором, даже если они могут подключиться к telnet.

Даже с зашифрованными паролями VTY и консоли, вы все равно должны иметь другой пароль для обеспечения безопасности и обеспечить дополнительный барьер.

ответил pooter03 7 Jpm1000000pmWed, 07 Jan 2015 18:40:48 +030015 2015, 18:40:48
0

Завершение работы 1 из 2 пользователей admin.cisco очень важны для любых, любых, любых возможных точек входа взлома через соединение. С двумя админами. Подключенный cisco будет считать, что злоумышленник также подключен и блокирует дальнейший прогресс без правильного входа в систему. У вас есть возможность восстановить управление, вы можете добавить admin

ответил MOM 7 AM00000050000003831 2015, 05:20:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132