使用 Restic 加密增量备份到网盘

转载声明:
本文很大程度上参考了 KnightHart 发布的贴文 restic-全平台nas的加密增量快照备份神器.
但是在原文基础上有增添和修改, 若有侵权, 请联系 [email protected] 删除文章.

前言

搭建家庭 NAS 的前前后后我曾经格盘格过两次, 尽管每次都抢救回来了, 但是自那以后我一直在盘算着备份的主意. 和 KnightHart 的历程大致相同, 我尝试过:

  • 简单的 git 备份 (本地 .git 文件夹不断增大而且大文件有限制)
  • syncthing (是个好东西但是只支持在自己的设备间同步, 占磁盘) 
  • 百度网盘 (不安全、下载限速)
  • rclone + 白嫖的 Google Teamdrive (无法加密, 不支持增量)

解释一下 Google Teamdrive 为什么要加密吼. 前阵子网上出现了很多 Cloudflare Workers 脚本允许 User 给自己分配一个空间无限的, 挂在某大学名下的团队盘, 可以随便往里面扔、取文件, 而且一般 Google Personal Drive 的功能它都有哦. 但是唯一的问题是, 提供脚本的人是可以看到你网盘里的文件, 而且是可以任意上传下载的; 那这不就隐私性全没了吗? 所以如果要备份, 一定要加密的. 另外, Google Teamdrive 有传输速率限制, 所以备份如果不是增量的, 也会很麻烦.

閱讀全文 使用 Restic 加密增量备份到网盘

轉載: 被捕、病逝、主动静默,编程随想停更事件长文分析

前言

自从编程随想在五月中旬彻底失联之后, 我一直在通过各方渠道追踪事件走向. 因为编程随想失踪的特殊和突然性, 我自始至终都没有指望编程随想复出过, 可以说, 他的死亡已经成为定局. 我所期望的, 是他创建出来的所有内容仍然原封不动保留在BlogSpot、Github、分布式互联网上, 这样才能在他死后继续产生价值.

对于到现在为止还蒙在鼓里的网友, 下面转载的这篇文章以一个客观的角度完整地分析了各种可能, 与我这两个月的颅内猜测不谋而合.

正文

本文转载自 hackmd.io
原作者: co-memory

被捕、病逝、主动静默,编程随想停更事件长文分析 2021-06-21

作者: co-memory

【備註】本文在多位「編程隨想」讀者的啟發和協助下定稿。

image alt

人称“墙内技术反共第一奇人”、“翻墙教父”的匿名博主【编程随想】自5月9日起长时间静默,疑似被捕,在海内外中文舆论圈中引发轩然大波。本文详细分析目前的各种传言,并总结热心读者们对下一步应该做什么的一些看法。

编程随想事件简介

编程随想是身处中国大陆的一位匿名反共博客主,人称“墙内技术反共第一奇人”、“翻墙教父”等,在互联网程序员圈中享有与阿桑奇、斯诺登等人齐名的江湖地位。编程随想自09年开博至21年5月9日失联,共发表了712篇博客,内容主要包含六大类:“提升思维能力、普及政治常识、扫盲翻墙姿势、揭露党国嘴脸、网络安全教程”、以及对热门时事的总结和点评。编程随想的文章深入浅出、非常系统化、注重授人以渔,被许多网友视为自己的启蒙者。他坚持活动12年而未被朝廷抓捕的壮举启发和激励了许多有志之士利用其传授的网络匿踪技术来反抗中共极权暴政。

老读者都知道,编程随想曾约定如果自己超过14天静默期在博客、github、BTsync、Twitter、微软网盘等平台任何活动,则一定发生了被捕、意外等情况。不幸的是,自2021年5月9日之后编程随想便一直处于全平台静默的状态,最初一些热心读者在5月23日超过静默期之后开始关注博主的安危,随后又出现了各种是似而非的传言和推测,直到6月14日被海外的媒体和自媒体报道讨论之后引发舆论关注。

为什么关注编程随想的下落?

目前唯一基本能确定的事实就是编程随想出事了,博客不会再更新了。而大家关注的重点在于编程随想到底出了什么事?被捕还是发生了意外。在事实浮出水面前,分析和推测编程随想的下落主要有两个层面的意义:

  1. 道义上,为众人抱薪者不可使其冻毙于街头。如果编程随想被捕,那么大家希望尽量能够提供帮助。
  2. 技术层面,大家比较关心编程随想被捕是不是因为中共在监控技术上取得进步,导致编程随想长期以来推广的强匿名方案失效。该技术方案是以VPN+Tor(洋葱网络)为网络代理、配合双虚拟机隔离操作环境、外加全硬盘加密、反社会工程等手段,确保在各种情况下使用者的操作环境不被外部网络监控设施和内部间谍软件监控跟踪。编程随想被捕的原因关系到许多采用类似技术路线的反共活动家的安危。

最后活动时间与异常

根据编程随想博客的RSS源以及热心读者制作的镜像备份站所展示的时间戳,编程随想最后一篇博文《分享各类电子书(政治、IT、科普、历史、等,97本)》发表于中港台时间2021年5月9日 23时54分20秒,而其最后一条评论区的留言

TO 7单元的网友 感谢你给出“中共百年献礼”的一些建议 🙂 欢迎其他读者继续补充 🙂

则于同日下午16时53分16秒发表于博文《每周转载:从“肿瘤黑幕”看天朝的“医患矛盾”(网文8篇以及俺的点评)》的评论区,时间戳见镜像站链接

