Сброс пароля на маршрутизаторе Cisco C1111-8P: полная инструкция по процедуре password recovery
Пошаговое руководство по восстановлению доступа к устройству серии Cisco 1100 Integrated Services Router через режим ROMMON, с иллюстрациями и объяснением каждого шага.
1. Когда требуется процедура сброса пароля
Маршрутизатор Cisco C1111-8P относится к серии Integrated Services Router (ISR) 1100 и работает под управлением Cisco IOS-XE. Процедура сброса пароля (password recovery) применяется в следующих типичных случаях:
- Утерян или забыт пароль пользователя
enable/enable secret. - Устройство получено «б/у» с неизвестными учётными данными.
- Администратор, настроивший устройство, недоступен, а конфигурация нужна для дальнейшей работы.
- Требуется вернуть устройство к заводским настройкам, сохранив при этом текущую конфигурацию для последующего анализа.
startup-config. Это позволяет зайти без пароля, скопировать сохранённую конфигурацию в оперативную, отредактировать пароль и сохранить изменения. Физический доступ к устройству в этот момент обязателен — это фундаментальное свойство архитектуры, а не уязвимость.
2. Важные предупреждения
- Физический доступ = полный доступ. Процедура работает потому, что тот, кто выполняет её, уже имеет физический доступ к устройству. Ограничивайте доступ к серверным и телекоммуникационным шкафам организационно.
- Перезагрузка обязательна. Процедура требует как минимум одной, иногда двух перезагрузок устройства — запланируйте технологическое окно, так как трафик через маршрутизатор будет прерван.
- Не отключайте питание вручную во время записи конфигурации (команда
write memory) — это может повредить файловую систему flash. - Сохраните резервную копию конфигурации, если есть такая возможность, до начала процедуры (например, через ранее настроенный TFTP/SCP-бэкап или доступ к устройству управления сетью).
- После восстановления доступа рекомендуется сменить все локальные пароли и ключи (enable secret, локальные учётные записи, SNMP community, RADIUS/TACACS+ shared secret), поскольку не исключено, что старые значения могли быть скомпрометированы.
3. Что подготовить перед началом
| Требование | Комментарий |
|---|---|
| Консольный кабель (RJ-45-to-DB9 или USB-консоль) | На C1111-8P консольный порт — RJ-45, часто с дублирующим mini-USB портом консоли |
| Терминальная программа | PuTTY, SecureCRT, Tera Term или встроенный терминал macOS/Linux (screen, minicom) |
| Параметры сессии | 9600 бод, 8 бит данных, без чётности, 1 стоп-бит, без управления потоком (9600 8N1) |
| Физический доступ к устройству | Для перезагрузки и отправки break-сигнала |
| Учётная запись с правами локального администратора на ПК | Для установки драйверов USB-консоли, если используется mini-USB |
4. Схема подключения к консольному порту
5. Пошаговая процедура восстановления пароля
Подключитесь к консольному порту
Соедините консольный порт маршрутизатора (RJ-45 или mini-USB) с ПК. Откройте терминальную программу с параметрами 9600 8N1, без управления потоком.
Перезагрузите устройство и прервите загрузку
Выключите и снова включите питание маршрутизатора (либо выполните reload, если есть доступ с правами ниже привилегированного уровня). В течение первых ~5–15 секунд после старта загрузки нажмите комбинацию Ctrl+Break (или её аналог в вашем терминале — в некоторых клиентах это Ctrl+Delete, либо специальная кнопка Break) — это переведёт устройство в режим ROMMON (rommon 1>).
System Bootstrap, Version 17.x... Initializing Hardware... monitor: command "boot" aborted due to user interrupt rommon 1 >
Если Break не сработал с первого раза — попробуйте отправлять его сразу после сообщения о начале загрузки IOS, до появления баннера операционной системы.
confreg 0x2142 ROM-монитором не подтверждён как рабочий, а команды config-register, write memory и end — это команды режима IOS EXEC/config, а не ROMMON, и в приглашении rommon N > они выдают ошибку command "..." not found. Единственный надёжно работающий способ на этом ROM-мониторе — интерактивный мастер команды confreg без аргументов (см. ниже). Реальный вывод устройства при ошибочном вводе IOS-команд в ROMMON выглядит так:
rommon 1 > config-register 0x2102 monitor: command "config-register" not found rommon 2 > end monitor: command "end" not found rommon 3 > write memory monitor: command "write" not found
Запустите интерактивный мастер изменения регистра — команда confreg
В приглашении ROMMON выполните команду confreg без аргументов — она запускает пошаговый диалог настройки конфигурационного регистра:
rommon 1 > confreg
Configuration Summary
(Virtual Configuration Register: 0x2102)
enabled are:
[ 0 ] console baud: 9600
boot:...... image specified by the boot system commands
do you wish to change the configuration? y/n [n]: y
enable "diagnostic mode"? y/n [n]: n
enable "break/abort has effect"? y/n [n]: n
enable "ignore system config info"? y/n [n]: y
change console baud rate? y/n [n]: n
change the boot characteristics? y/n [n]: n
Configuration Summary
(Virtual Configuration Register: 0x2142)
...
You must reset or power cycle for new config to take effect
Отвечайте y только на вопрос «enable “ignore system config info”?» — именно этот бит (0x0040) заставляет устройство при следующей загрузке проигнорировать startup-config. На остальные вопросы отвечайте n (значения по умолчанию), иначе итоговое значение регистра получится не 0x2142, а другим — например, если случайно включить «diagnostic mode», регистр станет 0x8142, как показано в примере лога ниже:
rommon 6 > confreg
...
enable "diagnostic mode"? y/n [n]: y
...
enable "ignore system config info"? y/n [n]:
Configuration Summary
(Virtual Configuration Register: 0x8102)
Это не критично для самого восстановления пароля (бит «ignore system config info» всё равно можно включить отдельным повторным запуском confreg), но лучше сразу пройти мастер верно и получить именно 0x2142, чтобы не оставлять на устройстве побочно включённый диагностический режим.
Перезагрузите устройство из ROMMON
rommon 2 > reset
Маршрутизатор загрузит IOS-XE, но стартует с пустой (заводской) активной конфигурацией. При этом откроется диалог начальной настройки — на предложение «Would you like to enter the initial configuration dialog?» ответьте no.
Перейдите в привилегированный режим и скопируйте сохранённую конфигурацию
Router> enable Router# copy startup-config running-config
Эта команда загружает вашу прежнюю (сохранённую) конфигурацию в оперативную память — все интерфейсы, маршруты, ACL и остальные настройки восстанавливаются, включая старый (нужный вам для замены) пароль в зашифрованном виде.
Перейдите в режим конфигурирования и задайте новый пароль
Router# configure terminal Router(config)# enable secret НовыйНадёжныйПароль Router(config)# line con 0 Router(config-line)# password НовыйПарольКонсоли Router(config-line)# exit Router(config)# exit
При необходимости также обновите пароли локальных пользователей: username admin secret НовыйПароль.
Верните конфигурационный регистр в исходное значение
Router(config)# config-register 0x2102
Значение 0x2102 — штатное значение регистра, при котором устройство при загрузке нормально читает startup-config из NVRAM. Это критически важный шаг: если его пропустить, маршрутизатор при каждой перезагрузке снова будет стартовать без сохранённой конфигурации.
Сохраните конфигурацию и перезагрузите устройство
Router# copy running-config startup-config Router# reload
После перезагрузки маршрутизатор должен запуститься с новой парой логин/пароль и полностью восстановленной рабочей конфигурацией.
6. Общая схема процесса (ROMMON)
7. Проверка результата
После финальной перезагрузки убедитесь, что:
- Устройство запросило новый пароль и приняло его —
show versionотображает корректную модельC1111-8Pи версию IOS-XE. - Команда
show running-config | include enable secretпоказывает новый зашифрованный хэш пароля. - Значение регистра вернулось к штатному:
show versionв конце вывода должно показыватьConfiguration register is 0x2102(а не0x2142). - Вся ранее настроенная конфигурация (интерфейсы, маршрутизация, ACL, VPN) присутствует и активна.
8. Частые вопросы и типичные ошибки
Break-сигнал не прерывает загрузку
Проверьте настройки терминальной программы — в некоторых эмуляторах (например, PuTTY) сочетание Ctrl+Break нужно назначить отдельно в настройках сессии, либо использовать Ctrl+] с последующей командой send break при подключении через telnet-эмулятор поверх серийного порта.
После процедуры конфигурация «пустая»
Скорее всего, пропущен шаг copy startup-config running-config, либо на устройстве изначально не было сохранённой конфигурации (startup-config отсутствовал в NVRAM).
После перезагрузки снова стартует без пароля
Забыт шаг возврата регистра в 0x2102 и/или не выполнена команда copy running-config startup-config перед финальной перезагрузкой.
ROMMON выдаёт monitor: command "config-register" not found / "write" not found / "end" not found
Это означает, что команда вводится не в том режиме. config-register, write memory и end — команды IOS (EXEC / config mode), они существуют только после того, как устройство загрузило операционную систему. Пока приглашение выглядит как rommon 1 >, доступны только команды самого ROM-монитора: confreg, reset, set, boot, dir и т.п. Используйте именно confreg (см. раздел 5, шаг 3).
После reset — как понять, что startup-config действительно проигнорирован?
В логе загрузки IOS-XE появится системное сообщение %SYS-6-STARTUP_CONFIG_IGNORED: System startup configuration is ignored based on the configuration register setting. Это подтверждает, что бит «ignore system config info» сработал и устройство подняло чистую (заводскую) активную конфигурацию — можно переходить к шагу с enable и copy startup-config running-config.
Можно ли выполнить сброс пароля удалённо?
Нет. Процедура требует локального консольного доступа и физического управления питанием/перезагрузкой устройства в критический момент загрузки — это встроенная особенность архитектуры Cisco IOS-XE, а не ограничение конкретной модели.