H3C NX54路由器如何永久开telnet,永久关闭ipv6防火墙

前言

之前买了一台NX54路由器,结果这路由固件完全不给用户定制化的机会,研究如何保存ip6table的配置没有成功,但是成功保存了telnet开启配置,分享一下。这套固件的情况如下:

  1. 默认开启ipv6防火墙,且关闭后,重启会失效,再次打开。
  2. 可以通过telnet连接路由,telnet配置也不保存,停电或者重启后失效。
  3. 根目录使用overlayfs做到了tmp下,是整个系统会恢复的主要原因。
  4. 提供了/mnt目录保存数据,/mnt/bak/startup.bak就是所有配置项。

关闭ipv6防火墙

  1. 访问http://[ip]/debug.asp
  2. 向下拉,找到telnet管理,勾选启动telnet,点旁边应用
  3. 在命令行执行如下命令,关闭ipv6防火墙
    1
    2
    3
    4
    5
    6
    7
    telnet <路由ip> 15000
    # 输入密码
    <your password>
    # <H3C_NX54>后输入 debugshell
    debugshell
    ip6tables -D FORWARD -j ACCEPT
    ip6tables -I FORWARD -j ACCEPT

永久开telnet

原理

  1. 系统保存有一份配置文件,重启后会根据这份配置文件恢复配置。
  2. 配置文件格式如下
    1
    2
    3
    <md5> /var/run/.tmpcfg
    <版本>
    <具体配置...>
  3. 其中md5用于校验整个文件,就是从版本号开始,后续所有配置计算得到的。
  4. 后续有个telnetenable=的配置,但系统做了特殊设定,后台修改telnet并不会保存到配置中,导致telnet不能自动开,这里我们就需要手动修改配置文件。
  5. 修改后,替换md5摘要,整个配置就是一个有效配置。

流程简单如下,移除第一行 -> 计算md5 -> md5重新加到第一行。

具体操作

快速方法

本方法只适合配置纯英文,不支持配置文件中有中文,如果失败,可以尝试下一节的手动处理方法。

  • NX54开启telnet配置生成器(输入所有配置文件内容,网页会帮你修改)
  • md5在线计算(注意本站会计算所有内容的md5,这里用不上,只做参考)
    我搭建了一个网页,只要把路由的配置复制过来,就会生成开telnet的新配置。网页纯静态,不会向外发送你的任何配置信息,纯javascript本地运行的,这里教如何用网页转化配置。配置信息里有宽带密码账号,如果实在不放心我,下一个大标题的环节是纯手动改。
  1. 登录路由后台,设备管理 -> 基本管理,备份,下载完成后,复制一份(防止万一需要初始化后恢复得再配置)。
  2. 用文本编辑器打开下载的文件
  3. 复制所有内容到 NX54开启telnet配置生成器 左侧,在右侧会生成一份新配置。
  4. COPY,替换掉原配置文件内容,保存。
  5. 路由后台,选择文件,恢复。
  6. 等重启后,telnet就永久开了。接下来我们写一个shell,自动执行telnet并开ipv6,这些内容就自己找文心一言或者chatgpt生成吧。

配置文件带中文或者格式错误的手动处理方法

推荐,用上面的网页更快,但是配置中不得含有中文,否则生成的文件验证不通过。这里只是把流程纯手动,原理一样,但支持特殊符号、中文。
文件md5计算

  1. 登录路由后台,设备管理 -> 基本管理,备份,下载完成后,复制一份备份(防止万一需要初始化后恢复得再配置)。
  2. 打开如下
    1
    2
    3
    5f0521762cfa7553351d4173706b4c99  /var/run/.tmpcfg
    NX54/NX54V100D011
    ....
  3. 找到telnetenable=,将=后面的内容改为enable,保存。
    1
    2
    3
    @telnet
    #
    telnetenable=enable
  4. 删除第一行,只保留第二行NX54/NX54V100D011开始及后面内容,保存文件。
  5. 打开文件md5计算计算,你也可以验证一下修改前的md5。
  6. 将生成的md5再次粘贴到第一行替换原md5(注意一定是小写)
    1
    2
    3
    4
    5
    6
    7
    新md5 /var/run/.tmpcfg
    NX54/NX54V100D011
    ...
    @telnet
    #
    telnetenable=enable
    ...
  7. 去路由后台,备份那里找从文件中恢复设置信息,选择文件,点恢复。

注意

  1. 最好不要直接全关ipv6防火墙,可以指定ip允许转发。
  2. nx54分配的ip6地址不固定,所以如果指定ip后,每次需要移除旧的规则
  3. 通常我们都是让文件服务器或者NAS在外网访问,所以可以直接把命令写到nas上,一旦ip变动,则执行命令
  4. 具体iptable指令怎么调整,还是边学指令边问chatgpt吧,我这里就不弄了,我也没NAS,有个旧的arm板子,没怎么搭,去年看了一下快买不起硬盘了,硬盘现在价格逆天了。
  5. 全网首发,没找到怎么配置的方法,要转载请附上我的网址,给点流量。

后记

不能用中文是后来发现的,感谢新疆的大哥,提供了他的配置文件让我发现了问题。