此外,编程随想于5月9日的中午和下午分别发表了多条评论区留言,其中每条留言的间隔时间为几分种到十多分钟,看上去十分正常。由于托管其博客的Blogger平台支持延迟发布博文,因此最后一篇博文的发出时间不一定代表博主最后的在线时间。可以肯定的是,编程随想在5月9日当天下午还在正常的与读者互动。

一个异常现象是编程随想的最后一篇博文未被同步到Twitter发布,根据网友统计其Twitter账号通常会在博文发布0-3日内发布更新推文。由于编程随想完全不打理自己的推特账号,其推文发布很可能是由IFTTT之类的服务自动触发,最后一篇博文的同步推文缺失留下了一个谜团。由于IFTTT的自动触发机制偶尔会失效,因此外界很难从这一异常现象中找到线索。 网友汤师爷根据自动推送失效和人工推送补救两种可能性推测,该异像可将编程随想的出事时间界定为5月9日-5月13日之间。

另外一个异象则是编程随想的博客自其静默之后一直正常运行至今。通常来说,如果博客本身出现异常,则可以肯定编程随想被捕了。因此这个正常运行、持续对中共造成伤害的博客则是最大的一个谜团。

目前为止并没有任何关于编程随想下落的可靠消息,如官方案情通报之类。

对编程随想真实处境的三种推测

对于博客停更背后到底发生了什么,目前有三种推测:

  1. 博主被朝廷六扇门抓捕
  2. 博主因疾病或意外身亡
  3. 博主因安全受威胁而主动选择暂时或永久静默

下面对每种说法进行分析

内线爆料被捕假说

第一种推测的线索最早来自发表评论区5月24日的“编程随想家人求助”,之后是6月14日之后的一波“内线”爆料,如反共推友墙国蛙蛤蛤Sapphire等,以及反共自媒体江峰时刻悉尼奶爸 等。在这些【内线爆料】的基础上,自由亚洲、大纪元、新唐人等媒体作了跟进报道,从而让这个说法得到大量传播。另外,【编程随想被捕】是普通人最容易想到的无脑推测,因此最容易被大多数人所接受。

但是,【内线爆料被捕说】有三大疑点:

  1. 【真假内线】的怀疑。尽管爆料的自媒体都拍胸部保证内线身份绝对真实可靠,但未提供足够证明内线身份的文件或【消息细节】,听众只能选择信或不信。另外,内线为什么只找自媒体而不找影响力更大的主流媒体爆料呢?
  2. 【爆料内容缺乏细节】。爆料的共同内容就是确定编程随想被抓了,严刑审讯。墙国蛙哈蛤的消息还加了一条是编程随想上海出差时抓捕的。这个细节刚好和前段时间留言区的【家人求助】内容呼应。
  3. 【博客未被关闭】编程随想的博客和zhao项目目前并没有被关闭。要知道编程随想的博客和揭露高层权贵家族利益关系网的zhao项目对中共伤害极大,如果被捕为真,肯定会关闭这些项目。这个疑点最关键,下面还有详细分析。

除了内线爆料,也有网友 请大家节哀 推测编程随想因为泄露了自己是信息安全行业从业者的身份,被六扇门全国拉清单逐一排查,缩小范围重点长期监控,最终被捕。这种推测成立的前提是编程随想的确是信息安全从业者,co-memory在这里分析过根据公开的行业报告得知中国该行业10年以上技术人员大约只有1-3万人,排查是有可能成功的。但无论是内线还是分析,【被捕说】最大的疑点就是【博客未被关闭】这个事实。

后面的分析会指出

  1. 为什么【被捕】一定会导致【博客被关闭】
  2. 【被捕说】和【病逝说】并不完全相互矛盾
  3. 前两种假说都需要6-18个月的时间才能验证

因病致死或丧失行动力假说

第二种推测主要来自评论区一些分析或所谓知情人爆料。
最早来自5月28日co-memory在评论区的留言,根据编程随想最后半年的博文的数量和原创程度的下降猜测其或出于厌倦而停更,后于6月2日留言中根据6月1日meek留言

悲!昨天给博主发了邮件,刚刚收到博主的回复。
回复的比较简短,博主五月份查出了肝癌晚期,最近正在住院,今后博客恐无法顾及了。让我们一起为博主祈福!

修正为自认为博主因身体原因停更。然而【肝癌说】本身有诸多疑点,如肝癌不会突然丧失行动力,博主也不大可能回此邮件,当然不排除该爆料人故意用烟幕弹的方式模糊这些细节的可能。

另一条所谓知情人爆料是6月18日出现在评论区267楼的匿名网友留言

我目前已经了解的信息!这就是真相!请大家扩散!

博主5月11日已经在北京**三医院离世、真名李yo*、1967年生
博主曾经是中央警卫局信息技术员,2011年因慢性病就已经退休,最近查出脑部肿瘤不愿动手术,直到5月初昏迷,被送医院,没下手术台。
博主后事办完,直到6月2日和3日到他家中被搜查,博主生前所有电脑服务器等设备被带走,另外全部亲戚朋友也都被带走问话。
听闻审讯后他家人一概不知道编程随想的身份信息。
目前定性对李yo定性是间谍泄露国家机密,很多部门正联合调查。
个人隐藏留言sha256:f30251d26c18bd1c41b37ad85f443d61b54d19593e6941f2618e4d20f696c003

稍后,这位网友又继续补充道

趁这天还没亮,我还是再写点!来看下真相在这里哦!

