Serveo:一款简单的内网穿透工具,无需安装即可使用

说明:Serveo是一个SSH服务器,仅用于远程端口转发,可以快速将本地端口暴露在外网。官方声称其为Ngrok的绝佳替代品,对其优点是使用现有的SSH客户端,无需安装客户端即可完成端口转发。当用户连接到Serveo时,他们会获得一个公共URL,任何人都可以使用它来连接到他们的localhost服务器。

使用

官方地址:http://serveo.net

使用要求:可以使用SSH,并且能连接到互联网,LinuxWindows等系统都行。

1、转发HTTP
将本地3000端口穿透到公网中,使用命令:

#要转发其它端口的自行替换
ssh -R 80:localhost:3000 serveo.net

第一次如果有提示,选择yes即可,之后会为你随机生成一个serveo.net二级域名,然后就可以使用浏览器间接访问本地的localhost:3000了。

如果要指定二级域名,可以使用命令:

#这里默认为xyz.serveo.net,自行替换即可
ssh -R xyz:80:localhost:3000 serveo.net

此时你就可以在外网使用xyz.serveo.net访问你本地的localhost:3000了。

2、转发SSH
将本地22端口穿透到公网中,使用命令:

#可以自行设置名称,这里默认rats
ssh -R rats:22:localhost:22 serveo.net

接下来就可以登录该内网服务器了,使用命令:

ssh -J serveo.net root@rats

3、转发TCP
将本地1492端口穿透到公网中,使用命令:

#可以自行设置公网端口,这里默认1492
ssh -R 1492:localhost:1492 serveo.net
 

进程守护

这里官方推荐使用AutoSSH,作用是一旦SSH连接超时或停止传递流量,则根据需要重新启动它。

1、安装AutoSSH

#Debian/Ubuntu系统
apt install autossh -y

#CentOS系统
yum install autossh -y

2、使用Systemd

只适用于CentOS 7Debian 8+Ubuntu 16+等。

#输入你的转发命令,去掉开头的ssh即可
serveo="-R 80:localhost:3000 serveo.net"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/autossh.service <<EOF
[Unit]
Description=autossh
After=network.target

[Service]
Type=simple
Environment="AUTOSSH_GATETIME=0"
ExecStart=$(command -v autossh) -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" $serveo
Restart=on-abort

[Install]
WantedBy=multi-user.target
EOF

开始启动并设置开机自启:

systemctl start autossh
systemctl enable autossh

最后更多的命令和使用可以直接查看官方文档→传送门

Holer:一款带Web管理界面的内网穿透工具

说明:我们很多家用电脑或者公司内网电脑都没有公网IP,导致我们在外面的时候就不能直接进行远程连接操作,这里就需要用到内网穿透工具了,一般我们都会用到ngrok、花生壳、frp,这里博主就介绍个工具HolerHoler是一个免费开源的内网穿透工具,它可以将局域网服务器代理到公网的内网穿透工具,支持转发基于TCP协议的报文,而且不需要我们额外使用服务器配置服务端,使用起来非常方便。
 

远程设置

首先我们先需要在被远程的电脑上开启远程桌面设置和配置Holer,本文教程以Windows 7为例,如果其它系统设置不一样的请自行百度/谷歌。
1、设置本地管理员账号和密码
一般电脑超级管理员账号都是Administrator,而密码也许很多人没设置,这里就大概说下方法。
先点击左下角开始-控制面板-添加或删除用户,然后自行设置或修改管理员密码。
-----------------
一个免费的内网穿透工具Holer它是可以将局域网内的服务器代理到公网的内网穿透工具,支持转发基于TCP等协议的报文,现在服务端代码已经开源了,而且带Web管理面板,这里就大概说下,我们就可以拿来自建一个内网穿透服务器,使用效果还不错。

安装服务端

支持系统:WindowsLinux系统,这里只说Linux搭建,建议直接Debain
说明:由于该面板使用的JAVA,所以还是比较消耗内存的,如果内存太小,建议先加一点虚拟内存,可以使用Swap一键脚本.
1、安装JAVA
#CentOS系统
yum install java-1.8.0-openjdk -y

#Debian/Ubuntu系统
apt update
apt install default-jdk -y
2、安装Mysql
#CentOS 6系统
rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum install mysql-community-server -y
service mysqld start
chkconfig mysqld on

#CentOS 7系统
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y
systemctl start mysqld
systemctl enable mysqld

#Debian/Ubuntu系统
apt install mysql-server -y
如果DebianUbuntu在安装期间有弹出窗口要你输入密码就设置一个,没有的话密码就是空格。
修改数据库密码:
#CentOS系统,第一行登录数据库的时候直接Enter跳过,第二行moerats为要修改的密码,自行修改
mysql -u root -p
mysql> set password=password("moerats");
mysql> exit;

#Debian、Ubuntu系统,第一行登录数据库的时候直接Enter跳过,第二行moerats为要修改的密码,自行修改
mysql -u root -p
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('moerats'), PLUGIN='mysql_native_password' WHERE USER='root';
mysql> exit;
最后修改过密码的还需要重启数据库:
#CentOS系统
service mysqld restart

#Debian和Ubuntu系统
systemctl restart mysql
此时Mysql算是安装完成了。
3、安装源码
安装unzip
#CentOS系统
yum install unzip -y

#Debian和Ubuntu系统
apt install unzip -y
下载源码:
wget https://github.com/wisdom-projects/holer/releases/download/v1.1/holer-server-1.1.zip
unzip holer-server-1.1.zip && rm -rf holer-server-1.1.zip
#移动到opt目录,然后进入到源码文件夹
mv holer-server /opt/holer && cd $_
#修改配置文件
nano resources/application.yaml
关键配置如下:
#运行端口
server:
  port: 600

