网络安全-路由器IOS管理

背景

文章内容:路由器三种命令模式,以及路由器系统IOS文件的备份、升级、恢复,以及路由器配置文件的备份、回复。

内容源自拼客学院的公开课,全文是根据自己的需要做的简要笔记,便于后期复习,如需了解完整内容,可前往拼客学院了解,它挺好的。

提供原教学视频链接:https://www.pinginglab.net/course/430/tasks

内容

概述

此处是GNS3搭建的环境下操作的,GNS3是一款图形化的网络拓扑逻辑模拟工具,具体的使用可以去百度看看。IOS是指路由器/交换机上运行的系统,作为一名网络安全工程师,我们维护的设备都是基于系统的,配置之类的都是需要通过命令的。

首先介绍IOS下的三种命令模式:

  • 用户模式:普通用户的权限,具有对系统基本的查看功能,登录IOS系统后默认进入的是这个模式,进入该模式的方式:

    1
    2
    3
    4
    # 登陆后直接进入

    # 在其它模式下执行命令
    exit
  • 特权模式:管理员权限,对系统进行基本的管理。进入该模式的方式:

    1
    2
    3
    4
    5
    6
    7
    # 同用户模式进入
    enable

    # 从匹配模式退出有以下几种方式
    exit
    Ctrl + Z
    end
  • 配置模式:超级管理员权限,对系统执行所有的操作

    1
    2
    # 从特权模式进入
    configure terminal

正常使用情况下,都是通过特权模式查看、测试,而通过配置模式修改配置,并且不同的命令模式下支持的命令不同。

用户模式下,常见的命令有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 测试连通性
ping

# 链路追踪
traceroute

# 查看arp表信息
show arp

# 查看系统时间
show clock

# 查看系统版本、软、硬件信息
show version

特权模式下,除了可以直接使用用户模式下的命令,还有一些常见命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看硬盘大小
show flash

# 查看运行配置,本质就是查看目前路由器内存中存放的一些命令,
show running-config

# 查看初始配置,本质就是查看目前路由器硬盘中存放的一些命令,
show startup-config

# 保存配置,将内存中的命令保存到硬盘中,也可以将硬盘中的内容导入到内存中
copy run start
write

# 查看接口三层地址信息,也就是查看本地IP简要信息
show ip interface brief

# 查看接口的具体信息,也就是查看本地IP的丰富信息
show interface f0/0

配置模式还分不同的状态,不同的状态下命令不同,下常见的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 定义主机名
hostname R1

# 进入接口模式
interface f0/0

# 打开接口
no shutdown

# 定义接口IP
ip address 12.0.0.2 225.225.225.0

# 进入console口模式
line console 0

# 删除特权用户权限命令,否则一直默认为管理员权限
no privilege level 15

# 关闭域名解析,这是因为默认情况下路由器会对命令行进行域名查找,占用很多时间。
no ip domain-lookup

# 关闭发呆超时,exec-timeout 2 30 表示2分钟30秒后被踢出来
exec-timeout 0 0

# 日志输出同步,为了解决日志干扰
logging synchronous

命令行模式下常见的快捷键有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 移动到行首
Ctrl + A

# 移动到行尾
Ctrl + E

# 翻行
Enter

# 翻页
Space

# 直接调用上/下一条命令
↑ ↓

# 撤销正在执行中的命令
Ctrl + Shift + 6

密码管理

对于路由器而言,它有三种模式,其中通过虚拟终端登陆到普通用户模式下可以设置一个密码,而从退出状态(console)进入普通用户下也可以设置一个密码,并且从普通用户进入特权用户还可以设置一个密码。

由于GNS3就默认给我们创建了超级管理员的终端,我们最好取消它:

1
2
configure terminal
no privilege level 15

配置登录普通用户密码的方式有三种(记住第三种即可):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 配置的是console口的密码。在路由器超时将我们退出后,登录时使用的密码
configure terminal # 进入特权模式
line console 0 # 进入console口
password 123456 # 设置密码
login # 配置登录时调用

# 创建远程虚拟终端使用的账户和密码
configure terminal
line vty 0 15 # 进入虚拟终端0~15口,同时配置这16个口
password 123456 #
login


# 创建远程虚拟终端使用的账户和密码。通过创建本地用户名数据库,从而指定不同用户的不同密码
username shuai password 123456
username shuai1 password 123456
line console 0 # 配置本地的console口
login local # 调用本地的用户名数据库
line vty 0 15 # 配置远程虚拟终端口
login local # 调用本地的用户名数据库