一开始只知道有退休干部人死又出了鬼被定了是间谍,我自己是前天从墙外看了一圈也才了解那位原来是编程随想。
博主被抄家一连两天,家里可以说是被清空。
这博客会不会被清空难说,破解密码我不懂,反正是有技术部门下功夫。
那些生前认识博主的人连手机都已经主动上交、主动配合反间谍工作撇清关系。
这阵子他熟人都是不可能出来发消息。没人知道谁是谁。
随便提醒身在北京网友如果去那个医院核实询问李先生相关信息。
你可能被带走调查。生人问不出东西。
博主自己死了案子还是在弄,现在几个部门都在想办法能抓点活人交上去,认罪替罪。

我看到评论里说警方抓到博主,实际都是几个孙子纯五毛干活。
几个孙子都不清楚谁是谁,什么性质的案子,只会放话搞混乱。
俺句子太多,唯一的留言都在这其他与俺无关,匿了。
博主没看到亡党那天确实令人唏嘘信不信都在这

这条6月18日出现的【老干部病逝说】有很多有意思的地方

  1. 首先它是在【内线爆料被捕说】广泛传播之后几天才出现的,而相比于比较顺理成章的【被捕说】,这条消息包含更多惊喜,也就是包含更多信息量。
  2. 这条消息包含了大量细节,包括编程随想的身份、姓名、出生年月、生病原因、送医的医院,死亡日期(5月11日),抄家日期(6月2、3日)及细节,其亲朋好友的下场、多个部门联合办案的细节。这些细节的自恰程度很高,同时又与大家目前的共识相差很大,因此很不像是随便杜撰的。
  3. 留言者否定了被捕说,并列出了其不清楚什么性质的案子的证据。于此同时,留言者承认自己不懂密码学、不知道博客是否会被清空。这种风格显示其动机并不像是为口舌之快,或蹭流量。

【老干部病逝说】契合了co-memory对编程随想最后半年博文的数量和原创度显著下降的事实,并在一定程度上解释了为什么编程随想有那么多时间去阅读和搜集资料,另外也和【内线爆料被捕说】不完全矛盾。因为几条【内线】爆料出来的相同点是确定编程随想人被抓了(六扇门很容易查阅5月9日-24日之间死亡的人口背景而确定编程随想),但缺乏被捕者的具体细节。另外,来自墙国蛙蛤蛤的【被捕说】列出上海警方和严刑拷打中的细节与【老干部病逝说】矛盾,这些细节有可能是爆料人杜撰,或者在上海抓错了人。

【老干部病逝说】的主要疑点在于爆料人为何能知道如此多的细节,为何只透露李*yo而非全名?排除六扇门专案组人员直接爆料的可能性,那么能了解详细细节的爆料人,只可能是认识某位刚被六扇门调查审问过的编程随想现实生活中的老熟人,而对方私下告诉爆料人这些细节的。

自保而主动暂时或永久静默假说

第三种推测是,编程随想通过内线或技术渠道获知其受到某些重大安全漏洞威胁,进而主动选择暂时甚至永久静默,保全自身。这种可能性曾经被编程随想本人在2017年5月29日的博文《庆贺本博荣获【更高级别朝廷认证】——谈谈近期的“帐号入侵、刷屏、钓鱼”》提到过,网友汤师爷在评论区的109楼也对此作了分析。目前也有不少朋友倾向于这种可能性,但更多是体现了大家对“好人有好报”的一种期待,带安慰性质,而缺乏事实支撑。而编程随想静默的时间越长,该假说也越站不住脚。但是发生明确证明编程随想被捕的事件之前(例如博客或zhao项目被清理),我们永远无法彻底排除这种假说。

co-memory的观点

为什么俺最倾向于病逝假说

首先,编程随想最后半年博文数量和原创度下降的这个事实支持编程随想于2020年12月-2021年5月健康状况恶化的假设。

编程随想历年博文数量如下

► 2021 (10)
► 2020 (28)
► 2019 (39)
► 2018 (31)
► 2017 (34)
► 2016 (37)
► 2015 (61)
► 2014 (76)
► 2013 (96)
► 2012 (109)
► 2011 (58)
► 2010 (40)
► 2009 (93)

单从数量上看,2016年-2019年,编程随想每年平均发布35.25篇博文,2020年大幅下降到28篇,2021年头4个月零9天发布10篇,月均发文数量和2020年持平。

但从原创度看,2020年一共有13篇高原创度博文(扣除每周转载、季度近期安全动态点评、开博周年庆),而2021年头4个月零9天高原创度博文只有两篇,而且其中最近的发表于3月18日普及计算机通讯网络基础知识的博文在原创度上还打折扣,可能是完成了早前的烂尾文。也就是说,编程随想最后半年的原创博文从2020年的月均1.08篇下降到了月均0.35篇(1.5篇/4.3月)至0.46篇(2篇/4.3月)。写原创博文需要投入大量精力和时间,原创度的陡然下降最能反映编程随想2021年的健康状况发生恶化。

另外,从【老干部病逝说】的具体消息中包含的细节,细节的兼容程度,以及对编程随想案子定性为间谍罪的合理性,爆料人的语言方式等诸多方面来看,【老干部病逝说】在目前已有的假说中可信度最高。

同时,【老干部病逝说】和另外的【内部爆料被捕说】是可以兼容的,可能比较外围的内部人士获得了编程随想被找到了的消息,但不知道细节,更不知道是因为他死了才找到的。

