Back to homepage

默认分类下的文章


逃离中国的数字利维坦

nios34于 February 21, 2021 发表在默认分类中。
《以诺书》中,利维坦是在上帝创造世界的第六天制造的两只怪物中的一只,她是混沌的巨龙,有说像巨蛇有说像鳄鱼,也有说是巨鲸的模样。 自英国哲学家霍布斯的名著《利维坦》问世以后,利维坦成为强势的国家(政府)的代名词。

为何?

比尔·盖茨曾说过:“你甚至不知道和你交流的对方是一条坐在电脑前会敲击键盘的狗。”。

这在 2021 年的现在是个伪命题。以中国举例,百度会精准的推送给你你喜欢玩和吃的狗狗玩具和狗粮。QQ 和微信时时监控着你的位置和你的好朋友。支付宝也许会有你的人脸信息,路边的监控因此将你识别。当然,你在微信和支付宝的流水也不那么安全。总而言之,下面这张漫画很好的呈现了现状。

dog.small.jpg

“他们怎么知道我是狗”

当然,还有一些关于这些行为的消息。常见的我就不多说了,例如:手机 QQ 获取 IMEI、电脑微信存全凭截图、N 多应用读取剪切板这类的就不多说了。我们看些其它的:

-6dc98abc48b8a2e7.jpg

“当然,不止可以用来抓失足妇女,这样是可悲的。 ;-(”

据估计,中国是闭路监控安装数量最多的国家,同时也是人均最多的国家。海康威视的“黑科技”要揪出一个人也不难。再加之基站数据等信息,庞大的数据网将他的触手几乎伸向了我们每一个角落。所以说,逃离中国的数字利维坦是很重要的。

怎么办?

第一条(也是最重要的一条):尽量或者彻底使用现金支付。第三方的网络的支付通常会记录你的信息。

第二条:使用自由软件。如果你想免费使用专有软件并以自己的隐私为代价的话,就去用专有软件吧。

第三条:使用洋葱路由。也许你已经连一条底裤都不剩了,但这样别人不能鉴别你,你泄漏的信息也不会同这时的你联系起来。(btw,这个站点在 t0r 下的访问速度不错)

第四条:戴口罩。防止视频监控的也许有效的手段。不然,为什么反××要禁止带口罩。

第五条:尽量使用去中心化网络。使用诸如 Matrix(即时通讯)、BitTorrent(文件共享协议)的应用。

一些疑问

Q:你怕这些干啥?你又不犯罪。
A:可能你想的隐私和我想的不一样吧。

文章到这里结束。希望大家在监控下好好活着。 :-)

用小爱同学和树莓派控制任何东西的开关

nios34于 February 19, 2021 发表在默认分类中。
使用点灯科技的 Blinker 控制所有东西的开关。

这篇文章不包含任何技术内容,但它绝对可以让你达成标题所说的内容。

必要准备

你应该准备以下的东西:

其它的嘛,应该没了。或许你还需要一部手机。:-)

注册账户

要使用点灯科技的产品当然要注册了。对于我们来说,它的使用是免费的!

首先,前往 diandeng.tech,下载手机应用。打开应用后,界面中间靠右有个用户注册按钮,点它注册。

注册完成后,登录。这个部分完成了。

注册设备

登录后,你发现右上角有个加号,点它。点击独立设备,选择你想要的接入方法。具体选择如下:

如果你的树莓派插了网线,选 WiFi 接入。如果你的树莓派连了 WiFi,选 WiFi 接入。如果你的树莓派用的是蓝牙,选蓝牙接入。简单易懂。

服务商建议选择阿里云(你应该也没别的选择)。现在你应该有了一个 Secret Key,将它记下来。它大概长这样:d941525a5af8

到这里,你就应该已经注册了一个名为“新的设备”的设备。你最好把它的名字改掉,因为现在如果你要打开它需要说这句话:“打开新的设备”。奇怪极了。

安装库