#Mysql数据库用户名和密码
spring:
  datasource:
    username: root
    password: moerats

#域名和nginx目录,可以直接全部删掉,用ip不需要,域名的话,有点不好用
holer
  domain:
    name: your-domain.com
  nginx:
    #home: /usr/local/nginx
    home: C:/nginx-1.14.2
修改后使用Ctrl+xy保存退出,或者可以直接使用FTP等工具直接编辑。
再修改管理员用户名和密码,使用命令:
nano resources/conf/holer-data.sql
adminadmin123为管理员用户名和密码,自行修改,修改完成后同样的使用Ctrl+xy保存退出。
最后启动:
chmod +x holer
./holer start
如果想开机自启的话,这里可以建一个简单的systemd配置文件,且不适用CentOS 6,使用命令:
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/holer.service <Unit
] Description=holer After=network.target [Service] Type=simple ExecStart=$(command -v java) -server -Xms256m -Xmx512m -jar holer-server-1.1.jar WorkingDirectory=/opt/holer Restart=on-failure [Install] WantedBy=multi-user.target EOF
然后启动并设置开机自启:
systemctl start holer
systemctl enable holer
然后就可以使用ip:600访问管理界面了,具体端口以你修改的为准。
然后CentOS系统建议关闭防火墙使用,或者打开部分端口也行,关闭命令:
#CentOS 6系统
service iptables stop
chkconfig iptables off

#CentOS 7系统
systemctl stop firewalld
systemctl disable firewalld
像阿里云等服务器,还需要去安全组那里开放下端口。
 

客户端使用

首先我们需要去用户列表新建一个用户,然后再去端口映射选择该用户,新建一个穿透规则,这里根据需求自行选择,然后设置好时长。
然后就可以直接在客户端使用了,一般客户端有JAVAGO版,使用JAVA的话,需要先安装JAVA环境,所以这里直接选择GO版本,简单粗暴。
首先根据直接的系统和架构下载指定的GO版客户端,每个压缩包里都包含32位和64位,下载地址→传送门
这里拿我们常见的Linux服务器架构来说,直接使用命令:
#下载并解压
wget https://github.com/wisdom-projects/holer/raw/master/Binary/Go/holer-linux-x86.tar.gz
tar -zxvf holer-linux-x86.tar.gz

#32位启动,分别为访问秘钥和服务端ip地址
nohup ./holer-linux-386 -k 7aa8d973bc8e40 -s ip地址 &
#64位启动
nohup ./holer-linux-amd64 -k 7aa8d973bc8e40 -s ip地址 &
如果是Windows系统,先把压缩包下载并解压到D盘根目录,然后按住Win+R,输入cmd进入命令窗口,使用命令:
#进入到D盘根目录
cd D:\

#32位启动,分别为访问秘钥和服务端ip地址
.\holer-windows-386.exe -k 7aa8d973bc8e40 -s ip地址
#64位启动
.\holer-windows-amd64.exe -k 7aa8d973bc8e40 -s ip地址
到这里基本上就运行成功了。
 

域名反代

如果你想使用域名来配置服务器面板的话,就需要安装Web服务器了,这里就直接使用Nginx
1、安装Nginx
#CentOS 6系统
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx -y
service nginx start
chkconfig nginx on

#CentOS 7系统
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx -y
systemctl start nginx
systemctl enable nginx

#Debian/Ubuntu系统
apt install nginx -y
2、申请SSL证书
这里就使用简单粗暴的webroot方式签发Let's Encrypt证书,首先解析好域名并生效。
安装letsencrypt
#CentOS系统
yum install letsencrypt -y

#Debian/Ubuntu系统
apt install letsencrypt -y
申请SSL证书:
#CentOS系统
letsencrypt certonly --webroot -w /usr/share/nginx/html --domain www.urdomain.com