编程随想的案子肯定是中共国安部反间谍机构参与的,因为他的zhao项目属于通过搜集公开资料揭露太子党关系网(国家机密),且向他人传授可支持间谍活动的网络匿名技术。抓捕间谍可能由警察执行,但是后续的处理肯定比【寻衅滋事】或【颠覆国家政权】这种针对普通网友或异议人士的罪名严苛得多。故,上海警察抓捕并严刑拷打的说法可信度很低。

不存在六扇门事先盯上了编程随想但又未能获得keyfile的可能性

这一点,俺在博客评论区268楼进行了论证。长话短说,编程随想是超级大案,破案会立大功受大奖,因此专案组必须拿到铁证,即所谓的keyfile(访问编程随想数字身份的数字密钥)。如果本尊被提前盯上,六扇门可以很容易乘其外出时抓捕,不给编程随想销毁keyfile(如将存储介质丢入强酸、微波炉等)的机会。只要人赃俱获,凭借六扇门的专业拷问技能,就算是职业特工的嘴巴也没有撬不开的。

因此,只要编程随想被捕,六扇门一定能拿到keyfile,从而获得访问编程随想数字身份的权限。

如果六扇门获得keyfile,很可能会等6-18个月再关闭博客和zhao项目

首先,keyfile是唯一能证明某个人是编程随想的关键物证,朝廷获得此关键物证后会首先走完6-18个月的内部官僚流程:调查同党,秘密法庭审判,专案组立功授奖升官发财等。现在销毁博客和zhao项目,就是销毁关键物证。

在6-18个月的内部官僚流程走完后,六扇门可以选择关闭博客,也可以选择不对博客和zhao做任何动作。下面分析关闭和不关闭博客对朝廷分别有什么好处和坏处

首先,在政治上,朝廷在拿到keyfile且把所有的流程和个人利益都兑现之后,继续留着博客和zhao就是对朝廷产生持续伤害(持续亏损),清除博客和zhao则能止损且震慑反贼。所以从朝廷的角度,拿到keyfile后在一两年之内清理博客和zhao项目是净收益,如果不处理则是持续伤害。

其次,从技术上,如果朝廷关闭博客和zhao就等于向其他间谍人员、高价值反贼发出了明确信号,可能导致这些对象改变行为方式,而无法抓捕监视。技术上,关闭博客对朝廷是损失。

第三,从派系斗争的角度,不关闭博客和zhao可能有利于朝廷的某些派系,而伤害当权的派系,要知道zhao项目主要揭露的是太子党一类的红色权贵,保留zhao项目有利于草根派系。

综合来看,在当今朝廷强调政治安全,一切政治挂帅,官员宁左勿右的政治风气下,朝廷如果拿到keyfile大概率是会在2022年的20大之前关闭博客和zhao的。如果到时候博客和zhao完好无损,那么编程随想介绍的技术方案还是安全的。然而,确切答案,大伙或许只有等到20大才能揭晓。

编程随想的支持者应该做什么

1 抵制恐慌、传播博客

如果编程随想没有被捕,这种情况下,六扇门一定会想方设法确认编程随想到底是主动静默,还是数字死亡。因为只有确定其数字死亡,才能结案解散专案组。这里俺推荐汤师爷在109楼中根据Google和Blogger的服务条款以及编程随想本人的一年期约定作出的对数字死亡(Cyber Death)的详细分析

那么朝廷可能会怎样确定编程随想是数字死亡呢?编造和传播博主被捕的谣言,要么可以逼迫真身上线辟谣,要么可以弄假成真达到编程随想被捕相同的震慑效果。相当于《让子弹飞》中通过砍头假黄四郎来达到砍头真黄四郎的效果。另外,六扇门专案组在确信编程随想数字死亡的前提下,可能还会随便弄个倒霉网友来冒名顶替邀功请赏

对此,海外反贼可采取冒充编程随想【真身】、大肆传播编程随想博客等策略,逼迫朝廷关闭博客,以证明他们真的抓到了编程随想。反之,如果博客长期屹立不倒,大家也就知道了编程随想真身并没有被抓。

2 将编程随想的故事拍成电影

博客评论区有个将编程随想的故事拍成电影的提议非常好。电影能触及最广泛的大众,也能对几代人产生长远的激励和影响,效果超过推广博客,毕竟博客的内容这么多,涉及技术的部分很多人看不懂,影像是最容易被接受的媒介。当然博客还是要继续推广。

编程随想的故事就是《V字仇杀队》的中国现实版。编程随想在已知自己身患慢性病,生命不多的岁月里,抓住每一分钟坚持十二年,不知启蒙了上百万人,也揭露了极权政府不过是只纸老虎。编程随想每一步都不出差错,耍得地球上最强大的高科技极权朝廷的鹰犬团团转,每年耗费朝廷维稳经费不知多少亿,最终安全地走到了生命的尽头,留给朝廷一堆可能永远无法破解的迷,给六扇门留下一个永远无法报复的天大的嘲讽。而这一切都是在上百万说中文的读者的共同见证之下真实发生的,是数百万人内心深处不可告人的共同记忆。

世界上最牛逼的编剧都想不出这么好的剧本,把编程随想的故事拍成电影,大卖是肯定的,说不定还能成为压垮中共的最后一根稻草。

想想关于六四事件那么多文字图片资料,可能加起来远不如那部有争议的纪录片《天安门》产生的影响大。

3 将编程随想的博客翻译成多国语言介绍给自由世界

