Patrick Robertson af5eb7dac1 Wireguard apps (#1754) | 4 years ago | |
---|---|---|
.github | 4 years ago | |
deploy | 5 years ago | |
documentation | 4 years ago | |
global_vars | 4 years ago | |
inventories | 4 years ago | |
library | 4 years ago | |
playbooks | 4 years ago | |
tests | 4 years ago | |
util | 4 years ago | |
.gitignore | 5 years ago | |
Advanced installation.md | 4 years ago | |
CONTRIBUTING.md | 5 years ago | |
Features.md | 5 years ago | |
Installation.md | 4 years ago | |
LICENSE | 4 years ago | |
README-chs.md | 4 years ago | |
README-fr.md | 4 years ago | |
README-ru.md | 4 years ago | |
README.md | 4 years ago | |
Services.md | 4 years ago | |
Vagrantfile | 5 years ago | |
Vagrantfile.remotetest | 6 years ago | |
ansible.cfg | 4 years ago | |
logo.jpg | 9 years ago | |
requirements.txt | 4 years ago | |
streisand | 4 years ago |
English, Français, 简体中文, Русский | Mirror
欲盖弥彰的Streisand效应.
互联网对我们并不公平。ISP、通信、政治家,他们串通一气封锁那些我们感兴趣和关注的网站和信息。或许是时候*打破枷锁*,来场正面较量了。
在你搞事情之前,认真阅读
Streisand 基于 Ansible ,它可以在远程服务器完成自动配置、打包等工作,Streisand 是将远程服务器自动配置成为多个 VPN 服务及科学上网的工具。
Streisand 运行在你自己的计算机上时(或者你电脑的虚拟机上时),它将把网关部署到你 VPS 提供商的另一个服务器上(通过你自己的API自动生成)。另外,如果 Streisand 运行在 VPS 上,它将会把网关部署到另一个 VPS 上,所以说原先你运行 Streisand 的那个 VPS 就多余了,记得部署完成并获得文档后把它删掉,而部署出来的那个 VPS 你是无法使用 SSH 连接进去的,除非你有公钥(当然这是不可能的,因为整个配置过程都没有提供公钥给你下载或者你想办法把它搞出来)。
在某些情况下,你可能需要运行 Streisand/Ansible 在 VPS 上并将其自身配置为 Streisand 服务器,这种模式适合当你无法在你自己的计算机上运行和安装 Streisand/Ansible 时,或本地与 VPS 之间的 SSH 连接不稳定时。
在本地计算机完成以下所有步骤(也可以在 VPS 上运行)。
确定你的 SSH key 储存在 ~/.ssh/id_rsa.pub 。
如果不曾有过 SSH key,你需要用下面的命令生成一个:
ssh-keygen
安装 Git 。
基于 Debian 和 Ubuntu 的 Linux 发行版
sudo apt install git
在 Fedora
sudo dnf install git
在 macOS 上 (需要通过 Homebrew 进行安装)
brew install git
利用 Python 安装 pip 包管理
基于 Debian 和 Ubuntu 的 Linux 发行版
sudo apt install python-paramiko python-pip python-pycurl python-dev build-essential
在 Fedora
sudo dnf install python-pip
在 macOS 上
sudo easy_install pip sudo pip install pycurl
安装 Ansible 。
在 macOS 上
brew install ansible
在 Linux 和 其他 BSD 上
sudo pip install ansible markupsafe
以下使用 pip 安装的 Python 库根据你所使用的 VPS 供应商不同而不同。如果你准备将目前使用的 VPS 变成网关,可以跳过此步。
亚马逊 EC2
sudo pip install boto boto3
微软云服务
sudo pip install ansible[azure]
sudo pip install "apache-libcloud>=1.17.0"
Linode
sudo pip install linode-api4
Rackspace 云
sudo pip install pyrax
特别需要注意的是如果你使用 Python 是通过 Homebrew 安装的,还需要运行以下命令来确定找到必要的库文件
mkdir -p ~/Library/Python/2.7/lib/python/site-packages echo '/usr/local/lib/python2.7/site-packages' > ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth
从 Streisand 抓取源码
git clone https://github.com/StreisandEffect/streisand.git && cd streisand
执行 Streisand 脚本。
./streisand
根据实际情况从弹出的问题中填写或选择选项,比如服务器的物理位置,它的名字。还有最重要的是 API 信息(可以从问题提示中找到如何提供 API 信息)。
一旦登录信息和 API key 正确无误完成,Streisand 就开始安装到另一个 VPS 上了(或者把你目前的 VPS 变成网关)。
整个配置完成大概需要10分钟左右的样子,完成后,在 Streisand 目录下会生成一个 'generated-docs' 文件夹,里面储存了4个 html 文件,其中包含了网关的 SSL 证书和如何连接的详细说明。当你使用这些方法连接上网关以后,网关里详细描述了设置客户端的方法、需要额外下载的文件,客户端镜像,密钥,只要耐心配置客户端就一切搞定了。
译者注:到这里官方英文配置就告一段落了。译者在自己配置的过程中还遇到一些小麻烦,需要各位朋友注意。
如果你本地使用的计算机无法运行 Streisand ,你可以将正在运行的 VPS 转变为网关。只需要在 VPS 上运行 ./streisand 并在菜单中选择 "Localhost (Advanced)" 就可以了。
但是需要注意的是这个操作是无法挽回的,它将把你正在使用的 VPS 完全转变为网关后,之前如果你在上面搭建博客或者用于测试某些软件,那完成这个操作后,它们将不复存在。
你同样可以将 Streisand 运行在其他 VPS 供应商(提供更好的硬件也没问题,奇葩的 VPS 供应商也行)的 16.04 Ubuntu 上,只需要你在运行 ./streisand 的时候选择菜单中的 "Existing Server (Advanced)" 就可以。你需要提供这个 VPS 的 IP 地址。
这个 VPS 必须使用 $HOME/.ssh/id_rsa
来储存 SSH key,并且可以使用 root 作为默认用户登录 VPS,如果提供商没有给你 root 用户作为默认用户登录,而是别的用户名,比如:ubuntu
,那么在运行 ./streisand
之前需要额外配置 ANSIBLE_SSH_USER
环境变量,比如修改为:ANSIBLE_SSH_USER=ubuntu
。
如果你想做非交互式部署, 你可以在 global_vars/noninteractive
找到配置文件和脚本文件。你需要在配置文件或命令行录入必要信息。
将 Streisand 在 VPS 供应商上运行:
deploy/streisand-new-cloud-server.sh \
--provider digitalocean \
--site-config global_vars/noninteractive/digitalocean-site.yml
将 Streisand 在正在使用中的服务器上运行:
deploy/streisand-local.sh \
--site-config global_vars/noninteractive/local-site.yml
将 Streisand 在已现有的服务器上运行 :
deploy/streisand-existing-cloud-server.sh \
--ip-address 10.10.10.10 \
--ssh-user root \
--site-config global_vars/noninteractive/digitalocean-site.yml
如果你对 Streisand 有任何期待和想法,或者你找到 BUG ,请联系我们并且发 Issue Tracker 。
Jason A. Donenfeld 凭借他的智慧和果敢重新设计一个现代的 VPN,就像我们看到的 WireGuard 。他非常耐心和认真的给予帮助并提供了优质的反馈,在此,向他表示我由衷的感谢。
对 Trevor Smith 在项目上的付出,简直无法形容,非常感谢他,正是他提出了网关的提案,提供了数不胜数反馈,在公布前灵机一动,创建了 html 模板,让现在的一切看上去那么屌。
非常感谢 Paul Wouters 的 The Libreswan Project ,正是他的耐心调试和设置,才让 L2TP/IPsec 工作的那么好。
另外,Joshua Lund开始这个项目工作的时候,他差不多把 Starcadian's 的 'Sunset Blood' 听了300遍(译者:这张专辑节奏感不错)。