Secure Cisco IOS Images and Configuration Files with IOS Resilient Configuration
Learn how Cisco IOS Resilient Configuration protects the running IOS image and startup configuration from remote deletion or tampering.
Why Protect IOS Images and Configuration Files?
A Cisco router depends on two stored assets for reliable operation: the IOS image and the startup configuration. The IOS image is the Cisco IOS software file used to boot and run the device. The startup configuration is the saved configuration loaded when the router starts.
The IOS image is commonly stored in flash, a nonvolatile file system. The startup configuration is traditionally stored in NVRAM, although some platforms use flash or another persistent file system. If either asset is deleted, replaced, or damaged, the router may fail to boot normally or may start without its intended configuration.
- Accidental deletion: An administrator may remove the wrong file while managing flash storage.
- Malicious remote access: A compromised administrative account could be used to alter or delete stored files.
- Image replacement: An unauthorized IOS image could change device behavior or prevent normal startup.
- Loss of startup configuration: Deleting the saved configuration can cause the device to restart with missing interfaces, routing, security, or management settings.
File protection is only one part of security. IOS Resilient Configuration does not replace device hardening, strong administrative authentication, authorization, secure management access, configuration backups, software integrity validation, or recovery planning. It protects selected stored copies against removal through remote sessions; it does not make the entire router secure by itself.
What Is Cisco IOS Resilient Configuration?
Cisco IOS Resilient Configuration is a Cisco IOS feature that creates protected working copies of the currently running IOS image and the startup configuration. Together, these protected copies are called the primary bootset or secure bootset.
The secure image archive is stored in flash. The protected startup configuration is stored as an archive file, normally in flash. The purpose is to preserve a usable image and configuration even if a remote user attempts to remove ordinary files.
Protected resilient-configuration files cannot be removed through remote sessions. Disabling IOS Resilient Configuration requires authorized access through the local physical console. This makes physical security important: protect the console port, restrict local access, and require change-control approval before disabling the feature.
| Asset | Original operational location | Protected archive location | Protection purpose |
|---|---|---|---|
| Running IOS image | IOS image executing from flash | Protected secure image archive in flash | Preserve a bootable copy of the active software |
| Startup configuration | NVRAM or a persistent configuration file system | Protected configuration archive, commonly in flash | Preserve the saved configuration used at startup |
Prerequisites and Operational Planning
Before enabling resilience, be comfortable with Cisco IOS command modes, the difference between running and startup configuration, flash and NVRAM file systems, and local console access. Confirm that the platform and IOS release support the commands used in this lesson.
- Check that flash has enough capacity for the protected image and configuration archives.
- Identify the IOS image that is currently running.
- Review the running configuration and save the intended settings to startup configuration.
- Enable image resilience and configuration resilience.
- Verify both protected archives immediately.
Use reliable time settings, such as NTP, when timestamps are important for operations and audit records. See Configure NTP on a Cisco Router for related timekeeping practice.
Protect the Running IOS Image
The running image is the IOS image currently executing on the router. The image-resilience command copies that active image into a protected secure archive in flash.
From privileged EXEC mode, enter global configuration mode and enable image resilience:
Router# configure terminal
Router(config)# secure boot-imageA successful activation message indicates that IOS has created the protected copy of the currently running image. The exact wording can vary by platform and software release, so treat the success message as confirmation that image-resilience creation completed rather than relying on a particular punctuation or filename format.
During verification, the secure image archive details can include:
- Image filename: The IOS software file preserved in the archive.
- Archive type: The type or format identified by IOS for the protected image.
- File size: The amount of flash space used by the archive.
- Runnable status: Whether IOS identifies the archive as usable for execution or boot recovery.
- Entry point: The location from which the image begins execution.
- Run location: The storage location associated with the running or protected image.
Image resilience protects the selected copy at the time the command is issued. After a planned IOS upgrade, identify the new intended boot image, confirm flash capacity, and revisit the resilient copy so the protected bootset corresponds to the intended operational software.
Protect the Startup Configuration
The startup configuration is the saved configuration loaded during device startup. Before creating its protected archive, save the configuration you intend the router to use:
Router# copy running-config startup-configThen enable configuration resilience from global configuration mode:
Router# configure terminal
Router(config)# secure boot-configIOS reports successful configuration-resilience activation and creates a protected, timestamped configuration archive in flash. The generated filename and exact directory syntax are platform-dependent; use the verification command to identify the actual archive path.
IOS Resilient Configuration Commands
| Command | Configuration mode | Purpose | Expected outcome |
|---|---|---|---|
copy running-config startup-config | Privileged EXEC | Save intended running configuration changes | The startup configuration contains the selected changes |
secure boot-image | Global configuration | Create a protected copy of the currently running IOS image | IOS reports image-resilience activation and creates a protected image archive in flash |
secure boot-config | Global configuration | Create a protected archive of the startup configuration | IOS reports configuration-resilience activation and creates a timestamped archive in flash |
show secure bootset | Privileged EXEC | Display the protected image and configuration archives | IOS displays secure bootset metadata and activation information |
Verify the Primary Bootset
Use show secure bootset from privileged EXEC mode:
Router# show secure bootsetThe command displays the protected secure bootset. After successful setup, output should contain both an IOS image resilience section and an IOS configuration resilience section.
| Output field | Meaning | What to verify |
|---|---|---|
| Router identifier | Identifier associated with the device or bootset record | Confirm that the output belongs to the intended router |
| IOS resilience version | Version information for the resilient-configuration record | Confirm that IOS recognizes the protected bootset format |
| Activation timestamp | Time when image or configuration protection was enabled | Check that the timestamp matches the change window |
| Protected archive path | Flash path and filename for an archive | Confirm that an image archive and configuration archive are listed |
| Archive type | Format or classification of the protected file | Confirm that IOS recognizes the archive correctly |
| Size | Space occupied by the protected archive | Use the value when reviewing flash capacity and file management |
| Image metadata | Filename, runnable status, entry point, and run location | Confirm that the protected image is the intended usable IOS image |
Example End-to-End Workflow
- Enter privileged EXEC mode and inspect the file systems and available flash capacity.
- Identify the IOS image currently running and confirm that it is the intended software.
- Review the running configuration.
- Save the intended configuration with
copy running-config startup-config. - Enter global configuration mode and run
secure boot-image. - Run
secure boot-configto protect the saved configuration. - Return to privileged EXEC mode and run
show secure bootset. - Confirm that both protected archives are listed, with sensible paths, sizes, activation timestamps, and image metadata.
For a software upgrade, do not assume that an older protected image is automatically the desired rollback or recovery image. Identify the new image, verify available flash capacity, perform the normal upgrade checks, and validate or update resilient protection after the change. Likewise, refresh configuration protection after major approved configuration changes so the protected archive matches the intended startup state.
Troubleshooting
Only image resilience appears
If the secure bootset shows image resilience but no configuration resilience, the configuration command may not have been issued, or the intended startup configuration may not have been prepared and saved.
- Run
show secure bootsetand review the listed archives. - Save the intended configuration with
copy running-config startup-config. - Enable configuration resilience with
secure boot-config. - Run
show secure bootsetagain.
Only configuration resilience appears
If configuration resilience is present but image resilience is absent, image protection may not have been enabled or archive creation may not have completed successfully.
- Confirm the active IOS image.
- Check available flash capacity.
- Enable image resilience with
secure boot-image. - Verify again with
show secure bootset.
A remote administrator cannot delete or disable the protected files
This is the expected behavior. IOS Resilient Configuration is designed to prevent removal of protected resilient files through remote sessions such as SSH or Telnet. If disabling the feature is legitimately required, use authorized local console access and follow physical-security and change-control procedures.
The protected configuration lacks recent changes
Changes may have remained only in running configuration when the archive was created, or the archive may predate later saved changes.
- Compare the running and startup configuration state.
- Save the intended changes.
- Review the platform-supported workflow for refreshing resilient configuration protection.
- Verify the resulting archive and activation information.
Security Boundaries and Related Practices
IOS Resilient Configuration protects stored resilient copies from remote removal. It does not prevent an attacker from changing the running configuration, obtaining administrative privileges, attacking management services, replacing other unprotected files, or gaining physical access to the device. Combine it with secure administrative access, AAA, SSH, control-plane protection, physical console security, backups, and recovery testing.
For related study, review Enable SSH on a Cisco Router, AAA Explained, Passwords on IOS Devices, Protect the Management Plane, and Protect the Control Plane.
Exam-Relevant Notes
- The IOS image is the software used to boot and run the router; the startup configuration is the saved configuration loaded at startup.
- IOS Resilient Configuration creates protected copies of the running IOS image and startup configuration.
- The protected pair is called the primary bootset or secure bootset.
secure boot-imageprotects the currently running IOS image.secure boot-configprotects the startup configuration as it exists when the command is issued.show secure bootsetverifies resilience status and archive metadata.- Protected resilient files cannot be removed through remote sessions, and disabling the feature requires local console access.
- Always save intended configuration changes before protecting or refreshing the startup-configuration archive.