隐私指南索引
收集网络上公开且仍在维护的隐私指南
注意:本人不认同各指南所隐含的政治观点,建议仅关注技术层面的内容
额外补充:
1. 不推荐使用任何付费vpn服务,特别是含有推广返利的链接
2. 不要一味听信某些服务和集团(特别是领域内龙头老大)所谓的“保护用户隐私”,例子有很多,比如 DuckDuckGo,Mozilla,Brave Software 等
本文遵循 CC BY-NC-SA 4.0 协议
综合
现代隐私保护指南 - Modern Security Protection Guide - Arch Linux Studio
数字极权时代生存手记
由 Luterngun 维护
Zebra Crossing: an easy-to-use digital safety checklist(译:网络安全懒人包)
有繁中版本,但已过时,建议看英文版
由 Jason Li 维护
Privacy Tools系列(译:网络隐私工具)
Privacy Guides(译:网络隐私指南)
由 Privacy Guides Team 维护
⚡粉碎棱镜
由 Peng Zhong 维护
The Hitchhiker’s Guide to Online Anonymity(译:匿名上网漫游指南)
由 Alex Anderson 维护
TECH SAVIOURS(译:技术救星)
由其社群维护
digital-rights
由 atgfw 维护
personal-security-checklist(译:个人数字安全和隐私自查清单)
由 Lissy93 维护
进阶
Some Weirdos Shit
一些偏执狂 hackers 的站点,以静态网站和简易的 PHP 网站为主,主要部署在静态网站托管服务和如 Tor、i2p、Yggdrasil 一类的 Routing networks 上,极端重视隐私,倡导使用自由软件,反对使用 JavaScript、Cookie 等可能会泄露隐私的技术和如 Google、Cloudflare 一类的侵犯用户隐私的公司。
Cloudflare —— The Great Cloud Wall
Online Spyware Watchdog
Dig Deeper
Kill -9
Shadow Wiki
PrivacyDev
TheFrenchGhosty’s Wiki
P.S. looks like GitHub is not in your threat model
BlackGNU
The Privacy Raccoon - Digital Self-defense against mass surveillance
自托管
概念
自托管
引用自 Wikipedia:
自托管 (self-hosting) 是使用私人网络服务器运行和维护网站或服务的做法,而不是使用某人自己控制之外的服务。自托管使用户可以更好地控制自己的数据、隐私和计算基础设施,并有可能节省成本并提高技能。
服务或内容通常通过自己的硬件在本地提供。通常,“自托管者”通过家庭互联网连接使用较旧的企业级硬件,但他们也使用其他托管提供商的硬件。这仍然被认为是自托管。本篇由于不关注硬件配置和网络环境故不做特殊区分,不会过度强调硬件挑选、网络拓扑等内容。
其它
缘由
为什么要自托管,当然离不开本书的主题:隐私
假如你想要使用一个和个人信息相关的服务,且如果这个服务不具有以下特征的话:
- 本地优先(应用可以脱机工作)
- 端对端加密(E2EE)
那么很遗憾,你的个人信息肯定会以明文形式经过他人实现的服务(你无法掌控)处理,这就意味着你的隐私可能会受到侵犯,你的数据可能会被用于盈利。或者更危言耸听一些,即使使用的服务基于他人运行的自由软件与适当的隐私策略,其本质依旧是服务代替软件,用户定然会失去一定的自由。
自托管可以让你拥有真正的数据主权。通过自托管,你可以选择在自己能够掌控的设备上存储和处理数据,而不需要依赖第三方服务。这意味着你的个人信息决不会经过他人掌控的服务器,不会轻易地被未经授权的人访问。推荐阅读:《自托管宣言》
如果觉得学习、搭建、维护应用及服务的成本过高(例如投入时间与金钱)无法接受,你应该转至《公益服务站点索引》,寻找合适的服务站点,并确保自己的个人信息能在此站点上得到足够的保护。
做法
准备
命令行操作及 shell 环境配置
如果选用了合适的编排工具(后面提及),可省去此步
建议大致掌握以下的知识点:
- 基本的命令行操作
- SSH 登入
- Bash(或其它 Shell)
- GNU Readline(可选,多用于 Shell 与 CLI 工具)
- man(即手册 manual,RTFM)
- 编辑器(GNU nano/Vim/...)
- GNU/Linux, BSD 规范、标准及知识
- 操作系统基本知识(大学计算机基础?)
- FHS(文件系统层次化标准)
- 所选发行版对应的软件包管理器、打包格式规范(可选)
参考链接:
- 南京大学的《操作系统》课程
- 计算机教育中缺失的一课 · the missing semester of your cs education (missing-semester-cn.github.io)
计算机网络及云服务商
建议大致掌握以下的知识点:
- 计算机网络基础(可选)
- 网站主机知识
购买域名时,推荐使用以下网站做域名比价(无利益相关):
免费域名大多数都是二级域名,建议付费购买顶级域名,毕竟免费的才是最贵的。
购买服务器时,建议考虑自己的使用需求,选择合适的云服务商(检查它们的 ToS/服务条款,SLA/服务等级协议,成立年份,客户支持,工作时间,隐私政策,用户评价等)。同样,不要贪小便宜~
简化
如果想要跳过学习、配置环节,则可以考虑下方给出的方案快速自托管应用
PaaS(平台即服务)
严格意义上来说不算是自托管,PaaS 主要面向开发人员和程序员,部署方式与平台由开发者决定
注意:使用 PaaS 意味着依赖第三方服务,会影响所部署服务的安全性与扩展性
软件包
基于软件包的部署方式
大多数 GNU/Linux 或 BSD 发行版的软件仓库中都含有丰富的可用于自托管的软件包,这时使用系统提供的软件包管理器便可以轻松部署你想要搭建的服务(例如:IRC/XMPP 服务端等)。如果软件仓库中缺少所需的软件包,可能需要阅读项目中提供的文档以进行安装,有下面几种可能:
- 使用第三方软件源
- 容器镜像(Docker)
- 手动安装(例如:单二进制文件+配置文件+服务文件)
- ...
当然,如果对命令行操作不够熟悉、想要快速入手或者偏好使用图形化界面进行自托管,可以尝试下面列出的项目
相关部署项目
注意:虽然以下项目均为自由软件,但其中维护的软件包或脚本可能有一定的局限性(例如无法自定义配置或及时更新)
FreedomBox 是基于 Debian 的自由软件家庭服务器操作系统,由 FreedomBox 基金会支持。FreedomBox 于 2010 年推出,现已从一个软件系统发展成为一个生态系统,包括一个 DIY 社区和一些商业产品
引用自 Wikipedia
可以在 Debian 发行版上直接安装,且 Freedombox 仅依赖 Debian 软件包,故支持应用较少。Debian Wiki 上也有相关文档
YunoHost 是基于 Debian GNU/Linux 的发行版,由自由软件组成,旨在为广义上的自托管提供便利。
引用自 Wikipedia
需使用第三方软件源进行安装,且有自己的打包格式(包含了安装、更新、备份、卸载等脚本)
推荐阅读:像装应用一样轻松自建服务:YunoHost 使用指南
- Sandstorm
- 参考 Self-hosting Solutions - awesome-selfhosted 中未带有 Docker 标签的项目
容器化
基于容器化(Docker/Podman)的部署方式
区别于上述的裸机(bare metal)部署,容器化部署类似于在机器上使用虚拟机,但性能开销更小、专注于项目本身(仅关注容器内1号进程及其子进程),对比裸机部署更具有可移植性、便捷性与隔离性。同时很多项目也会提供容器部署的文档与镜像,所以目前来看容器化部署方式有很高的流行度。但也有一些情境不适合使用容器化部署:
- 应用足够简单以至于不需要容器化(例如:静态网页、单二进制应用等)
- 应用对性能有很高要求(例如:大量的 IO 操作)
- ...
同时,容器编排方式也是各式各样:命令行运行、基于 YAML 配置编排、抑或是使用后面提及的 IaC 工具组织,具体可以根据个人需求进行选择。比如说应用无需过多配置开箱即用,则可以直接使用命令行运行;应用需要使用数据库、Web 服务器等服务则可以使用 Compose 文件编排;如此云云
集群部署
集群部署(Docker Swarm/K8s/K3s)暂不提及,因为可能超出了自托管的需求。想要了解的话可以查阅下列网站:
相关项目
参考 Self-hosting Solutions - awesome-selfhosted 中带有 Docker 标签的项目
接下来是 laC(基础设施即代码)的方案,需要学习如何配置项目与编排,请考虑这是否值得(over-engineered)
Ansible
Ansible (software) - Wikipedia
一言以蔽之:基于 YAML 编写的 Shell scripts,但是支持批量远程执行、使用简单灵活、社区资源丰富,还支持图形化界面(第三方应用)
相关项目
- Self-hosting Solutions - awesome-selfhosted 中带有 Ansible 标签的项目
- HomelabOS 用 Ansible 部署 Docker
- DebOps - Your Debian-based data center in a box
- Code Forges (GitHub/GitLab/Codeberg/...) 中有很多分享 Ansible Playbooks/Roles 的代码库,建议搜索 infrastructure,语言筛选 Jinja
NixOS/GNU Guix
俺没用过,希望有人分享一下使用经验与技巧
相关项目
Code Forges (GitHub/GitLab/Codeberg/...) 中有很多分享 NixOS/GNU Guix 配置的代码库,建议搜索 infrastructure,语言筛选 Nix/Scheme
不推荐
服务器运维管理面板
如果你无法接受长时间在命令行上操作,可以尝试这些面板,但有很多理由不去使用它们:
- 不透明,不自由,不安全(扩大了攻击面)
- 占用过多服务器资源
- 面向的用户群体不是自托管者(建站/从业人员)
- 大多数面板由中国企业开发,有上报数据的嫌疑(no opt-out)
一键脚本
一般来说,一键脚本=项目开发者自己编写的 shell script。虽然安装简单,但是不适合后续的配置修改、更新备份等操作。所有的应用应尽可能统一使用同一个编排工具进行搭建与维护。
进阶
下面将介绍一些能利于自托管服务后期使用/维护的方法
监控
为什么要监控:提高服务质量、降低维护成本
要监控什么:服务器本身、服务健康状况
怎么监控:Zabbix/Grafana/Uptime-kuma
更新
及时跟进上游版本,可以减少安全风险,增加更多特性
软件包
尽量避免使用
deb-based: UnattendedUpgrades
rpm-based: DNF Automatic
Arch: just no
Docker
Podman 有 auto-update
Watchtower - A container-based solution for automating Docker container base image updates.
Diun - Receive notifications when an image is updated on a Docker registry
自定义
crontab + shell scripts or whatever
备份
及时备份关键数据,可以减少意外损失,方便恢复服务
策略
全盘备份:常见于服务商的快照功能
特定路径备份:仅备份关键数据
还有什么 3-2-1 原则 4-3-2-1 原则
封装(wrapper)
鉴权
可选,减少额外注册/登录流程,集中化认证授权
协议
- 本地
- SSO
- LDAP
- SAML
- OAuth
- OpenID
- ...
应用
参考
Wiki
r/SelfHosted Wiki
r/homelab Wiki
The Homelab Wiki
列表
awesome-selfhosted
庞大的自托管项目列表
selfhosted-music-overview
聚焦于自托管音乐服务端和客户端
教程
LandChad.net
Luke Smith 发起的项目
Comfy.Guide
Denshi 发起的项目
Thomas Nagy / Freedom fighters · GitLab
secuchart 维护者发起的项目
博/播客
selfh.st - Self-hosted content and software
周刊,每周五更新
其提供的调查问卷非常值得参考:2023 Self-Host User Survey Results (selfh.st)
老苏的blog
文章主要与群晖和 Docker 相关,可以视作自托管项目推荐
社区
Lemmy
Kbin
Awesome list系列
项目中的内容、Issues和PRs都值得借鉴与研究
合集
合集中的推荐项目
未爬取的推荐项目
引用其README中序言:
渴求数据的大公司主导着数字世界,但很少或根本不尊重你的隐私。迁移到强烈强调安全的开源应用程序将有助于阻止企业、政府和黑客记录、存储或出售你的个人数据。
注意:请记住,没有任何软件是完美的,遵循良好的安全实践是很重要的。
替代品
替代可能会侵犯隐私的应用/服务
综合
一些隐私不友好软件的替代指南 多数无中文
应用(客户端)
聊天软件
SecuChart - secure messenger feature comparison
聊天软件安全功能的比较
FREE (LIBRE) MESSENGERS
其中推荐 Messenger comparisons,收集了较多可靠的IM比较表格
浏览器
TBD
应用(服务端)
电子邮箱
Free Software Webmail Systems
此页面是一个供有兴趣在网络上发送电子邮件而又不损害其自由的人们查找和共享资源的地方。自由的网页邮件服务有多种不错的选择。
Email server security list
需要明确的是:本列表并不想对电子邮件提供商或其服务的质量做任何声明。要提供安全可靠的电子邮件服务,需要的不仅仅是加密。
IM (XMPP/Matrix)
XMPP Providers
哪个 XMPP 提供商最适合您?
本网站提供了一份精心挑选的 XMPP 提供商列表,供您选择。
Public Matrix Homeserver List
欢迎光临!本网站旨在帮助您决定在哪个主服务器上开设账户。请注意,虽然所有列出的服务器都遵守绝对标准,但我们还是建议您在信任某个主服务器之前进行充分的调查。毕竟,他们可以访问您账号中所有未加密的数据!
SNS (Fediverse|联邦宇宙)
见 联邦宇宙
开源替代前端
强烈推荐 后续会展开写写使用技巧 尤其是跨平台客户端与搭建(?)
Alternative 系列
Alternative Frontends
alternative-front-ends
流行的互联网平台(如YouTube、Twitter等)的开源替代前端概述
Alternative Internet
开源替代前端相关项目
Farside
用于各种前端服务的智能重定向网关
Frontend and other services instances list
自动更新的替代前端实例列表
Public Send instances
公共Send实例的列表
nitter-instances
Nitter实例的运行时间监控。
searx-instances-uptime/searx-instances-uptime
Searx/SearxNG实例的运行时间监控。
librex-instances-upptime
LibreX实例的运行时间监控。
whoogle-instances-upptime
Whoogle实例的运行时间监控。
invidious-instances-upptime
Invidious实例的运行时间监控。
piped-uptime
Piped实例的运行时间监控。
decentral_services
自愿为公众(或激进分子)提供可用工具的技术集体名单
Privacy Redirector
将流行的社交媒体平台重定向到其替代开源前端的 userscript (油猴脚本)
Privacy Redirect
一个简单的浏览器扩展,将Twitter、YouTube、Instagram和谷歌地图的请求重定向到隐私友好的替代品。
LibRedirect
一个浏览器扩展,可将流行的网站重定向到其他前端和后端
为上者的fork
其它
未分类/整理内容
联邦宇宙
什么是联邦宇宙(Fediverse)?
答:引用 About Fediverse - Fediverse.Party 翻译:
联邦宇宙是一个由两个词组成的新词。"联邦 "+"宇宙"
它是一个在全球无数台电脑上运行的免费开放软件的联合社交网络。许多独立的服务器相互连接,允许人们相互交流。没有一个中央站点:你选择一个服务器来注册。这确保了一些分散化和数据的主权。Fediverse(也叫Fedi)没有内置的广告,没有棘手的算法,没有一个大公司来主导规则。相反,我们有志同道合的人组成的小型舒适社区。欢迎加入!Fediverse社交网络与主流平台(Facebook、Twitter、Instagram、Pinterest等)不同。主流平台将数以百万计的用户集中在一个网站上,他们控制所有的决策,执行审查制度,并囤积用户的数据用于商业利润和间谍活动。另一方面,Fediverse平台是由来自世界各地的人组成的社区开发的,独立于任何公司或官方机构。你可以在任何你喜欢的Fediverse网站上自由注册。你可以选择负责你的数据的人--你的服务器的管理员。如果你有技术知识,你可以为你的朋友和家人管理自己的服务器,与全网成千上万的其他独立服务器连接。Fediverse是一个自治的宇宙,权力和数据是分散的,分散在多个土地上。
更多介绍:
联邦宇宙站点列表
由多个站点提供:
- nodes.fediverse.party
- fedidb.org
- fediverse.observer
- the-federation.info
- fediverse.to
- fedi.directory
- instances.social
- fediverse.space
相关合集项目
Delightful lists 系列
Awesome lists 系列
使用技巧
西语
面向西语用户