将博客翻译成英文以及多国语言是非常踏实的第一步,优先级高于拍电影。要把编程随想的故事讲给老外听,将博文、甚至是评论区翻译成多国语言是必须走的一步。拍电影这件事最终还需要编剧、制片人的参与,只有将编程随想的博客用英文完整的呈现给英文世界,才有可能让潜在的编剧和制片人理解编程随想到底是怎样一个人物,俺认为编程随想就是数字时代的坦克人,甚至更伟大,因为一时的勇气和长期的成功坚持是没法比的。而翻译成英文和多国语言,也才能让世界上更多的人了解编程随想,有了英文世界的群众基础,也为拍电影提前培育了市场。而如果博客不被关的话,将来看了电影的人还能直接来参观现场,这种效果好莱坞都做不出来。

4 网状拓扑的读者社区,填编程随想未完成的坑

许多网友都提到编程随想曾经对读者提出的期望,不要成为粉丝,而是要让读者社区的结构从以编程随想博客为中心的星形拓扑,演变为【网状拓扑】。网状拓扑的社区是去中心化、成员相互联系紧密、像互联网一样有许多重要节点的社区。编程随想一直通过【授人以渔】的方式期望培养出千千万万个编程随想。在读者们对网状拓扑社群可能性的讨论中,联盟式博客群是最大的共识。博客群的意思是读者们分别建立自己的博客,并且在编程随想的博客评论区、zhao项目的issue区等公开。博客平台很多,而且也具有去中心化、抗网络攻击的优点。此外,联盟式博客群还可避免编程随想博客这个中心节点被关闭或轰炸造成的读者社区失联。

对于博客群的内容,网友汤师爷指出,延续编程随想事业最直接的方式,就是帮助他填那些未完成的坑。编程随想的博文分为N个系列,技术、六四、社工、美国、台湾等等,可惜每个系列差不多都是未完待续的烂尾状态,另外有一些几年前写的技术类系列博文也需要与时俱进。读者们可以帮助继续填坑,即便做不到编程随想那么好也没关系,往前推一点是一点。


编辑

  1. 更正错别字、补充超链接、编程随想本尊和汤师爷对主动静默可能性的出处。
  2. 补充【老干部病逝说】的疑点。
  3. 补充【网状拓扑】的【联盟式博客群】构想

分享

后记

关于善后

关于为编程随想善后的工作, 已经有很多网友在做了; 但是客观的说, 绝大多数「打着编程旗号」的尝试我都不认为能成功, 甚至有六扇门钓鱼的嫌疑.

所谓打着编程随想旗号, 就是企图用他的身份继续造成影响, 继续用同一个声音说活. 为什么用同一个声音说话一定失败, 编程随想早就在他的博文中说过了. 撇开个人崇拜的嫌疑, 共用一个声音最可能造成内讧, 每个声音都想当唯一的聲音, 最终结果就是把編程隨想的名字彻底搞臭. 编程随想的博客之所以成功, 很大程度还是他的个人魅力; 旗号可以有, 但是完全复刻个人魅力是不可能成功的.

所以我的意见, 大伙如果想要帮忙, 还是得回到上文中「分布式博客」的方案上, 创建一个自媒体、让互联网上多一个反对的声音是最好的帮忙. 如何创建自媒体, 照葫芦画瓢就可以了, 都在博客里写着呢. 除了古老的博客方案, 目前在 Twitter、Youtube 上造成影响也是另一种选择.

关于编程随想

编程随想的肉身肯定是被消灭了, 不管凶手是肿瘤还是中共, 性质都差不多, 大伙不必过度伤心. 现在大伙都在讨论他的 Keyfile 有没有被警方找到, 其实这大可不必. 我的意见是, 编程随想肯定早就在博文中考虑过他意外死亡的情况了, 加密盘一定还有一道「基于口令」的加密, 而这个口令只存在于他自己的脑海中. 编程随想一死, 那么这个加密盘就算没有被物理摧毁, 警方也照样解不开, 拿到就和没拿到一摸一样. 不然的话, 请问 Github 上的 「zhao」 项目为什么还没有被下线呢?

我无意神化编程随想, 但是他的所有方案都是经过精心考虑的. 「编程随想」这个身份说白了是一个虚拟身份, 它和物理世界中的编程随想的全部联系就在那个 Keyfile 上. 一旦 Keyfile 被销毁 (或者再也无法解密), 虚拟身份和一切物理世界的联系就彻底断开, 就永远活在互联网上了! 而朝廷对这一切都无能为力, 因为「思想是无法被杀死的, 它刀枪不入」! 就算某一天, 谷歌、微软这些大公司决定下线编程随想的一切相关内容, 编程随想仍然存在于分布式网络中, 存在于各位的硬盘中, 是无论如何不可能被抹杀掉了, 他仍然是这个时代的传奇!

关于后续发展

有人问, 人都挂了, 还有什么后续发展的可能呢? 大概率是肯定没有了, 但是不排除编程随想设置了一些 trigger, 在满足一定条件 (比如静默一百天) 下, 自动触发. 比如发布一篇自白, 甚至转让账号等等. 目前这些还都是猜测, 但是我还是呼吁大伙持续关注时间后续, 说不定会有一些意想不到的转折!

Thumbnail: Censorship by Luís Favas
If using the image violates your rights, or there’s anything related to copyright laws, please contact me at [email protected], I will deal with them right away.

Ban 掉來自中國 IP 的流量

前言

隨著我博客來自大陸的流量越來越多, 我逐漸開始有一點擔心. 雖然我已經屏蔽了國內搜索引擎的 Spider, 但是來源於大陸的流量還是和來源於美帝的不相上下. 從各個地方 Ping 的結果也不樂觀, 大陸地區已經出現隨機丟包的現象, 而且很嚴重. 我暫時沒有搞清楚這是針對我的域名還是針對 Cloudflare CDN 的流量.

