2016年4月30日 星期六

shadowscoks流量走TOR洋蔥網絡訪問互聯網

前言

一向對 TOR 的匿名性甚為推崇,以前旅居匪區,
靠著它訪問自由的互聯網,匿名度也高,近年GFW
TOR 大力封鎖,網橋連接也失效,只能使用
obsfproxy的網橋,或者用meek中繼連接洋蔥網絡,
但取得obfsproxy網橋要通過郵件,且非常稀少,
後者使用大型云端服務器,利用混跡於商業公司
的流量, 使GFW不敢封鎖,因怕誤傷,但難保某
一天照樣封殺,於是想到利用shadowsock,通過
iptales規則把流量導向 TOR ,這應該是一個方法。


安裝

系統為ubuntu 14.04 x86-minimal LTS,vps為128/128 vswap nat vps

步驟如是,以root登錄vps

1) 編輯 /etc/apt/sources.list,加入

    deb http://deb.torproject.org/torproject.org trusty main
    deb-src http://deb.torproject.org/torproject.org trusty main

    每句一行,儲存離開

2) 執行以下命令

   gpg --keyserver keys.gnupg.net --recv 886DDD89
   gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
   apt-get update && apt-get upgrade -y
   apt-get install tor deb.torproject.org-keyring

   這樣就安裝好了tor,它會以Deamon運行,其實Ubuntu 14.04的軟件源也有,
   只是版本較舊,為免有漏洞之類,建議從官網軟件源安裝

3) 編輯tor的設置文件 /etc/tor/torrc ,在最底加入

   ClientOnly 0
   StrictNodes 1
   ExcludeNodes {hk},{cn},{mo},{ru}
   ExitNodes {us},{jp},{sg},{kp},{gb},{nz},{au},{tw}

   這四行參數,第一行是設置為客戶端,這個可有可無,默認設定也是
   第二行是作為TOR運行排除節點的參數,TOR會根據排除節點設定網路
   第三行是設定要排除的節點,這裡是香港,支國,澳門和俄羅斯。
   第四行是設置出口,這裡除英美外,都是亞洲出口節點,希望速度提高

4) 下載shadowsocks-libev編譯

   安裝git , apt-get install git ,然後執行
   git clone https://github.com/shadowsocks/shadowsocks-libev.git
   cd shadowsocks-libev
   apt-get install build-essential autoconf libtool libssl-dev \
   gawk debhelper dh-systemd init-system-helpers pkg-config
   dpkg-buildpackage -us -uc -i
   cd ..
   sudo dpkg -i shadowsocks-libev*.deb

   這就安裝好了shadowsocks-libev,但還需要編輯 /etc/shadowsocks-libev/config.json
  {
    "server":"127.0.0.1",
    "server_port":8388,
    "local_port":1080,
    "password":"foobar!",
    "timeout":60,
    "method":null
  }

  改動password那列,可用命令隨機產生一個比較難破解的密碼,執行

  head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18

  或者不喜歡0oO這些較易混淆的字母,可以

  openssl rand -base64 32 | tr -d '+/0oO' | cut -c3-18

  timeout把60改為300,method由null改為"aes-128-cfb" ,有雙引號的,
  而服務器端口則隨便,nat vps則要指向分配給你的20個端口之一,修改後的例子

  {
    "server":"0.0.0.0",
    "server_port":14701,
    "local_port":1080,
    "password":"XVLcvDFIpaRjdHzG",
    "timeout":300,
    "method":"aes-128-cfb"
  }

  存檔後執行 /etc/init.d/shadowsocks-libev restart

5) 先取得vps對外的IP,方便設置shadowsocks客戶端,免得通過TOR網絡時IP不對

   wget -qO - v4.ifconfig.co

   下載腳本設置iptables規則,該腳本以python編寫,檢查系統是否
   有python2.7,沒有先安裝上,通過 apt-get install python,然後
   
   git clone https://github.com/ruped24/toriptables2.git

   然後編輯 /etc/resolv.conf ,改成

   nameserver 127.0.0.1
   #nameserver 8.8.8.8
   #nameserver 8.8.4.4
   存檔離開編輯器,接著執行
   
   cd toriptables2
   ./toriptables2.py -l
   這個腳本會設置好iptables規則,並會在torrc加入相關參數,當明令成功時會出現

   [+] Anonymizer status [ON]
   [*] Getting public IP, please wait ...
   [+] Your IP is 199.68.196.124

   這就表明成功設置好tor,流量都經洋蔥網絡連出去,如要停止,輸入

   ./toriptables2.py -f ,就會把所有規則清洗,畫面會如是

   [!] Anonymizer status [OFF]

   記得編輯/etc/resolv.conf ,改回使用8.8.8.8,這樣shadowsocks
   就不走洋蔥網絡

6) 設置客戶端就不多說了,在任何ss客戶端都正常使用,ios本來不越獄無法使用tor,
    或者需要tor browser的app才能使用,現在只需要A.Big.T或者shadowrocket
    也可使用洋蔥網路匿名上網

:)

沒有留言:

張貼留言