暮光博客

小心你讨厌的东西,因为你很可能被它塑造成某种形状

之前固件带后门?于是我自行编译了 N1 OpenWrt 固件

折腾 70 条评论

2019 年初折腾的斐讯 N1,三年来一直作为我的家庭旁路由,承担科学上网工作。去年国庆期间,由于之前固件中科学上网不支持 trojan 协议,就在恩山找了一个网友自编译固件更新到 N1 中,新固件内置了许多第三方插件,包含支持多种协议的科学上网、AdGuard Home、音乐解锁等,然而除了科学上网,其他功能我并用不上。

今年夏天,一次偶然地在主路由翻看日志时,发现经常会有不同的华为设备连接到我的家庭网络。起初,我以为是家庭 WiFi 密码遭到泄露,于是更换了密码,并停止了 SSID 广播。然而,还是会有华为设备不断连进来,包括各种型号的华为手机和平板。

WX20211128-190042.png
(主路由日志,各种华为设备连接记录)

后来我依然猜想是 WiFi 被蹭网,或者是主路由的 DHCP 有 BUG,这半年来没太当回事。
直到前几天下班回家,惊讶发现我的小爱音箱居然在自己播放电影音频。经过一番研究,发现电影是通过局域网 DLNA 点播到我音箱上的。这引起了我极大的不适,这都拉屎拉到我头上了。

于是写脚本监控设备连入,有未知设备连入时就通知我。后续有华为设备连入时,我第一时间去查看了华为设备的网络通信记录,发现华为设备和全国各地的 IP 都有通信。我的家宽极有可能被后门程序开放到公网,放进代理 IP 池了。在家里来来回回拔了几次网线,最终锁定这些华为设备都是从 N1 连入的,因为只要我拔掉 N1 的网线,我就 ping 不通华为设备了。

好家伙,给人当了一年肉鸡。

这里要提一下,这些所谓的「华为设备」可能并非是真实的华为设备,而是后门程序自行虚构的 Hostname 和 MAC 地址。

老固件是哪一个?

其实我本来不想公布老固件型号,因为该作者在恩山发布固件,有诸多用户,未见过其他用户反馈类似问题。后门程序可能不存在于固件本身,而是集成的各种第三方插件,作者可能也处于不知情状态。但思索很久还是发出来吧,如果有其他网友有类似问题,也可以给个参考。

老固件型号是「OpenWrt R20.10.1 国庆中秋双节特别版 by gd772」,在恩山的发布帖子是[N1盒子] 【2021-08-14 】 N1盒子 Openwrt 固件,支持 在线升级!

在此声明,我极大怀疑是内置的某个插件存在后门,具体哪个插件我无法排查,我并非质疑作者有意在编译的固件中投放后门。

自行编译新固件

自此,我觉得还是自己编译固件比较放心,最起码不用内置多余的插件,增加不必要的风险。我用 Parallel 开了一台 Ubuntu 虚拟机,拉取了 Lede 的代码,为了安全和纯净,我只将科学上网插件编译了进去。整个编译过程耗时 4 个多小时,编译完毕后,使用恩山知名用户 flippy 的 Armbian 内核和镜像制作工具,将编译好的 OpenWrt 制成镜像,写入 U 盘。将 U 盘插到斐讯 N1,重启后 U 盘启动,连入 OpenWrt SSH,使用 flippy 的 EMMC 一键写入脚本,将 OpenWrt 写入到 N1 存储中。从编译固件到最终写入 N1,整个过程耗时很久,把我搞得很疲惫。中间也来来回回二次编译了几次,因为第一次编译的固件写入 EMMC 时失败,主要原因是一些写入 EMMC 的依赖工具没有编译进去,比如 fdisk、bikid 等分区工具、文件系统等。

61E91BED-A79E-4B15-B795-BE4EAC602776.png
(LEDE 编译和镜像制作过程)

自行编译的固件很干净,不出意外的话,它作为旁路网关仍将服务我很长时间。

WX20211128-184106.png
(自行编译的新固件界面)

最后不得不说,到 2021 年底,N1 的各种玩法已经很成熟。2019 年初刚玩时,OpenWrt 固件写入 EMMC 还是一个很费事的工作,如今得益于一些大佬的努力,这项工作已经非常简单。

最后,我把固件上传到了云盘。
百度云:https://pan.baidu.com/s/1_rmBpJ5RmEW8EP6UOA-Wag?pwd=atm7
天翼云:https://cloud.189.cn/web/share?code=vIJbimjeMrQ3(访问码:cmp9)

下载完先解压为 .img 文件再制作镜像盘。
默认IP:192.168.123.2
默认账号密码:root / password