# 创建远程虚拟终端使用的账户和密码。第二种方式创建的用户名和密码可以通过show running-config查看到,不安全,所以有了下面的方式,记这个就好了
username shuai secret shuai
line console 0
login local
line vty 0 15
login local

如果上述密码忘记了,找回的方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 1. 路由器重启,然后按Ctrl + break进入ROMMON模式
Ctrl + break / Ctrl + C (模拟器中)

# 2. ROMMON模式下修改寄存值为0x2142
confreg 0x2142

# 3. ROMMON下重启
reset

# 4. 特权模式下将配置文件加载到内存,并进行密码管理
copy startup-config running-config
no username shuai # 删除用户表中的用户
line console 0
no login
no login local # 删除console口的登录密码
end # 退出端口配置
write # 将上述内存中运行的指令写到配置文件中

# 5. 配置模式下修改寄存值为0x2102
configure terminal
config-register 0x2102

# 6. 正常模式下启动后,密码即修改成功
end
reload

配置进入特权用户的密码方式:

1
2
3
4
5
6
configure terminal
# enable password 123456 --> password的密码不安全,所以不建议使用
enable secret 123456

# password是明文的,如果希望对password输入的密码也进行加密,则可以输入一条命令,不过这种安全性也不高
service password-encryption

如果需要删除指定的用户,则:

1
2
configure terminal
no username shuai

配置文件管理

  • 保存

    1
    2
    3
    4
    5
    6
    7
    copy running-config startup-config

    # 或者
    write

    # 交换机的备份些许不同
    copy flash:config.txt run
  • 备份配置文件

    将路由器的配置文件备份到电脑、文件服务器上,一定要备份,否则设备损坏后又要耗费很多的时间恢复。用到的工具是tftptftpftp一样,用于文件传输,tftp一般用于小文件传输。

    1
    2
    3
    4
    5
    6
    7
    # 将内存中的配置信息备份到文件服务器上
    copy run tftp:

    # 将nvram中的配置信息备份到文件服务器上
    copy start tftp:

    # 备份命令中会让我们输入服务器IP、确认备份的文件
  • 恢复备份的配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 从nvram恢复到内存
    copy start run

    # 从备份服务器恢复到路由器内存
    copy tftp: run

    # 从备份服务器恢复到路由器的nvram
    copy tftp: start


    # 开启icmp动态调试
    debug ip icmp
    # 关闭所有调试
    ubdebug all
  • 删除配置文件

    1
    2
    3
    4
    5
    6
    # 一条条的删除,什么位置配置的命令,就在什么位置no
    no + 命令

    # 删除nvram中所有的内容,在特权模式下
    write erase
    reload

IOS管理

将路由器的运行系统备份、还原,一定要备份,否则设备损坏后需要进行还原时,没有了激活码,就非常的麻烦,购买一个激活码的费用非常昂贵。

  • 备份

    1
    2
    show flash:  # 查看运行系统的文件名
    copy flash: tftp: # 将路由器系统复制到文件服务器中
  • 删除路由器flash中的系统文件

    1
    2
    3
    4
    5
    # 删除单个文件
    delete flash:c2590.bin

    # 清空整个flash文件,相当于格式化flash空间,不过有的路由器不支持
    erase flash:
  • 还原

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 正常情况的系统恢复,即删除到升级期间路由器都是正常的运行
    copy tftp: flash:

    # 非正常情况下的系统回复,即升级期间路由器异常挂了
    # 这种情况下启动路由器,则直接进入了ROMMON环境下了
    dir flash: # 查看flash下的文件状况
    IP_ADDRESS=12.1.1.1 # 配置路由器的IP
    IP_SUBNET_MASK=255.255.255.0 # 设置路由器的子网掩码
    DEFAULT_GATEWAY=12.1.1.2 # 设置默认网关的IP地址,此处是备份文件服务器的IP
    TFTP_SERVER=12.1.1.2 # TFTP备份服务器的IP地址
    TFTP_FILE=isr4300-universalk9.16.06.04.SPA.bin # TFTP服务器上备份的路由器系统文件
    set # 查看一下上面配置的变量是否正确
    tftpdnld # 下载路由器的备份文件
    reset # 重启路由器
  • 指定IOS系统

    1
    2
    3
    # 当路由器上有多个路由器系统文件时,可以指定优先启动哪一个系统
    configure terminal
    boot system flash:isr4300-universalk9.16.06.04.SPA.bin