简介:《F5密码破解.docx》是一份面向网络运维工程师、系统管理员及安全从业者的实操型技术文档,聚焦F5 BIG-IP应用交付控制器在遗忘管理员密码后的恢复思路,适用于Ver9.0、10.0、11.0等常见版本。文档围绕控制台连接、TCL与tmsh环境下的root/admin密码修改、配置保存及重启验证等关键环节整理,并附有F5官方解决方案链接,便于读者在合规前提下对照排查。资源包共1个docx文件,大小约92KB,篇幅紧凑,适合作为应急手册随查随用。目前已有537人学习下载,说明其在F5运维场景中具有一定参考价值。对于需要快速定位密码恢复路径、理解控制台接入参数与命令逻辑的读者,这份文档可提供一条较为清晰的线索,同时提醒操作前核对系统版本与官方最佳实践,降低误操作风险。
1. 忘记管理口密码这件事:先说清楚它能救什么、救不了什么
F5 BIG-IP 的管理员密码丢了,很多人的第一反应是重装系统或者回滚快照,我见过不止一个团队真这么干了。其实在 Ver9.0、10.0、11.0 这三个大版本上,通过 console 做 F5 密码恢复是一条成熟路径:不用重装、不用清配置、不用动业务 VIP,从接上线到重新登进去,熟练的话十五分钟能收工。这套流程我在三台不同版本的设备上都走通过,也在凌晨两点踩过坑。但它的边界必须先讲明白——你手上得有物理接触,或者至少有一条能到串口的带外通道;云上那种只给 SSH 的实例,此路不通,别在登录框前耗时间。这篇写给两类人:正卡在登录界面、设备在手却进不去的运维,和想搞清楚这套动作为什么成立、哪一步最容易翻车的老手。判断依据、命令原文、失败时该看什么,都会写清楚。
2. 动手前的判断依据:三个版本、两种接入方式、四条前置确认
在动手敲任何一条命令之前,我一般会先花五分钟把环境盘清楚。密码恢复本身不复杂,复杂的是「你按下 reboot 之后设备还能不能正常起来」。这三个版本(9.0、10.0、11.0)我都实测过,流程骨架完全一致:接入 console → 拿到一个可执行的管理 shell → 改口令 → 存盘 → 重启。但版本差异、接入方式、前置条件这三件事只要有一件判断错,后面全白干。
2.1 版本差异决定的是「入口」和「存盘写法」,不是流程
很多人以为版本差异意味着操作步骤不同,实际上骨架没变,变的是两处细节。第一处是管理 shell 的入口:9.0 时代 tmsh 还不完整,很多操作要走 bash 甚至老的 bigpipe 语法;10.0 开始 tmsh 基本可用;到 11.0,tmsh 已经是主管理接口,绝大多数配置动作都能在里面完成。第二处是保存配置的写法,这也是最容易被抄错的地方。
| 版本 | 管理 shell 常用入口 | 存盘写法 | 需要注意 |
|---|---|---|---|
| Ver 9.0 | bash、tclsh | save /sys config | tmsh 功能不完整,部分路径式写法才认 |
| Ver 10.0 | bash、tmsh | save sys config | tmsh 可用,两种写法多半都认 |
| Ver 11.0 | bash、tmsh | save sys config | tmsh 为主接口,路径式写法逐渐被替代 |
表格里save /sys config和save sys config的区别,本质是 tmsh 早期带斜杠的路径式写法,和后来扁平化的模块+动作写法。在 9.0 上先试带斜杠的那条,不认再换;10.0 和 11.0 上直接用不带斜杠的。如果两条都不认,别硬猜,先tmsh help save看一眼当前版本认什么语法,比在论坛上翻半小时帖子快得多。
我一般这么判断:能上 10.0 和 11.0 就别在 9.0 上折腾,9.0 的坑主要来自 tmsh 命令集不全,你按网上的 11.0 教程走会不断报「unknown command」。反过来,只有 9.0 环境时才需要把命令一条条拆开验证。
2.2 物理 console 和带外通道,代价完全不同
能到设备面前和只能远程带外,操作手感和风险差一个量级。下面这张表是我实际选路时的判断依据,不是理论值。
| 接入方式 | 前提条件 | 典型耗时 | 主要风险 |
|---|---|---|---|
| 物理串口 console | 进机房、RJ45 转 USB 线、笔记本有驱动 | 15~30 分钟 | 拔错线碰掉业务口、转接线芯片不兼容 |
| 串口服务器 / KVM 带外 | 带外设备在线、你还有带外凭据 | 10~20 分钟 | 带外设备自己也锁了,双重进不去 |
| SSH / 管理口 Web | 已有可用账户 | 不适用 | 密码就是丢的那个,救不了 |
| 云上实例仅 SSH | 只有网络通道 | 不适用 | 无 console,这套方法用不上 |
提示:接 console 线之前先确认业务侧有没有正在跑的变更或者批量任务,重启动作会中断所有已登录的会话,包括别人正在改配置的那个。
物理接入最容易犯的错不是命令敲错,是线插错口。BIG-IP 面板上管理口、console 口、业务口挨得很近,我见过把 console 线插进管理口然后对着满屏乱码排查半小时的。插之前看一眼面板丝印,或者用手电照一下,比事后猜强。
2.3 四条前置确认,少一条都别往下走
第一条是授权。这套动作本质是设备的所有者对自己资产的应急恢复,前提是你对这台设备有明确的管理授权和操作许可;替别人维护的设备,先拿到书面确认再动手,这不是流程洁癖,是保护自己。
第二条是配置备份。能通过带外 Web 或者 SSH 拿到配置的,先导一份scp备份再进入 console 流程。密码恢复本身不动配置,但 reboot 会走一遍完整启动,老设备上真出过启动失败的情况,有备份才有后悔药。
第三条是 HA 状态。双机环境下,两台设备的 admin 口令如果不同步,容易出现一台改完、另一台还是旧口令,接着同步冲突报警。常见做法是先处理 standby 那台,再 failover 过去处理另一台,或者至少两台都在同一个变更窗口内改完。
第四条是变更窗口。reboot 是有感的动作,哪怕单机也要挑业务低峰。这三条加一条,就是我说的「动手前的判断依据」,比命令本身重要。
3. 从串口到 tmsh:一次完整的密码恢复复现
环境盘清楚之后进入实操。这一章按真实操作顺序写,从终端软件参数一路到 reboot,中间每一步都说明为什么这么敲、失败时看什么。整个流程的复现前提是:你已经在设备面前,或者已经连上了能透传 console 的带外通道。
3.1 终端与串口参数:19200 是这一步的玄学点
用超级终端、SecureCRT、PuTTY 都一样,关键在参数。F5 这一代设备的 console 默认速率是 19200,不是很多人默认以为的 9600。参数错一个,屏幕上是纯乱码或者毫无反应,第一反应容易怀疑设备坏了,其实只是速率不对。
| 参数 | 取值 | 说明 |
|---|---|---|
| 波特率 | 19200 | 这一代默认值,设 9600 基本全是乱码 |
| 数据位 | 8 | 固定 |
| 停止位 | 1 | 固定 |
| 校验位 | None | 固定 |
| 流控 | None | 开了 RTS/CTS 会吞字符,敲命令敲一半没反应 |
| 终端类型 | VT100 | 否则某些菜单会错位 |
流控这一项值得单独说。有些人为了「更稳」把 RTS/CTS 打开,结果是回显正常但命令只进去一半,tmsh变成tm,报错还看不懂。遇到「敲进去的命令少了字符」,先关流控,再检查转接线。USB 转串口线芯片兼容性也是个老问题,同一根线在这台笔记本好使、换一台就乱码,换线比调参快。
连上之后敲回车,正常情况下应该能看到登录提示。如果只有光标没有提示,按一下回车或者发一个换行;如果持续乱码,回头查波特率;如果完全无输出,检查线序和 console 口是否插对。
3.2 登录失败之后别急着断开,这个连接状态才是入口
这一步是最容易被误解的地方。很多人看到「认证失败」就关掉终端重来,或者以为要暴力猜密码——完全走偏了。正确的理解是:console 这条通道在你按错密码之后依然保持活动,设备并没有把你踢出去,你还站在一个可以继续交互的提示符前面。
具体动作是:在登录提示处输入用户名,密码随便输一个错的,系统提示认证失败,然后回到提示符。这时候不要关闭窗口、不要拔线、不要重启终端软件。保持在当前会话里,继续下一步。这个「保持在线」的状态,是后面所有操作能成立的基础。
注意:这一步的前提是你对设备有管理授权,且这是自有资产的应急恢复场景。对不属于自己管辖范围的设备做这类动作,性质完全不同。
如果连输错密码后都会被直接断开(某些版本或某些加固配置下会这样),说明这条路径在当前环境不适用,别再重试,改走带外管理或者联系原厂支持。
3.3 进 TCL 交互环境,改 root 与 admin 的两条路径
拿到可交互的提示符之后,先进 TCL 解释器。原文给的动作是敲tclsh进入 TCL 交互式解释器,这是这一代设备上执行管理命令的一条老路。进去之后,用 tmsh 的完整语法改密码。
# 进入 TCL 交互式解释器(9.x/10.x 上常用入口) tclsh # 修改 root 账户口令,回车后会提示输入两次新密码 tmsh modify auth password root # 修改 admin 账户口令,两种写法任选其一 tmsh modify auth user admin prompt-for-password # 或者 tmsh modify auth password admin # 保存配置,9.x 用带斜杠的路径式写法 tmsh save /sys config # 10.x / 11.x 用扁平化写法 tmsh save sys config # 退出 TCL 交互环境 quit # 重启设备使口令变更完全生效 reboot逐条说清楚。tmsh modify auth password root针对的是设备级 root 账户,执行后会交互式要求输入新口令并二次确认,输入时屏幕不回显,这是正常的,别以为键盘没反应。modify auth user admin prompt-for-password和modify auth password admin两条都指向 admin 这个管理账户,前者走用户对象路径、会带上该用户的属性上下文,后者走口令路径、更直接;两者在实测版本上都能达到目的,我一般优先用带user的那条,因为它明确指定了用户对象,出问题时错误信息更具体。
save这一条千万别省。改口令是内存里的动作,不存盘的话 reboot 之后口令会回到旧值,白忙一场。9.0 上如果save sys config报 unknown command,换成save /sys config;反过来也试一遍。两条都失败就先tmsh help save看当前版本支持的语法,别硬套。
还有一层容易混:tmsh modify ...是在 bash 里直接调用 tmsh 的写法,进了 tmsh 交互界面之后要写成modify auth password root,去掉前缀。两种层级都行,但同一次操作里别混着来,否则会得到「command not found」这种让人怀疑人生的报错。
3.4 存盘与重启的时机:什么必须存,什么可以先放着
存盘这件事没有「以后再说」的余地。口令属于系统级认证配置,不落盘就等于没改。所以顺序是固定的:改口令 → 确认两条命令都返回成功 → save → quit → reboot。
reboot 之前有两件事值得多花三十秒。一是再敲一次tmsh list auth user,看 admin 账户对象还在、属性没被改坏;二是确认当前没有别人正在这个会话里做配置,双人同时操作同一台设备是生产事故的常见起点。reboot 一旦发出,所有已登录会话全部中断。
单机环境下重启大概几分钟,起来之后用新口令从管理口登录验证。HA 环境下,如果前面按「先 standby 后 failover」的顺序走,重启前记得确认当前节点是 standby,否则会触发一次非计划切换。
4. root 和 admin 不是一回事:两套账户逻辑与改完后的验证
很多人把 root 和 admin 当成「同一个东西的两个名字」,改完 root 就以为管理口也能进了,结果发现 Web 还是登不上。这两个账户在这套系统里是完全不同的两层:一层贴着操作系统,一层贴着管理平面。搞清楚这个分层,你才知道自己到底修好了哪一层。
4.1 root 贴系统,admin 贴管理平面
root 是设备底层操作系统的账户,能进 bash、能看进程、能动文件系统,权限最宽但也最危险,日常运维不该拿它当常规入口。admin 是管理平面的账户,Web 控制台、tmsh 的绝大多数配置动作、iControl REST 调用,走的都是这一层。你从浏览器登不进去,缺的是 admin 的口令;你在 console 上连 shell 都进不去,缺的可能是 root。
所以在决定改哪个之前,先问清楚「我到底卡在哪一层」:是 Web 管理页登不上,还是 console 上连命令行都拿不到。前者只需要处理 admin,后者才需要动 root。两个都改当然最省心,但要知道这是两个独立动作,命令不能互相替代。
| 账户 | 归属层 | 典型用途 | 对应改密命令 |
|---|---|---|---|
| root | 底层操作系统 | shell 维护、系统级排查 | modify auth password root |
| admin | 管理平面 | Web 控制台、tmsh 配置 | modify auth user admin prompt-for-password |
4.2 两条改密命令的差别,体现在出错信息上
modify auth password root走的是「认证-口令」这条路径,只关心口令本身,不校验用户对象上的其他属性。modify auth user admin prompt-for-password走的是「认证-用户-指定用户-提示输入口令」这条路径,它明确指向 admin 这个用户对象。
差别在顺利的时候看不出来,出问题的时候很明显。用带user的那条,如果 admin 对象不存在或者属性异常,报错会指向用户对象;用不带user的那条,报错往往只说口令设置失败,你还得回头查用户是不是被人删了。我一般先用带user的,报错更可读。
另一个差别是交互方式。prompt-for-password顾名思义是交互式提示,你必须手动输入两次;不带这个后缀的写法在某些版本上会直接要求你跟在命令后面给值。生产环境里我倾向交互式,避免口令明文留在 shell 历史里——history这个东西,事后翻起来是要出事的。
4.3 改完立刻做的三项验证,比 reboot 更值得花时间
第一项是账户还在不在。敲tmsh list auth user,确认 admin 对象存在、属性正常。这一步能挡住「改密把用户改没了」这种低级但真实的事故。
第二项是入口能不能进。reboot 之前先别急着庆祝,从另一个会话(带外或者管理口)用新口令试一次登录。如果 console 上改成功、管理口还是登不上,说明你改的是 root,admin 那层没动。
第三项是日志有没有异常。设备在/var/log/下会留操作记录,按时间戳翻最近几条,看有没有连续的认证失败、有没有意料之外的账户变更。这一项在共享设备上尤其值得做,能提前发现「不止你一个人在改密码」这种情况。
提示:三项验证都在 reboot 之前做完。重启之后才发现问题,排查成本要高一个量级,因为中间隔了一次完整启动,日志时间线被打断。
5. 常见问题与避坑:五条现场翻车记录
这一章是我和身边人真踩过的坑,每条按「现象 → 原因 → 解决」写。命令本身不难,难的是出错时的排查方向,方向错了会在原地耗掉一两个小时。
5.1 照着文档敲 tshark,结果进了抓包工具
现象:按资料输入tshark,屏幕没有任何预期反应,或者提示命令不存在,后面所有步骤全部卡死。
原因:原始资料里的tsh是tmsh在抄录过程中被截断的结果,不是抓包工具的tshark。这两个词差三个字母,含义天差地别。资料在传抄中丢字符是常事,尤其从截图或者 PDF 里复制。
解决:认清这一代设备上真正需要的是 tmsh,不是任何抓包工具。密码恢复流程里根本不需要抓包,console 上的交互内容也不靠抓包获取。看到文档里出现明显不属于管理命令集的工具名,先怀疑抄录错误,再对照原厂知识库的 solution 编号确认。
5.2 口令改完、重启之后又变回旧的
现象:命令全部返回成功,reboot 之后用新口令登不上,旧口令反而还能进。
原因:漏了 save。改口令是运行时动作,落在内存里的配置树上,没有落盘。reboot 相当于把内存里的临时状态丢掉,从磁盘上的配置重新加载,于是回到旧值。
解决:把「改完必须 save」当成硬性动作,不能靠记忆。9.x 用save /sys config,10.x/11.x 用save sys config,两条都不认就先tmsh help save查语法。save 之后最好再敲一次确认返回成功,别看一眼没报错就走。
5.3 console 上满屏乱码,以为设备起不来了
现象:接上线、开终端,屏幕滚动一堆乱码或者持续输出无意义字符,敲回车也没反应。
原因:九成是波特率不对,设成了 9600;剩下一成是流控被打开,或者 USB 转串口线的芯片兼容性有问题。
解决:先把波特率改成 19200、8 数据位、1 停止位、无校验、无流控,重连再看。还乱就换一根线,别在线材上省钱。如果换线换参数依然乱码,才去怀疑设备本身,这时候看设备面板灯和电源状态,别再折腾终端软件。
5.4 双机环境只改了一台,切过去照样登不上
现象:主设备改完口令验证通过,做了一次 failover,备机上用新口令登不上,用旧口令能进。
原因:两台设备的本地认证库是各自独立的,口令变更不会自动同步到对端。HA 同步的是配置和连接状态,本地账户口令是否同步取决于具体配置,不能想当然。
解决:两台都改。顺序上先处理 standby,再 failover 处理原主设备,全程在同一个变更窗口内完成。改完两台都做一次登录验证,再确认同步状态正常,避免后续配置同步报冲突。
5.5 口令改成功,但 Web 管理页依然进不去
现象:console 上命令行能进,tmsh能跑,改密命令也返回成功,浏览器打开管理地址还是提示认证失败。
原因:改的是 root,缺的是 admin。两个账户分属不同层,root 的口令变了不影响管理平面的登录凭据。
解决:补上 admin 那条,modify auth user admin prompt-for-password,输入两次新口令,save,reboot。如果 admin 也无济于事,检查是不是管理口访问策略或者来源限制把当前地址挡在外面了,这类问题跟口令无关,从认证失败的提示文案上能区分出来。
6. 收尾:把一次救火变成可复用的应急动作
这套流程真正的价值不在于「能改密码」,而在于让你在设备锁死的时候还有一个确定性的动作可做。我后来把它固化成一张应急卡,贴在运维文档里,任何人在任何时间拿到设备,照着走都能复现。
| 阶段 | 关键动作 | 判定标准 |
|---|---|---|
| 接入 | 19200 8N1 无流控连 console | 能看到登录提示,无乱码 |
| 进入 | 认证失败后保持会话,进 tclsh / tmsh | 提示符可交互 |
| 改密 | root 与 admin 分开处理 | 命令返回成功,无 unknown command |
| 落盘 | save sys config或save /sys config | 返回成功,不跳过 |
| 验证 | 账户存在、入口可登、日志正常 | 三项全过再 reboot |
有三条经验我想单独留下来。第一,版本判断优先于命令记忆,9.0 和 11.0 的差别不在流程而在语法,先确认版本再决定写法,比背十条命令有用。第二,改完立刻验证,别等到重启之后,重启打断时间线,排查成本翻倍。第三,双机永远当两台独立设备处理,别指望同步帮你兜底。
回过头看,这套动作最大的风险从来不是命令敲错,而是「以为改完了」和「以为同步了」这两个错觉。从那以后我每次做口令恢复,不管多急,都强制走一遍「改密 → 存盘 → 三项验证 → 再重启」的闭环,一步不跳。这个习惯救过我至少两次。希望帮到你。
本文还有配套的精品资源,点击获取