安装 python3 和 pip,使用下面的命令:

apt install -y python3 python3-pip

然后拉下 Blinker 的 Python 库:

git clone https://github.com/blinker-iot/blinker-py.git

在你因为 Github 的垃圾速度砸碎你的树莓派之前,你可以先试试把命令里的 github.com 换成 hub.fastgit.org。我假设你现在已经进入了那个库的目录,运行下面的命令安装依赖:

pip3 install -r requirements.txt

在你因为 PyPI 的垃圾速度砸碎你的树莓派之前,你可以试试在命令中加上 -i https://pypi.tuna.tsinghua.edu.cn/simple。这个命令一般来说,应该不能一次就运行成功。耐心一点,从它的报错信息,找到缺少的对应 lib。然后使用 apt 安装它们。
现在你完成了最难的部分,来让我们安装这个库:

python3 setup.py install

到这里,你已经安装完了所有所需的库。

配置脚本

建立一个文件,将下面的代码扔进去:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Blinker.Blinker import Blinker, BlinkerButton, BlinkerNumber, BlinkerMIOT
from Blinker.BlinkerConfig import *
from Blinker.BlinkerDebug import *
from time import sleep
import controller

auth = 'd941525a5af8'

BLINKER_DEBUG.debugAll()

Blinker.mode('BLINKER_WIFI')
Blinker.miotType('BLINKER_MIOT_OUTLET')
Blinker.begin(auth)

def miotPowerState(state):
    ''' '''

    if state == "true":
        controller.turnon()
    elif state == "false":
        controller.turnoff()

    BlinkerMIOT.powerState(state)
    BlinkerMIOT.print()

def miotQuery(query):
    pass

BlinkerMIOT.attachPowerState(miotPowerState)
BlinkerMIOT.attachQuery(miotQuery)

if __name__ == '__main__':

    while True:
        Blinker.run()
        sleep(1)

聪明的你,应该留意到了 auth 变量需要修改。将它换成你的 Secret Key。
然后在同一个目录下,建立一个包含 turnon 函数和 turnoff 函数的文件名为 controller.py 文件。
turnon 和 turnoff 的作用想必不用多说。将你想让小爱同学调用的代码放进去。

运行脚本

python3 xxx.py

只要进程不退出,就说明没问题。

在米家导入那个设备

打开你的米家应用,点击“我的”。向下滑,应该能看到“其他平台设备”,进入。点击“添加”,找到“点灯科技”,登录你的帐号。
点击“点灯科技”的选项(或者也许你已经在里面了),你应该能看到你的设备名。如果没有,同步设备。

大功告成

如果你没有修改它的默认名字,你现在应该可以通过说“打开新的设备”来调用 turnon 函数了(反之亦然)。如果你把设备名修改成火狐浏览器,那就说“打开火狐浏览器”(这部分的源代码放在下面了)。

这是一个有用的例子

import os

def turnon():
    # 因为我使用 nios34 这个用户名登录,并以 root 权限运行脚本(这是必须的)。
    # 所以 firefox 这个命令以我的身份执行。
    os.system("sudo -u nios34 firefox")

def turnoff():
    # 鲨疯辽。
    os.system("sudo -u nios34 pkill firefox")

扩展链接

家用宽带搭建 Postfix&Dovecot 邮件服务器

nios34于 February 17, 2021 发表在默认分类中。
如果尝试过用 apt 安装 postfix 的朋友应该知道,里面的配置有:Internet Site、Internet with smarthost、Satellite system 和 Local only 五种。那么既然已经有了公网 IP,我们就折腾一下 Postfix 的 Internet 模式吧!