目前正值建襠百年特別時期, 地鐵站的安檢人員都肉眼可見的增加了數量, 更別說在線管控了. 更加誇張的是, 著名反動博主編程隨想都在5月中旬被消失 ( 我為此傷心了真的非常久 ), 論技術, 我肯定都配不上給編程隨想提鞋, 況且我在用 BugPress 作為博客程序; 要是誰哪天看我不爽來搞我, 我肯定分分鐘去吃國家飯.

然而從我的角度來說, 我肯定不會因為局勢 intense 而乖乖閉嘴: 要我閉嘴不如先去叫我死. 但是隨著我的成長和文章數量的增多, 日後我肯定要浪費大量時間在安全防範上, 而且我目前肉身還在牆內, 物理安全得不到保障.

綜上所述, 雖然我真的很不捨得放棄將近一半的流量, 我還是得這麼做, 幹掉所有來自大陸的流量 (不包括香港, 以及本來就不包括台灣) . 這樣, 至少在我肉身在牆內的階段應該不會有人來找我麻煩 — 這只是一個戰略讓步, 一旦我肉身過牆, 我會立即取消這個設定.

閱讀全文 Ban 掉來自中國 IP 的流量

例行安全檢測 — 加固WordPress

因為我正在使用 cloudflare 提供的內網穿透服務, 相當於整個服務器只對外開放了 Web 服務, 所以我基本是圍繞 Web 服務在加固. 如果讀者的 wordpress 跑在租用的 VPS 上, 極有可能同時開放了數據庫、SSH、FTP 服務, 對這些的防護不在本文討論範圍內.

本文主要是參考了這篇官方教程. 如果你英文好的話, 不妨自己讀一讀這篇教程, 寫的很詳細, 基本每一個改動都有解釋.

檢測手段

https://github.com/wpscanteam/wpscan

下載 wpscan, 然後在終端敲入

wpscan --url https://example.com

可能需要關閉 CF 防火牆.

刪除無關文件

cd /www/wordpress

# 刪除根目錄下無關文件
rm readme.html
rm license.txt

# 遞歸刪除插件、主題 Readme
find . -name readme.txt -type f -print -exec rm -rf {} \;
閱讀全文 例行安全檢測 — 加固WordPress

WordPress + Cloudflared + V2ray 異地組網並隱藏流量

目標

  • 異地組網, 遠程訪問家中環境
  • 結合海外 VPS 翻牆 ( 不在此篇討論 )
  • 使用 V2Ray TLS 加密流量
  • 將 TLS 流量隱藏在正常的 HTTPS 流量中達到混淆目的
  • 使用 Cloudflare 的內網穿透服務, 達到防探測目的 ( 服務器直接和 CF 溝通, 沒有端口暴露 )
  • 使用 Cloudflare 的 CDN 服務, 達到防牆、加速作用

如果你並不是想要做異地組網, 而是想要在 VPS 上跑 (Nginx/Caddy/Apache) + WP + V2Ray, 那麼你其實用不著這麼複雜. 你只需要看這篇文章就可以了.

(這篇博文主要是討論一個沒多少人做過的方案的可行性, 所以你會看到後面還有一大通廢話; 作為教程本文是不合格的, 如果想要尋找教程請出門右轉谷歌搜索. )

網絡拓墣示意圖
閱讀全文 WordPress + Cloudflared + V2ray 異地組網並隱藏流量

編程隨想失聯

編程隨想最後一次線上活動 5月10號, 截至 6月2號 十三年來第一次剛性靜默三週. 近兩年來發文速度明顯放緩, 文章風格也沒有之前尖銳, 極有可能是肉身有恙.
還有兩天就是82日了, 希望可以看到博文更新, 祈禱.

投之亡地然后存
陷之死地然后生
                     -- 《孫子兵法》

WebRTC IP 洩露漏洞

記得惡維事件嗎? 六扇門跨省追捕中學生然後把他們扔進監獄言行拷打一直電到陰毛燒焦為止.
據說有一些完全無辜的網友被攪進這件事情, 就是因為他們曾經瀏覽過或者編輯過惡維, 警方在惡維的數據庫裡查到了他們的 IP.

能上惡維一定是掛了 VPN 的啊? 啊對, WebRTC Leak 就是 Leak 了 VPN 背後的 IP, WebRTC Leak 的原理和 PoC 可以在這裡找到.

這是因為惡維“很走心”的在站點上掛了一個 JS, 利用了 WebRTC 漏洞從而繞過代理紀錄了瀏覽者的真實 IP.

惡俗掛掉了 (舊的), 但是誰都不能說什麼時候某個網站也會掛掉, 帶一大批網友下水 (品蔥, 比方說) . 畢竟正常人誰會注意網站加載了那個 JS, 有沒有用 WebRTC. 說不定 JS 還是加密的, 根本防不勝防.

你可以在 這個網站 檢測自己有沒有中招.

解決方案

手機端如果是使用 Chrome , 除了掛 V2 之類的代理其他根本就無解, Firefox 還可以自己更改設置, Chrome 已經不允許了

PC端的話可以使用插件, 可以改設置 ( 我推薦使用插件的啦 ), 比如 Firefox 就有這款插件.

當然, 電腦手機都可以使用 Tor 瀏覽器來規避這種風險; 我的建議是, 就不要使用手機瞎幾把瀏覽境外反動勢力集團網站.