#Debian/Ubuntu系统
letsencrypt certonly --webroot -w /var/www/html --domain www.urdomain.com
请替换成自己域名后运行,期间会要你输入邮箱和A选项啥的,申请后证书文件在/etc/letsencrypt/live
3、新建conf文件
#将下面域名修改成自己的,然后证书路径也修改下,再一起复制进SSH客户端运行
cat > /etc/nginx/conf.d/holer.conf << 'EOF'
server {
    listen 443;
    server_name www.urdomain.com;        ssl on;
    ssl_certificate /etc/letsencrypt/live/www.urdomain.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/www.urdomain.com/privkey.pem;    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
    ssl_session_cache builtin:1000 shared:SSL:10m;
    charset utf-8;
    location /{
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        client_max_body_size       1024m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
        proxy_pass http://127.0.0.1:600/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
server
    {
        listen 80;
        server_name www.urdomain.com;        rewrite ^(.*) https://www.urdomain.com$1 permanent;    }
EOF
重启Nginx生效:
systemctl restart nginx
最后连接的时候,就可以填域名了。
最后要是觉得搭建服务器麻烦,或者不想搭建的,可以使用作者提供的免费服务,更多使用方法移至→传送门

那些让我们仰望的中国女性

中国历史虽然大部分时候都是些猥琐油腻的男人在里面横冲直撞,但却每每在最黑暗的时刻,总是有一些令人振奋的亮色存在,这些亮色,就是那些挺身而出的女人——就像最近的方方女士。特别是在近代中国的历史上,这几乎成了一种令人既自豪又羞愧的现象——自豪的是,这个民族没有跪下的毕竟还有几个女人,羞愧的是,竟然只有几个女人
除了我们耳熟能详已经以身殉道的诸如林昭、张志新这样的巾帼英雄,其实还是很多不为人知的女性,见识之卓越,风骨之壮烈,令人高山仰止,无法忘记
冯元春,四川青神县人,当年是川大生物系学生。在1957年著名的的引蛇出洞中,被划为极右。她的言论放在今天依然可以说是惊世骇俗、振聋发聩。比如她说"土地改革不应该把土地分给农民" "三反、五反是暴力是乱搞",毛泽东是"伪马列主义者""再次出现的刘邦",中共是"残酷的剥削集团"等。
川大组织数千人的大会对冯元春进行揪斗批判,这个年轻的姑娘毫无畏惧,舌战群小,无人能敌。遂以"反革命罪"被逮捕,因拒不认罪,初被判刑15年,入狱后又加5年。在1970年掀起枪毙血潮的"一打三反"中被以"恶攻罪"处以极刑,至死未低头。
同样在"一打三反"中殒命的还有苏州市图书馆副馆长陆兰秀。生于1918年,曾是地下党,还曾经因此被国民党抓过两次。1968年5月,万马齐喑中,她公开发声力挺刘少奇,批评舵手,结果被定为现行反革命罪入狱。狱中这个坚强的女性愤而绝食,并先后撰写了8篇长文,从内政到外交,从科技到思想,方方面面,批判文革,认为文革是历史的倒退。1970年7月4日苏州召开公审大会,陆兰秀被判处死刑,立即执行。
文革前期声势浩大的造神运动中,围绕"三忠于、四无限" "早请示、晚汇报"、"像章热"、"忠字舞"等形式的宗教狂热经久不息。时年23岁的湖南大庸县的女青年丁祖晓于1969年3月17日致信报社,认为个人崇拜不可取,她直言不讳的说:"一切正直的革命人们,清醒头脑,不要受骗,不要甘于做奴隶。起来造忠字的反,革忠字的命。"她还将这些言论制成传单和姐姐丁祖霞一起公开散发,不久姐妹俩被捕。丁祖晓在10个月的时间里,经历了240多场审讯,但从不认罪。
更令人惊叹的是,她的同学,时年22岁的李启顺为拯救丁祖晓,和妹妹李启才一起,用了一个多月的时间,自己刻钢板,油印了二十多份《告革命人民书》,为丁祖晓鸣冤。结果可想而知,这对姐妹也随即入狱。
这两对逆风而行,轰动一时的姐妹花被当时的湘西自治州一起定性为"以丁祖晓、李启顺为首的反革命集团",为突出案情重大,此案件被命名为"特一号"案件。
在"一打三反"中,1970年5月5日,丁祖晓、李启顺被判死刑并于3日后执行。丁祖霞被判二十年徒刑,李启才被判十年徒刑。丁祖晓在死刑前最后一次审讯中说了这么一段话:"我始终认为"忠"应该忠于人民,忠于祖国,忠于真理。不应该忠于哪个人。现在提倡的"忠"字,是搞个人崇拜,是搞奴隶主义。"
这些都是因为思想而惹祸上身的,而江苏省歌舞团的李香芝则是因为反对"陪舞"而殒命。文革爆发之初,李香芝是江苏省歌舞团造反组织"红色造反队"的勤务组成员。上级鼓励大家写大字报揭发修正主义路线,李香芝想来想去没有别的可以揭发,觉得歌舞团挑选演员专门为领导陪舞,把演员当成"舞女",是一种很不好的现象,就为此写了一份大字报。结果被当做抹黑领导的材料而入狱。
在两年的残酷折磨后,绝食抗争的李香芝精神面临崩溃,她写的交代材料全是被侮辱,甚至被强奸的血泪记录。1971年9月2日,李香芝未经任何审判程序,便仓促被拉到省京剧团礼堂参加了一个公判大会,即被绑赴刑场执行枪决。
在肃杀的血潮中,也有幸存下来的。
1966年,19岁的北京外国语学院德语专业学生王容芬写了一封几乎要命的信。这个北京姑娘因为学习德语,对纳粹德国的历史非常熟悉,也给她判断文革提供了某种参照,她觉得红卫兵"和当年的希特勒简直没什么区别"。所以怀着忧国忧民的心,冒天下之大不韪给领导写了一封信,一针见血地说"文化大革命不是一场群众运动,是一个人在用枪杆子运动群众。"
她也知道在当时的环境下这种言论是什么下场,所以写完信后,直接买了四瓶敌敌畏喝了,以死明志。但因为抢救及时,她没死成,随即被捕,在关押了10年后被判无期徒刑,直到1979年才被平反释放。现居德国。
写这样的历史总是让人难过——不仅仅因为它就像是发生在昨天,还因为它看起来并没有终结在昨天。当然,和这些伟大女性一同献身的诸多中国人说起来恐怕难以穷尽,她们所给我立下的为人标准就是:说真话要付出代价,但即便如此还是要说真话。无论什么时候回望,这些代表着这个民族甚至整个人类最可贵品质的勇敢灵魂,总能在黑暗中给予我们力量。
这种力量,正是我们等待黎明,蔑视黑暗的底气所在。
2020/4/9

《數字極權時代生存手記2》個人信息保護的一般性建議

 

1 系統安全
不用中國產操作系統
桌面級操作系統比移動操作系統安全
桌面級操作系統中,安全性 Linux > macOS > Windows
對技術小白而言,用 iOS 比 Android 安全
盡可能用新款設備,及時更新最新版系統
建議使用中國產 Android 手機的用戶通過刷機使用原生 Android 操作系統或者 LineageOS 等類原生的第三方 ROM。中國廠商定制的安卓 ROM 存在監控用戶的安全隱患,此外還有越權收集用戶信息、推送安全補丁不及時、閹割原生系統功能、推送垃圾廣告和信息等諸多缺點。
Android 的優點是系統開放,有能力的用戶可以全面地掌控各應用程序的權限和活動,但學習成本較高;缺點是系統碎片化,非原生系統的手機無法及時接收系統安全更新,使用戶面臨長期暴露在系統漏洞下的風險。iOS 的優點在於沙盒運行機制及嚴格的 App Store 審核規則,遏制了惡意應用程序和流氓軟件的滋生;但其封閉的系統特性和不明確的隱私權限設置使得用戶無法完全知曉應用程序在後台對個人信息的調用活動(iOS 13 已作一定改善)。對於小白級用戶而言,只要及時更新系統,iOS 至少可以在簡捷易用的前提下保證相對的安全。
參見:
The「Dicision」 app in Huawei P20 was found to continuously collect your location and send the data to hicloud.com, the Huawei Cloud(2018-10-03)
Solidot | 一加的氧 OS 會跟蹤用戶的所有活動(2017-10-10)
新京報網 | 百度系兩款APP未經提示開啓隱私權限 | archive
安卓手機刷機教程參見:ch:手機機刷機Why&How(2018-03-12)
2 病毒防護
2.1 一般性建議
iOS 設備:不建議從第三方應用市場(例如 PP助手、愛思助手等)下載破解版應用。如果不具備相應的技術能力,不要盲目「越獄」。
Windows PC:微軟提供的 Windows Defender 軟件基本可以滿足日常的安全保護需要,你也可以選擇 Avira(俗稱「小紅傘」)、Norton Security 等國外殺毒軟件或者 火絨安全軟件 等口碑較好的中國產安全防護軟件。360 安全衛士、騰訊電腦管家和百度衛士是中國產毒瘤軟件的代表,以竊取用戶信息、捆綁安裝全家桶(如 360 安全瀏覽器、360 手機管家等)、佔據大量內存加重卡頓見長,建議盡早將其刪除。
2.2 預防釣魚
不要點開任何通過電子郵件、SMS 短信、即時通訊軟件、SNS 私信等渠道發送的可疑鏈接和文件。

3 數據安全
3.1 定時備份
建議定期使用外置移動硬盤備份電腦、手機中的數據。
3.2 硬盤加密
你可以給電腦硬盤加密來進一步增強數據安全性。macOS 和 Windows 操作系統均內置了硬盤加密工具。在 macOS 下你可以開啓「文件保險箱(FileVault)」(設置 > 安全性與隱私 > 文件保險箱),在 Windows 下你可以選擇 BitLock。 開源的硬盤加密軟件 VeraCrypt 可用於創建虛擬加密硬盤或加密分區,在 Windows 系統下還支持在開機前授權全盤加密。VeraCrypt 支持隱藏加密分區,用戶可以將無害的文件放在外部分區用密碼 1 加密,將真正敏感的文件放在隱藏分區用密碼 2 加密。
3.3 文件加密
對於文件和郵件文本內容都可以採用 PGP (Pretty Good Privacy) 加密。PGP 分為公鑰和私鑰,公鑰用於加密,私鑰用於解密。PGP 還支持給文件添加加密的數字簽名以驗證真偽。使用 PGP 需要使用的軟件是 GnuPG(GNU Privacy Guard,GPG)。
3.4 刪除數據
對於現在高度普及的固态硬盘 (SSD) 而言,數據寫入後無論是刪除文件還是格式化磁盤,都可以被技術手段加以恢復。原先對機械硬盤使用的在刪除文件後填充文件並多次格式化的方法已經難以見效,因此只能轉向全盤加密來保護數據。 若打算轉售或者淘汰未存儲過敏感信息的電子設備,應將設備恢復出廠設置,或循官網指示操作。
參見:
Matters|UglyBull:隐私与数据安全系列:關於徹底刪除這件事
有關密碼學的科普內容 | Veracrypt的基本操作
編程隨想 | 如何用「磁盤加密」對抗警方的【取證軟件】和【刑訊逼供】,兼談數據刪除技巧(2019-02-14)
Apple Support | 在 Mac 上的“磁盘工具”中抹掉并重新格式化储存设备
Apple Support | 使用文件保险箱加密 Mac 数据
4 隱私權限設置
除了不開啓定位就無法使用的地圖類應用外,建議一律關閉定位和通訊錄權限。 對於微信、QQ 、微博、貼吧、知乎、抖音、淘寶等中國產應用,建議在平時關閉調用相機和麥克風權限。
如果你對應用開啓了相冊權限,理論上該應用可以掃描你的整個相冊。如果間歇性開啓相冊權限,其效果與保持開啓並無二致。如果你對於隱私保護要求較高,建議徹底關閉微信、新浪微博等中國產軟件的相冊權限。新版 iOS 系統已經在相冊權限上對讀取和寫入權限做了區分,但社交類軟件的讀寫權限通常是合二為一的,關閉相冊權限的同時意味著你無法將微博上的圖片保存到相冊中,對此你可以使用抓圖應用通過網頁鏈接抓取圖片,或者在瀏覽器中打開鏈接後直接保存。如果你覺得這些額外步驟過於繁瑣影響生活質量,可以考慮同時使用兩部或更多部設備,在其中一部設備上集中安裝、使用中國產軟件。
參見:
Solidot | 小米華為被發現悄悄給予應用過多權限(2018-02-12)
iYouPort|您真的理解應用權限都授予了什麼嗎?這裡是保護您安全的重要知識(2018-06-23)
Solidot | 京東金融 APP 被發現會收集用戶銀行 APP 截圖(2019-02-16)
Telegram 頻道 荔枝木 - https://t.me/lycheewood/5454(2019-02-16)
Telegram 頻道 每日消費電子觀察 - https://t.me/CE_Observe/7537(2019-02-16)
少數派 | 如何才能阻止下一個京東金融「偷」走你的照片?(2019-02-19)

5 加密郵箱
使用中國的 163、126、QQ、新浪、搜狐郵箱服務必然伴隨中國政府對電郵內容的監視。因此無論是使用電子郵件本身,還是使用郵箱註冊 Twitter 等網站賬號,都建議使用國外郵件服務。此外在傳輸敏感信息時,可以考慮使用支持端對端加密的郵箱服務以保證安全。 端對端加密匿名郵箱有ProtonMailTutanotaDisroot.orgMailfenceMailbox.orgRunbox 等。 值得注意的是「端對端加密」只適用於相同郵箱服務的賬戶之間,如果你用 ProtonMail 向 Gamil 用戶發送加密郵件,你還需要通過其他通訊渠道向對方提供解鎖郵件的私鑰。
*「零收件箱」策略
對於高度敏感的郵件往來,可以使用「零收件箱」策略,即雙方閱讀郵件後即時刪除郵件。
參見:hatecpc:#2 匿名郵箱:protonmail
6 瀏覽器
6.1 瀏覽器的選擇
首選 Tor 瀏覽器,其次是 Brave、Firefox。 不要使用中國產安卓手機系統內置的瀏覽器,以及 BAT 出品的百度瀏覽器、QQ瀏覽器、UC瀏覽器等,理由同樣是存在植入後門監視用戶的可能。以小米 MIUI 國內版瀏覽器為例,該瀏覽器直接屏蔽了 Github 的網址,在信息封鎖上比 GFW 更進一步。
6.2 瀏覽器的使用
使用瀏覽器時可以使用隱私模式(也稱「無痕瀏覽」),即不保留歷史記錄,以免受到網站追蹤。 盡可能使用 HTTPS (Hypertext Transfer Protocol Secure,超文本傳輸安全協議) 連接的網頁。HTTPS 經 HTTP (HyperText Transfer Protocol,超文本傳輸協議) 進行通信,並使用 TLS/SSL 對傳輸數據進行加密,它的URL以「https://」作為開頭,瀏覽器往往在其 URL 前顯示鎖的圖形,可憑此對 HTTPS 和不加密的 HTTP 進行區分,部分瀏覽器會直接將 HTTP 標記為「不安全」。不要在 HTTP 連接的網頁中輸入賬號、卡號和密碼等敏感信息,這些數據一旦被攔截會直接以明文形式呈現,進而可能造成信息洩露、財產損失等嚴重後果。
參見:
公司安全部門通知:「百度瀏覽器過度收集用戶隱私信息,請在任何情況下都避免使用」(2016-03-18)
MIUI論壇 | miui自帶瀏覽器7000+攔截網址曝光,厲害了

7 Tor 瀏覽器
VPN 等傳統代理工具只提供一層代理,如果與 VPN 的連接因意外斷開,你的真實 IP 就會暴露。Tor 瀏覽器的多重代理則有助於降低前者發生的風險,同時保障上網的匿名性和安全性。
Tor 瀏覽器的使用門檻較高,其帶來的安全性提升建立在犧牲一定效率的基礎上。編者建議在網絡上積極發表政治觀點的指導級受眾使用 Tor 瀏覽器,以訪問國際互聯網為主要需求、平時只瀏覽資訊的參考級用戶可根據自身需求來判斷是否使用 Tor。
Tor 瀏覽器可以從 Tor 官網下載,該網站在中國大陸已被 GFW 封鎖,訪問時需要使用代理工具。
7.1 Tor 网络设置
初次打開 Tor 瀏覽器時應用會先要求用戶進行 Tor 網絡設置,身處中國大陸的用戶應該勾選「我所在的國家對 Tor 進行了封鎖」,之後選擇「內置網橋」,目前有「obfs4」、「obfs3」和「meek-azure」三種網橋可選。 如果你沒有使用 VPN 或者其他的代理工具,可以選擇中國可用的 meek-azure 網橋(即把 Tor 混淆成訪問微軟 Azure 雲服務的流量)實現僅限於 Tor 的「單重代理」。使用 meek-azure 網橋確實可以連接,但網頁的加載時間太過漫長,所以不作推薦。「obfs4」網橋的速度要比 meek 快不少。香港用戶可以直接使用 Tor,也可搭配代理工具和網橋使用。
7.2 使用雙重代理
如果利用已有的代理工具 + Tor 實現雙重代理,你需要在「內置網橋」選項中選擇「obfs4」網橋,然後勾選「使用代理訪問互聯網」。
接下來你需要填寫自己的代理信息,包括代理類型(SOCKS 4、SOCKS 5、HTTP / HTTPS)、地址、端口、用戶名和密碼(可選)。 如果選擇「SOCKS 5」作為代理類型,則「地址」欄填寫本地 Socks5 監聽地址 (Local Socks5 Address) ,通常為「127.0.0.1」(可以在 Shadowsocks、V2Ray 客戶端查看,下同),「端口」欄填寫本地 Socks5 監聽端口 (Local Socks5 Port),如「1080」。 如果選擇「HTTP / HTTPS」作為代理類型,則「地址」欄填寫本地 HTTP 監聽地址 (Local Http Address) ,仍為「127.0.0.1」,「端口」欄填寫本地 HTTP 監聽端口 (Local Http Port)。
參見:
Tor 官網 securityinabox | Tor Browser for Windows - 網絡匿名及審查規避
編程隨想:「如何翻牆」系列:關於 Tor 的常見問題解答
有關密碼學的科普內容 | Proxy over Tor
8 搜索引擎
百度以競價廣告和詐騙信息著稱,已是公認的業界毒瘤,建議早日棄用;搜狗、360搜索、必應國內版等搜索引擎也是信息封鎖政策的執行者,同樣建議棄用。 國外的搜索引擎,在搜索內容質量上 Google 是首選。如果你對 Google 的監控資本主義商業模式感到擔心,可以使用承諾不監控、不記錄用戶搜索內容的 DuckDuckGo 和 StartPage 等作為替代品,值得一提的是 StartPage 提供 Google 的搜索結果,同時支持基於網頁代理的匿名訪問 (Anonymous View)。DuckDuckGo 和 StartPage 在中國被 GFW 封鎖,需翻牆使用。 在牆內你還可以嘗試使用未被 GFW 封殺的、更小眾的國外搜索引擎,比如來自俄羅斯的 Yandex 。
參見:
百度替代指南,幫你用上更好的搜索引擎 (原文來自「eBooksPlan」:百度替代指南,幫你用上更好的搜索引擎 )
麥琪:百度 為作惡而生 - 中國數字時代
Solidot | 百度代理商被指強推信息流廣告(2017-09-25)
【麻辣總局】「嫩滑」體驗之百度與谷歌 - 中國數字時代 (2018-08-08)
Solidot | 百度再度被指混淆廣告投放和合法結果(2018-12-11)
新聞實驗室|搜索引擎百度已死 - 中國數字時代 (2019-01-22)
方可成 | 我為什麼要寫《搜索引擎百度已死》 - 中國數字時代 (2019-01-23)
端傳媒 | 洛德:在「被豢養」的互聯網世界,批評百度時我們忽略了什麼? (2019-01-25)
對百度的爭議 - 維基百科
9 密碼管理
9.1 密碼設置
使用大小寫字母、數字、符號隨機組合成的長密碼,如果擔心自己記不住可將其記在實體紙張上或者密碼管理器中。
不要使用「123456」等簡單密碼或者「admin」等默認密碼,不要將自己的姓名拼音、出生日期用作密碼。 對不同的賬號設置不同的密碼,不要重復使用同一密碼,以免其中一家網站的數據庫遭遇黑客攻擊「脫庫」後導致其他賬號隨之一並洩漏。
9.2 密碼管理器
使用密碼管理器的好處在於用戶只要記住密碼管理器自身的主密碼,就可以在需要時由密碼管理器應用自動填充你的各類網絡賬戶的複雜密碼,免去了自己記憶密碼的麻煩,也有利於減少在公共場所輸入密碼時被他人旁窺竊取密碼的可能性。
常見的密碼管理器應用有 1PasswordKeePassLastPass 等,iCloud Key Chain(鑰匙串)也可用作密碼管理器。
切勿使用盜版、破解版密碼管理器應用。
*密碼特殊保存
可以考慮將重要的帳號密碼與一般生活所用的帳號密碼分開存放管理,將密碼文本用 PGP 加密後偽裝成其他文件與其他文件混放,然後一併存放於雲端或者移動存儲設備中;或者用紙筆記錄密碼,尋一安全隱秘之處保存。
10 輸入法
輸入法應用為了擴大詞庫,通常會將用戶的個人詞庫上傳到服務器,對中國政府來說獲取本國互聯網企業存儲在境內服務器上的數據易如反掌;有些國內廠商以明文上傳用戶信息,增加了用戶隱私被黑客劫取的風險。
在輸入法的選擇上應同樣遵循盡量不用中國軟件的原則,建議盡量使用系統原生輸入法或由知名國外廠商開發的輸入法:
iPhone/iPad :蘋果原生輸入法、Gboard
Mac:蘋果原生輸入法、鼠鬚管 Squirrel
Android 手機:Gboard
Windows PC:微軟原生輸入法、小狼毫 Weasel
常見中國產輸入法:搜狗輸入法、科大訊飛輸入法、百度輸入法、QQ輸入法、各大中國手機廠商預置的輸入法……

參見:
Solidot | 搜狗輸入法收集用戶隱私信息,未屏蔽爬蟲(2013-06-05)
Solidot | 流行虛擬鍵盤應用洩漏 3100 萬用戶信息(2017-12-06)
Solidot | 一加的 「Badword」 過濾主要影響中國用戶(2018-01-29)
Solidot | 百度手機輸入法被發現會調用錄音功能(2018-07-02)
11 智能家居
安全性:none > Apple > Google、Amazon 等美國廠商 > 小米、阿里等中國廠商
對於像 Amazon Echo 這樣搭載智能語音助手、能夠控制智能家居設備的智能音箱,能不用盡量不用。
參見:
Solidot | 亞馬遜證實 Alexa 記錄了私人對話然後發送給隨機聯絡人
Solidot | 黑客能利用締奇掃地機器人監視屋主
XDA Developers|Google temporarily kills Mi Home integration with Assistant following creepy Xiaomi security camera bug
12 多設備策略
如果你有相應的經濟條件,建議同時使用兩部或更多部手機。 日常使用時,在一部手機上安裝支付寶、微信、新浪微博、抖音/TikTok 等中國產應用(能不用儘量不用),以及 Facebook、Instagram、WhatsApp 等高度普及但私隱保護不佳的應用,不要存儲任何政治敏感性文件;另一部安裝 VPN、Telegram 和 Twitter 等「發夢」用應用,以防服務商收集出賣用戶數據,以及中國政府等第三方利用後門監視手機用戶。
多設備策略可以應對在中國可能發生的警察檢查路人手機的情況(新疆警察檢查路人手機是否存有「暴恐」內容已成常態,網傳北京、蘇州等地警察層在地鐵口掃描路人手機內容)。
參見:
Reuters | At Beijing security fair, an arms race for surveillance tech
Solidot | 中國公司展示能破解 iOS 系統的掃描儀
Matters|UglyBull:隱私與數據安全系列:如何在跨越國境時保護你的手機或電腦

13 虛擬機或 Live USB 系統
使用虛擬機或者 Live USB 模式運行 Linux 操作系統的目的在於將該系統與用戶日常使用的主系統相隔離,這樣即使虛擬機/Live USB 系統受到攻擊或監視,主系統中的文件不會洩露。此外,Linux 系統的特性也使它相比更常用的 Windows 和 macOS 更安全。
虛擬機 (virtual machine, VM)指通過主系統中的虛擬機軟件(如 VirtualBox)中運行虛擬操作系統實例。Live CD/Live USB 指將操作系統文件刻錄到光盤、移動 USB 存儲設備或者 SD 卡上,將其製作成系統啟動盤後插入個人計算機獨立運行,這樣可以實現與主系統的物理隔離。 除了保護主系統安全,一些以 Live USB 模式運行的特別定制的 Linux 發行版還可以強化隱私保護的作用。
Tails 基于 Debian,所有流量都经过 Tor。
Kodachi 同樣基於 Debian,通過強制所有流量經過 VPN + Tor + DNScrypt 來實現匿名,並且系統只在內存/隨機存取記憶體 (Random Access Memory, RAM) 上運行,後者一經斷電就會失去所有數據,不會在存儲介質上留下任何痕跡。
antiS 基於 Slackware Live,特色是中文、粵語、藏語、維語友好,預裝了 Shadowsocks 等能應對中國特殊網絡環境的軟件。你還可以下载 Slackware 的官方源,加入需要的第三方軟件,定製自己的 LiveSlak 系统。
由於 Tor 在中國被封鎖,強制使用 Tor 的 Tails 和 Kodachi 無法直接利用,加之 live 系統不能保存文件和設置,每次使用時重複下載安裝用作前置代理的 Shadowsocks 或 V2Ray 顯然十分不便。對此,除了使用 antiS 或者自行定制系統外,你可以考慮使用路由器翻牆,或者通過 privoxy 將另外一部已經開啟代理的設備作為前置代理。
參見: Matters|UglyBull:隱私與數據安全系列:live 操作系統 antiS

14 自由軟件
參見:
https://www.privacytools.io/
https://prism-break.org/
https://www.f-droid.org/en/ (for Android)

小結
基礎:遠離一切中國產硬件設備、中國大廠開發的軟件和提供的網絡服務,如不得已而用之時可在虛擬機、Live CD/USB 或者獨立設備中隔離進行,避免數據「送中」。
進階:使用開源自由軟件,遠離五眼、九眼、十四眼聯盟的大規模監控項目。

来自telegraph

使用Google Authenticator验证登录

Google Authentication 项目 包含了多个手机平台的一次性验证码生成器的实现,以及一个可插拔的验证认证模块(PAM)。这些实现支持基于 HMAC 的一次性验证码(HOTP)算法(RFC 4226)和基于时间的一次性验证码(TOTP)算法(RFC 6238)。

下面将在 CentOS 上安装并使用 Google Authenticator 做登录的身份验证,当前系统的版本为

CentOS Linux release 7.2.1511 (Core)

安装 Google Authenticator PAM module

  • 确保 ntpd 已安装并正常运行运行

    yum install -y ntpdate
    systemctl start ntpd
    systemctl enable ntpd
    

    ntpdate 是用来自动同步时间的程序,这里启动它并设置它开机自动启动。

  • 安装一些接下去会用到的组件

    yum install -y git make gcc libtool pam-devel
    
  • 编译安装 Google Authenticator PAM module

    git clone https://github.com/google/google-authenticator
    cd google-authenticator/libpam
    ./bootstrap.sh
    ./configure
    make
    make install
    ln -s /usr/local/lib/security/pam_google_authenticator.so /usr/lib64/security/
    

配置 SSH 服务

打开 /etc/ssh/sshd_config 文件

vim /etc/ssh/sshd_config

修改下面字段的配置

ChallengeResponseAuthentication yes
PasswordAuthentication no
PubkeyAuthentication yes
UsePAM yes

然后重启一下 sshd 服务,使配置生效

systemctl restart sshd

这里将 PubkeyAuthentication 配置成了 yes 表示支持公钥验证登录,即使某个账号启用了 Google Authenticator 验证,只要登录者机器的公钥在这个账号的授权下,就可以不输入密码和 Google Authenticator 的认证码直接登录。

配置 PAM

打开 /etc/pam.d/sshd 文件

vim /etc/pam.d/sshd

这里分四种情况来配置

  • 验证密码和认证码,没有启用 Google Authenticator 服务的账号只验证密码(推荐)

    auth substack password-auth
    #...
    auth required pam_google_authenticator.so nullok
    

    password-auth 与 pam_google_authenticator 的先后顺序决定了先输入密码还是先输入认证码。

  • 验证密码和认证码,没有启用 Google Authenticator 服务的账号无法使用密码登录

    auth substack password-auth
    #...
    auth required pam_google_authenticator.so
    
  • 只验证认证码,不验证密码,没有启用 Google Authenticator 服务的账号不用输入密码直接可以成功登录

    #auth substack password-auth
    #...
    auth required pam_google_authenticator.so nullok
    

    注释掉 auth substack password-auth 配置就不会再验证账号密码了。

  • 只验证认证码,不验证密码,没有启用 Google Authenticator 服务的账号无法使用密码登录

    #auth substack password-auth
    #...
    auth required pam_google_authenticator.so
    

启用 Google Authenticator

切换至想要使用 Google Authenticator 来做登录验证的账号,执行下面操作

google-authenticator

然后会出现下面一系列交互式的对话做对应的设置

Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/shenyu@urhost.com%3Fsecret%3DKHMH46EWI2RIRZ53KQTNGHXNP4%26issuer%3Durhost.com # 这里是个二维码 Your new secret key is: KHMH46EWI2RIRZ53KQTNGHXNP4 Your verification code is 753579 Your emergency scratch codes are: 99181037 68865807 88385439 59103432 81045035 

这里会显示一个二维码,如果你的终端终端不支持显示二维码,可以手动打开这个网页链接(墙)来查看二维码或者手动输入后面的密钥(secret key)来代替扫描二维码,之后的操作会用到这个二维码/密钥(secret key)。这里还有一个认证码(verifiction code),暂时不知道有什么用,以及 5 个紧急救助码(emergency scratch code),紧急救助码就是当你无法获取认证码时(比如手机丢了),可以当做认证码来用,每用一个少一个,但其实可以手动添加的,建议如果 root 账户使用 Google Authenticator 的话一定要把紧急救助码另外保存一份。

Do you want me to update your "/home/test/.google_authenticator" file? (y/n) y

是否更新用户的 Google Authenticator 配置文件,选择 y 才能使上面操作对当前用户生效,其实就是在对应用户的 Home 目录下生成了一个 .google_authenticator 文件,如果你想停用这个用户的 Google Authenticator 验证,只需要删除这个用户 Home 目录下的 .google_authenticator 文件就可以了。

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

每次生成的认证码是否同时只允许一个人使用?这里选择 y

By default, tokens are good for 30 seconds. In order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with
poor time synchronization, you can increase the window from its default
size of +-1min (window size of 3) to about +-4min (window size of
17 acceptable tokens).
Do you want to do so? (y/n) n

是否增加时间误差?这里选择 n

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

是否启用次数限制?这里选择 y,默认每 30 秒最多尝试登录 3 次。

上面交互式的设置也可用通过参数一次性设置(推荐)

google-authenticator -t -f -d -l shenyu@urhost.com -i urhost.com -r 3 -R 30 -W 

可以看到,通过参数还可以自定义 发行商 和 标签,执行 google-authenticator -h 来查看所有的参数设置

google-authenticator [<options>]
 -h, --help               Print this message
 -c, --counter-based      Set up counter-based (HOTP) verification
 -t, --time-based         Set up time-based (TOTP) verification
 -d, --disallow-reuse     Disallow reuse of previously used TOTP tokens
 -D, --allow-reuse        Allow reuse of previously used TOTP tokens
 -f, --force              Write file without first confirming with user
 -l, --label=<label>      Override the default label in "otpauth://" URL
 -i, --issuer=<issuer>    Override the default issuer in "otpauth://" URL
 -q, --quiet              Quiet mode
 -Q, --qr-mode={NONE,ANSI,UTF8}
 -r, --rate-limit=N       Limit logins to N per every M seconds
 -R, --rate-time=M        Limit logins to N per every M seconds
 -u, --no-rate-limit      Disable rate-limiting
 -s, --secret=<file>      Specify a non-standard file location
 -S, --step-size=S        Set interval between token refreshes
 -w, --window-size=W      Set window of concurrently valid codes
 -W, --minimal-window     Disable window of concurrently valid codes

设置 Google Authenticator 手机 App

在手机上下载并安装 Google Authenticator

手机类型 App 程序名称
IOS Google Authenticator
Android 谷歌动态口令(请在手机对应的应用商店里搜索下载)

安装完后,打开 Google Authenticator/谷歌动态口令 App,点击 开始设置,选择 扫描条形码 扫描上面 google-authenticator 命令生成的二维码,然后手机上就能看到对应的认证码了。

这里的认证码每 30 秒变化一次,认证码上面的 urhost.com 对应的是 google-authenticator 参数 -i 设置的发行商,认证码下面的 shenyu@urhost.com 对应的是 google-authenticator 参数 -l 设置的标签,如果你没有通过 google-authenticator 的参数设置发行商和标签,默认会使用系统的 hostname 来作为发行商,标签则则使用用户名和 hostname 的组合,格式为 username@hostname,标签其实是后期可以通过手机App来修改的,而发行商则修改不了。

现在重新使用 SSH 登录服务器,就会要求输入密码和 Verification code 来验证身份。如果登陆时遇到问题,请查看日志文件 /var/log/secure

参考链接

翻墙项目

https://github.com/thispc/psiphon

https://github.com/MewX/Psiphon3-for-Linux

https://github.com/fyhqycom?after=Y3Vyc29yOnYyOpK5MjAxOS0wMy0wMlQxMTo1NToxNiswODowMM4KfpBK&tab=repositories

https://github.com/yanue/V2rayU

https://github.com/FQrabbit/SSTap-Rule

https://github.com/postalhq/postal

https://github.com/v2board/v2board

https://github.com/fyhqycom/shadowsocks-mod

https://github.com/Tsuk1ko/SS-Collection

https://github.com/master-coder-ll/v2ray-web-manager

https://github.com/egoist/docute

https://github.com/zengzhengkevin/clashr

https://github.com/lyswhut/lx-music-desktop

https://github.com/872409/music-get

https://github.com/ihciah/rabbit-tcp

https://github.com/rc452860/vnet

https://blog.lgf.im/

---------

https://github.com/shuhm-gh/socks5server

https://github.com/xiexiankun/project_socks5/tree/master/socks5

https://github.com/ifTNT/SocksOverHttp

https://github.com/Ccapton/brook-web

https://github.com/ssoor/socks

https://github.com/lifei6671/ssproxy ,这个可能有问题