一个邮件服务器可以保护你的信件免受 ** 的监控,还方便进行备份。也可以用来接收家里服务器的日志,例如:Cron 会将脚本的运行结果邮寄到 root。并且我现在就在使用我的自建邮箱接受验证码(

在搭建自己的邮件服务器前,你需要一下几样东西:

好的,让我们开始吧!

通信配置

找到你的 DNS 服务商,建立下面的解析:

@               MX         ddns.domain.name
ddns            A          XXX.XXX.XXX.XXX 

这里的名字并不重要,你可以将其替换成其他的。

进入路由,配置端口映射。主要涉及如下几个端口:

MTA - Postfix

MTA(全称 Mail Transfer Agent)是负责将邮件递送出去的应用。这里使用的实现为 Postfix。

先安装。在 Armbian 下使用这条命令:sudo apt install libsasl2-modules postfix -y。配置界面出现时,选择 Internet Site 或者 Internet with smarthost (如果有的话)。

打开 /etc/postfix/main.cf,编辑下面几个字段:

保存后,打开 /etc/postfix/master.cf,按如下说明编辑:

让其部分变成如下所示的样子(取消注释,增加东西)。

submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth

我们还需要加密对邮件服务器的请求,所以,配置 SSL/TLS。使用 Let's ENC 或者 IDC 提供的 SSL 证书安装。至于安装路径,检查 /etc/postfix/main.cf 这个文件。

其字段 smtpd_tls_cert_file 和 smtpd_tls_key_file 分别代表了要安装证书与密钥的位置。注意,这里使用 Nginx 格式的证书,即 crt 文件加 key 文件。、

安装好证书后,追加 smtpd_use_tls=yes 到 main.cf 文件。 Postfix 配置完成了。

MDA - Dovecot

MDA(全称 Mail Delivery Agent)是负责接受邮件和查看邮件的应用。这里使用的实现为 Dovecot。

安装 Dovecot:apt install dovecot-core dovecot-imapd -y

安装后,删除(备份一下也不错)配置文件 /etc/dovecot/dovecot.conf。然后新建,并加入如下内容:

disable_plaintext_auth = no
mail_privileged_group = mail
mail_location = mbox:~/mail:INBOX=/var/mail/%u
userdb {
    driver = passwd
}
passdb {
    args = %s
    driver = pam
}
protocols = " imap"

protocol imap {
    mail_plugins = " autocreate"
}
plugin {
    autocreate = Trash
    autocreate2 = Sent
    autosubscribe = Trash
    autosubscribe2 = Sent
}

protocol imap {
    mail_plugins = " autocreate"
}
plugin {
    autocreate = Trash
    autocreate2 = Sent
    autosubscribe = Trash
    autosubscribe2 = Sent
}

service auth {
    unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
    }
}

ssl=required
ssl_cert = </path/to/cert.crt
ssl_key = </path/to/cert.key

不要忘记修改证书的路径!

为了更方便的接收验证码(?),我们加上一些别名。打开 /etc/aliases,在后面插入类似这样的文本:

verify: nios34

这样,所有到 verify@domain.name 的邮件都会到 nios34@domain.name 去。使用这个命令,最后更新别名的数据,执行:newaliases

运行邮件服务

启动邮件服务,使用下面的命令:

service postfix restart
service dovecot restart

你或许想让它开机自启:

systemctl enable postfix
systemctl enable dovecot

It didn't work!

发现连不上是很正常的,因为我没有告诉你帐号密码 :-p。要创建一个邮件用户,和创建 Unix 用户是一样的。使用 adduser 或者 useradd 就可以了。

如果出现登陆不了的情况,请进行手动设置。例如,你的邮箱是 aaa@domain.name,你要确保登陆的用户名是 aaa 而非 aaa@domain.name

发现发不出邮件也是很正常的,因为你的 IP 在 spamhaus 的垃圾邮件数据库中。你需要访问 spamhaus.org 解封 IP。、

如果提示的是 DNS 错误,那么你就可以换 Smarthost 了。这说明对方邮件服务器需要检查 IP 的反向 DNS (PTR 记录)。而不管是中国电信、中国联通还是中国移动,都没有那种东西。

It works!

这个简单又没卵用的教程就到这里结束了。:-)
演示