永远的长度
评论区
选择表情选择表情
  1. micro

    电脑SSH登入192.168.123.2,输入./inst-to-emmc.sh回车,等待写入完毕。

    回复
  2. Sunfish

    请问 flippy 的 EMMC 一键写入脚本哪里可以下载呢?
    另外写入 EMMC 的依赖有哪些,可否分享一下,感谢!

    回复
    1. @Sunfish

      固件自带 emmc 写入脚本,如上面的评论所说:
      电脑SSH登入192.168.123.2,输入./inst-to-emmc.sh回车,等待写入完毕。

      回复
  3. 问题

    用了你的固件,非常简洁,感觉挺好。
    现在准备拿 N1 做旁路由,接打印机,发现没有无线和打印,请问如何增加呢?
    谢谢。

    回复
    1. @问题

      那需要重新编译了,我的固件里没有这两项功能 icon_razz.gif

      回复
      1. 问题
        @大袋鼠

        请问您有IM可以聊下吗?我尝试找了好几个版本的插件,确实都是内核不兼容不能够用。
        清爽的固件很喜欢,想请教下如何操作编译,或者说如何在这个内核的基础上来操作。

        回复
        1. @问题

          编译参考下这个视频:https://www.youtube.com/watch?v=UOLnzWU8H4w
          我的步骤和他大差不差。
          也可以留下你的QQ。

          回复
          1. 问题
            @大袋鼠

            q ***
            麻烦您加一下,偷个懒问您要下编译的配置文件,我自己再按照教程去编译,非常感谢。

            回复
  4. bobo

    谢谢分享

    回复
  5. -! 我主路由是ikuai 旁路由也是恩山下载的openwrt,你说的我有点怕怕的

    回复
    1. @青木

      这个不太好说,恩山的好多固件都编译了好多插件进去,难免会混入有问题的。
      尽量刷纯净一点的。

      回复
  6. Lljlkj

    所有不开源的项目都要慎重使用
    作为程序员,最好自己编译定制自己的固件
    各论坛多插件集合的OpenWrt固件,
    和不开源的梅林固件的科学上网插件,
    由于这些不明程序运行在root权限下,
    如果有后门,简直就是一场灾难。

    回复
  7. whlzxx

    安装好楼主的固件,请问楼主有碰到这种情况吗:Sha******sR Plus+ 未运行

    回复
    1. @whlzxx

      你得添加了服务器才能运行吧。

      回复
      1. whlzxx
        @大袋鼠

        我发现是我用的机场的问题,换个机场就好了

        回复
  8. whlzxx

    安装之后没有 wifi 选项设置吗?

    回复
    1. @whlzxx

      是啊,我好像没有将 wifi 加进去,我自己用不上…

      回复
  9. whlzxx

    我用网上下的第三方固件,每天晚上 2~3 点,流量就暴涨。自己又不会编译,多谢楼主分享

    回复
  10. 斐讯N1就一个网口怎么当软路由啊

    回复
    1. @鸟叔

      旁路由,数据出入一个网口就够了。

      回复
  11. xd

    请问大佬,这个固件,nuc esxi 可以使用吗?

    回复
    1. @xd

      不能,架构不同,只针对斐讯 N1 盒子。

      回复
  12. wang

    此固件安装完后没有无线功能了么?

    回复
    1. @wang

      我好像没有编译无线进去,我自己用不上。。

      回复
  13. 你这么一提 我发现padavan也有不知来源的华为设备连接的情况
    https://sm.ms/image/1bvq3QZuyFmpDwB

    回复
    1. @HUA.ge

      那要警惕一下了。主路由也是 padavan 固件,倒是没有这个情况,目前只在 n1 的 openwrt 里发现后门。

      回复
  14. 大先生

    大佬,能分享一下您这个编译的固件嘛?尝试自己编译每次都要出错。恩山发布的版本插件太多自己用不上。如果可以,万分感谢🙏

    回复
    1. @大先生

      留个联系方式。

      回复
      1. 大先生
        @大袋鼠

        或者QQ748395051

        回复
        1. @大先生

          QQ无法被搜索到。
          我把固件上传到了云盘。
          百度云:https://pan.baidu.com/s/1_rmBpJ5RmEW8EP6UOA-Wag?pwd=atm7
          天翼云:https://cloud.189.cn/web/share?code=vIJbimjeMrQ3(访问码:cmp9)

          下载完先解压为 .img 文件再制作镜像盘。
          默认IP:192.168.123.2
          默认账号密码:root / password

          回复
          1. 大先生
            @大袋鼠

            已经收到了,十分感谢您🙏

            回复
      2. 大先生
        @大袋鼠

        shadowy01.timely@icloud.com感谢🙏

        回复
  15. 看来这个真的小心了,我原来也折腾过编译,但是几次都没有成功,最后还是用了别人的固件。。关键是三方插件太多,你防不胜防呀!

    回复
    1. @老张博客

      防不胜防。

      别人的固件有个问题是,为了尽量满足大部分人要求,会往里面塞很多插件,而插件多了就难免会提高风险。
      自己编译只能说尽量规避风险,毕竟有些插件还是要用的。

      回复