麒麟安全网络锦标赛:国内匿名网络先导配置
本教程以ubuntu 20.04系统为例,设置Tor+ssr前置代理的匿名网络服务,方便各位选手做好参赛前的准备;
前期硬件准备:Win10开发机一台、Linux系统电脑一台(新安装)、海外VPS
准备作为前置代理的SSR,服务器尽量选择靠近中国的,如港澳台、日本、俄罗斯都是不错的选择,具体vps供应商可以来这里找(该步骤也以ubuntu 20.04系统作为示例):
Python
# 现金付款 # 虚拟货币付款 |
在上述vps中搭建shadowsocks服务端和设置BBR加速
首先系统升级更新到最新状态:
SQL
sudo apt update sudo apt upgrade |
接着输入python3看看vps是否已经内置runtime,如果没有自行安装:
Nginx
sudo apt install python3-pip |
然后装shadowsocks软件包:
CSS
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh chmod +x ssr.sh bash ssr.sh |
自定义各项参数,编辑完后,程序自动启动。
JSON
{ "server": "0.0.0.0", "server_ipv6": "::", "server_port": 8080, // 改为自己的 "local_address": "127.0.0.1", "local_port": 1080,
"password": "password", "method": "aes-256-cfb", "protocol": "auth_aes128_sha1", "protocol_param": "", "obfs": "plain", "obfs_param": "", "speed_limit_per_con": 0, "speed_limit_per_user": 0,
"additional_ports" : {}, "timeout": 120, "udp_timeout": 60, "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": false } |
之后是加速必备的BBR:
CSS
sudo wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh |
验证方法:
Ruby
$ uname -r # 查看内核版本,显示为最新版就表示 OK 了 # ———————————— $ sysctl net.ipv4.tcp_available_congestion_control # 返回值一般为: # net.ipv4.tcp_available_congestion_control = bbr cubic reno # ———————————— $ sysctl net.ipv4.tcp_congestion_control # 返回值一般为: # net.ipv4.tcp_congestion_control = bbr # ———————————— $ sysctl net.core.default_qdisc # 返回值一般为: # net.core.default_qdisc = fq # ———————————— $ lsmod | grep bbr # 返回值有 tcp_bbr 模块即说明bbr已启动。 |
有的vps网络管理比较严格,需要手动开一下端口允许入口流量:
JSON
sudo ufw allow 8080 // 端口改为自己的 |
开发机安装shadowsocks客户端连接服务端
装完了服务端,肯定是需要测试下可用性的;这里给大家提供一个win平台可运行的图形化shadowsocks客户端SSTap:
安装好后按以下步骤填入上边设置好的信息:
选好代理模式后点击「连接」,如果能正常连接且流畅访问谷歌、油管、推特等国外网站,说明服务端配置成功。
Linux电脑创建shadowsocks客户端
准备一台独立的电脑,刷好Linux系统,启动全磁盘加密,且绝对不要插网线、绝对不要按安装过程中所谓的提示连接wifi、绝对不要以任何形式裸连!注意绝对不要沿用自己过去用过的电脑,这台电脑上绝对不能存储任何私人信息和任何能关联到你的信息;之后回到win开发机,在SSTap主界面代理模式处选择「全局」后启用连接,这一步是为了创建临时网络供Linux电脑使用:
直接菜单处搜索,打开移动热点设置并开启,可以编辑热点名称和密码:
查看电脑里的网络连接,并找出由SSTap创建的虚拟网(红框);在下图中,红框下方刚好就是上一步设置移动热点时创建的网络,名称为「本地连接* 2」,每个人设置后名称可能各有不同,请记住这个网络的名称,下边会用到:
右键点击上图红框所示的虚拟网络连接,选择属性-共享,勾选「允许其他……来连接」,将「家庭网络连接」设置为刚刚记住的那个无线热点,如下图所示:
此时将Linux电脑连接win10开发机的热点,这样至少它也套了一层代理,且可以畅通无阻地连接外网了;然后我们就可以顺利地进行tor的配置,首先还是系统升级更新到最新状态:
SQL
sudo apt update sudo apt upgrade |
接着装shadowsocks软件包:
Shell
wget https://raw.githubusercontent.com/the0demiurge/CharlesScripts/master/charles/bin/ssr chmod +x ssr cp ssr /usr/local/bin/ssr sudo apt-get install jq
# 安装ssr客户端 ssr install
# 命令行输入ssr可以弹出帮助
# 配置并启动 # (配置文件在:~/.local/share/shadowsocksr/config.json,使用nano进入修改)
# 卸载 ssr uninstall |
配置一览:
JSON
{ "server": "100.100.100.100", // 改为自己的服务端ip "server_ipv6": "::", "server_port": 8080, // 改为自己的服务端port "local_address": "127.0.0.1", "local_port": 1080,
"password": "password", // 改为自己的服务端密码 "method": "aes-256-cfb", // 改为自己的服务端加密方式 "protocol": "auth_aes128_sha1", // 改为自己的服务端协议 "protocol_param": "", "obfs": "plain", "obfs_param": "", "speed_limit_per_con": 0, "speed_limit_per_user": 0,
"additional_ports" : {}, "timeout": 120, "udp_timeout": 60, "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": false } |
Linux电脑配置&加入Tor网络
运行命令以在sources.list中启用https的使用:
JSON
sudo apt install apt-transport-https |
运行命令以添加Tor存储库:
Nginx
sudo sh -c 'echo "deb [arch=amd64] https://deb.torproject.org/torproject.org $(lsb_release -sc) main" >> /etc/apt/sources.list.d/tor-project.list' |
注1:对于arm64(例如Rasperry Pi),32位Ubuntu 18.04 / 16.04,必须把[arch=amd64]从命令中删除;
注2:对于Linux Mint和其他基于Ubuntu的系统,$(lsb_release -sc)在命令中替换为系统所基于的Ubuntu代码名(例如,focus,bionic,groovy);
密钥会定期更新,从下面的链接下载最新的keyring .deb软件包:
CSS |
然后安装它:
Nginx
sudo apt install ./deb.torproject.org-keyring_2020.11.18_all.deb |
最后,刷新软件包缓存并通过2个命令安装Tor:
SQL
sudo apt update sudo apt install tor |
通过以下命令验证是否安装成功:
Nginx
tor --version |
如果弹出来的版本号为0.4.5.8或者更新,则安装成功;接着开始配置前置代理,将Tor与本地shadowsocks客户端桥接起来:
JSON
sudo nano /etc/tor/torrc |
推荐把这个配置文件全部的注释都看一遍,对Tor提供的服务有个大致的了解;然后把以下配置添加到该文件的最底部:
JSON
# 本机连接Tor网络的端口,默认为9050 SocksPort 9050
# 可加可不加,加了就代表别人可以通过你的电脑直接加入Tor网络,类似于软路由 # SocksPort 0.0.0.0:9051
# 设置哪些ip的机器可使用该Tor服务(此配置仅允许本地访问) SocksPolicy accept 127.0.0.1 SocksPolicy reject
# 桥接本地shadowsocks作为前置代理 Socks5Proxy 127.0.0.1:1080 |
Ctrl+O保存Ctrl+X退出;然后断开与Win开发机的连接,开发机这边也停用热点,相当于临时网络的使用到此为止了;接着在ubuntu无网络连接的情况下,先后启用shadowsocks客户端和Tor:
Nginx
ssr start sudo /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 |
接着在设置界面配置网络代理服务器,端口填写上述在torcc中配置的数字:
这个时候就可以连接wifi了,然后运行下列命令检查出口网络的ip信息:
JSON
curl ipinfo.io |
如果这个地址是国外的某个地区,且每5分钟变换一次,说明配置成功,可以参加我们的网络安全竞赛了:
此外,我们还应该设置开机自动启动shadowsocks客户端(Tor安装后自动设置为开机启动):
Bash
sudo cp -r ~/.local/share/shadowsocksr/* /root/.local/share/shadowsocksr/ |
Bash
sudo nano /etc/systemd/system/rc-local.service |
填入以下信息并保存:
Makefile
[Unit] Description=/etc/rc.local Compatibility Documentation=man:systemd-rc-local-generator(8) ConditionFileIsExecutable=/etc/rc.local After=network.target
[Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes GuessMainPID=no |
新建执行脚本并保存:
Nginx
sudo nano /etc/rc.local |
Bash
#!/bin/bash -e sudo sleep 5 sudo ssr start exit 0 |
这样开机就能使用匿名网络了~