如果手頭暫時沒有 Tor, 只是想要簡單的瀏覽網頁 ( 沒有登錄等需求 ), 可以使用網頁代理來訪問網站. 你也可以使用我手頭的這個 JSProxy 反向代理, 親測可以防止 WebRTC leak. ( 因為原作者太長時間沒有更新, 這個 JSProxy 好像不能 Pass Cloudflare CDN 保護, 訪問品蔥等網站會一直卡在 JS 詢問頁面上. 所以如果有 Tor 還是用 Tor 吧.

Chrome is bad! 切換到 Firefox

在我的 Macbook 上使用了幾個月 Chrome 下來, 發現使用期間電池損耗非常之快. 在 Google 上搜索之後, 結果幾乎清一色指向了 Keystone, 一個 Chrome 的更新程式. 根據 Chrome is bad, Keystone 將自己植入系統服務, 瘋狂吃資源, 一度讓 WindowServer CPU 佔用達到 80%. Google 聲稱 Keystone 是用來更新 Chrome 的, 我對此存疑. 更新一個程式需要吃 CPU 吃到 80%? 真當我腦癱啊?

然而要改變習慣也不是那麼容易, 我就很不習慣 Safari 和 Edge 的操作介面. 況且我習慣只有一套密碼, 要切換瀏覽器, 就得先把舊瀏覽器上的密碼通通刪除.

提醒: 如果你也想要轉移到 Firefox, 請不要著急著刪除 Chrome, 在轉移插件和密碼時它還用得到.

Chromium 使用報告

為了解決這個問題, 我先嘗試 Chrome 係的 Chromium ( 通過 Brew 安裝 ), 寄希望於它是一個開源軟件, 不會附帶垃圾代碼.

結果我徹徹底底的錯了. Chromium 一不支持 MacArm, ( 而 Chrome 則是支持的 ), 而來佔用比 Chrome 還要高三到五倍, 最離譜的是, 我用 Brew 卸載掉了它居然還在佔我 CPU. 這怎麼忍?

通過 Brew 卸載之後, Chromium 居然還佔用 將近 100% 的 CPU

除了高佔用以外, Chromium 還移除了大部分 Google API. 也就是說, 谷歌翻譯、密碼同步、谷歌帳號等功能全部無法使用. 從這點就可以看出來, 作為一個商業巨頭的 Google, 本質上就是一個財閥, 其第一要務就是盈利.

失望之餘, 我徹底刪除了 Chromium.

轉移並清除 Chrome 保存的資料

匯出密碼

要跳出 Chrome 的舒適圈, 將密碼轉移到 Firefox 上是一個好主意. 然而我現在正在使用 Keepass ( 一個開源密碼管理器 ), 絕大部分密碼並不儲存在瀏覽器裡. 因此我只要登錄到 Google 帳號, 刪除掉儲存在裡面的密碼就可以了.

要先匯出你的密碼, 或是關閉自動保存, 點擊這個鏈接, 登入 Google 帳戶, 點擊 “Export”.

Export 出來的東西可以導入 Keepass, 也可以導入 Firefox. 我個人偏向於前者.

匯出書籤

在 Chrome 中打開這個鏈接, 點擊右上角的三個點然後點擊 “匯出”.

我個人並沒有選擇從 Chrome 匯出書籤, 我覺得切換瀏覽器也是一個小小的新開始, 那些老的書籤大部分我一生都不會再看一次, 不如直接刪掉好了.

我沒有保留除了 Chrome 書籤欄裡的其他任何東西, 而且我其實也基本不使用書籤功能.

匯出插件

遺憾的是, Chrome 並沒有為插件提供一鍵匯出功能. 在 Chrome 種打開這個鏈接, 手動轉移插件吧. 一些插件提供了到匯出配置功能, 會讓整個操作簡單很多.

刪除 Chrome 相關的所有資料

之前的操作只是匯出了這些資料而已, 接下來要做的是完全刪除這些資料.
Chrome 官方提供了一個一鍵 GoodBye 的功能, 我個人感覺還是非常有良心的.

點擊這個鏈接, 確定你已經匯出了所有這些資料之後, 點擊刪除.

這會刪除你帳戶中關於 Chrome 的所有資料.

刪除帳戶活動

以上操作已經完全抹除了你和 Chrome 的關係了, 但是能不能再進一步呢?

瀏覽紀錄除了被儲存在 Chrome 裡面, 還儲存在 Google 活動裡面, 作為 Google 帳戶資料的一部分. 要完全清除, 我們還要執行下面的操作.

光刪除這些並沒有完全刪除你在 Google 留下的痕跡. 接下來需要轉到 Google – 我的活動 來刪除雲端的瀏覽紀錄.

請點擊這個鏈接, 點擊 刪除 – 不限時間 – 全部勾選 – 刪除.

如果以後都不想要 Google 紀錄你的活動, 可以如圖關閉這三個選項.

要刪除其他服務, 請點擊這個鏈接, 自行選擇並刪除.

我個人感覺, 在一一刪除這些資料時, 我處在一種擔憂與爽感並存的狀態. 然而, 在完全刪除之後, 又釋然了. 隱私與自由有的時後和大麻一樣, 都是一種一旦沾上就再也不想失去的東西, 只不過前者是完全無害的.

安裝 Firefox

Firefox 作為一個開源軟件, 而且有大名鼎鼎的 Mozilla 基金會為它背書. Firefox 的主題、插件市場都不下 Chrome AppStore, 也支持同步設置和密碼. 除了手機上的 Firefox 比較不堪以外 (近年來已經大大改善!) , 好像它一直都是 Chrome 的一個絕佳替代方案.

要安裝 Firefox, 可以使用內建的 Brew 包管理器. 順便一提, Firefox 已經支持 M1 晶片.

brew install --cask firefox

成功!

安裝完畢之後, 整個過程基本就完成了! 享受這個新的瀏覽器吧!

定期批量刪除图片 EXIF

EXIF 元信息是一種圖片的附加信息, 一般在拍攝的時候就已經寫進圖片, 而圖片被上傳到 WordPress 之後也會留在裡面.我剛剛看完幾篇關於網絡安全的文章, 於是去查詢了一下維基百科看一看 EXIF 到底有沒有這麽恐怖. 很不幸, 確實有.

圖片可以暴露拍攝的時間和地點, 精確到 GPS 坐標

雖然我的網站並不是非常 Secure, 而我使用密碼的習慣也並不是非常 Solid, 但是修復已經注意到的漏洞, 減少攻擊面總是一件好事. 所以我就設置了一個 Cron, 定時刪除 WordPress 中儲存的所有圖片元信息.

怎麼做到

首先安裝 ExifTool, 一個以 Perl 寫成的開源圖片 EXIF 信息處理工具. 樹莓派是基於 Debian, 所以直接 apt 就可以了

apt update && apt install exiftool

然後定位到 /mnt/data/wordpress/ , 這裡是 WordPress 的根目錄. 我先執行一次清除試一下:

( 方法來自 這個討論串 )

$ find -type f -iname '*.jpg' -exec exiftool -all= {} \;

1 image files updated
1 image files updated
...

然而, 除了修改文件以外, 這個工具還產生了 *.jpg_original 格式的備份, 這些備份我並不需要.

find . -name "*.jpg_original" | xargs rm -rf   

寫進 Cron

明確了作法之後, 就可以將任務寫進 Cron 了.

touch /etc/cron.daily/rm_exif
cat > /etc/cron.daily/rm_exif <<EOF
#!/bin/sh
find /mnt/data/wordpress -type f -iname '*.jpg' -exec exiftool -all= {} \;
find /mnt/data/wordpress -name "*.jpg_original" | xargs rm -rf
find /mnt/data/wordpress -type f -iname '*.jpeg' -exec exiftool -all= {} \;
find /mnt/data/wordpress -name "*.jpeg_original" | xargs rm -rf
find /mnt/data/wordpress -type f -iname '*.png' -exec exiftool -all= {} \;
find /mnt/data/wordpress -name "*.png_original" | xargs rm -rf
find /mnt/data/wordpress -type f -iname '*.gif' -exec exiftool -all= {} \;
find /mnt/data/wordpress -name "*.gif_original" | xargs rm -rf
EOF
chmod +x /etc/cron.daily/rm_exif

完成了!

Cloudflare Tunnel Self WebHosting

由於不習慣用 Hugo 管理內容, 且文章漸漸多了起來, 我在家中的樹莓派上跑起了一個 WordPress. 一切都進行的很順利, 直到我發現發佈這個網站並不是我想像中的那麼容易.

這篇文章是一篇踩坑文, 就是說我會把我在設置中遇到的一切困難完整的紀錄在文章中, 因此你不應當將其當作教程來看. 如果需要教程的話, 我推薦 官方文檔 , 或者 土豆不好吃 的教程.

前言

失敗的嘗試

首先, 我的樹莓派跑在內網, 我需要在路由器上配置一個端口轉發. 借助 Openwrt 的圖像介面, 我輕鬆的完成了轉發.

其次, 我還需要一個公網 IP. 撥打了電信的電話, 我成功的要到了公網 IP.

因為 “維穩” 需求, 電信是封殺 80, 443, 等常見的端口的. 因此我將 443 端口轉發到了 2053 端口上. ( HTTPS 證書是 Cloudflare 的原站證書 ) 2053 端口確定可以訪問.

在然後, 每次撥號的時候 IP 都會改變, 我需要配置一個 DDNS. 為了解決這個問題, 我找到了一個 Cloudflare DDNS 腳本跑在 Openwrt 裡來動態更新我的 IP.

一個類似 ip.justin.education:2053 的地址為免有些太過不友好, 於是我使用 CF-Workers 反向代理網站到 proxy.justin-zhang.workers , 再將其 CNAME 到 justin.education.

如果是靜態頁面這個時候已經可以訪問了, 但是 WordPress 並不支持多個域名, 一直在執著的 301 重定向. 我不能配置其地址為 justin.education, 因為那樣我就沒辦法登錄後台: CF 反代不支持保存 Cookies.

我於是在 Openwrt 上用 Docker 跑了一個 Nginx 來反代網站, 放棄了簡單的端口轉發的方案. 這次成功了, 不過我遇到了一些圖片和CSS不能加載的問題. 安裝插件之後我配置了替換 Header 的規則, 總算是可以看了.

但是由於 CF Workers 的緣故, 評論還是不工作. 而且攻擊者只要知道了我的端口是 2053, 他可以全網搜索 ip.justin.education:2053 的證書來找到我的真是 ip; 這顯然太冒險.

這個方案失敗之後, 還剩下的就是使用 frp 內網穿透的方案. 然而我並不想用我的翻牆服務器來代理網站, 我經常換 ip, 而且不安全, 而且效率太低.

看起來我已經被逼到絕路了.

閱讀全文 Cloudflare Tunnel Self WebHosting