匿(fan)名(qiang)上网不是梦,Raspberry Pi VPN/TOR路由器助你圆梦
在《三周年,500万片销量下那些优秀的“树莓派”项目制作》文中我们有简单提到树莓派 VPN/TOR路由器项目。今天我们就详细介绍一下如何用便携式WiFi VPN/TOR路由器安全上网!Raspberry Pi结合Linux系统,还有其他额外的软件,可连接任何VPN服务器。VPN连接进而加密流量,不仅黑客和间谍无法得知你浏览哪些网站,就连你所浏览的网站,也无法辨识你从哪部电脑上网。
这项项目的材料有1个Raspberry Pi、2个USB无线网卡、1张SD卡、1个电源插头。
就算找不到乙太网,路由器也可自行建立连接,亦可连接任何WiFi网络,作为个人WiFi网络接入点和不安全WiFi网络的桥梁,光是这个路由器,就可以涵盖整个房间。
设定完成后,在WiFi装置建立被动型VPN连接,一旦VPN连接中断,电脑网络连接立刻中断,以免未加密资料外泄。
如果你还嫌不够,这款路由器也可能支持TOR,让你在网络世界深潜。
有了开放原始代码软件鼎力相助,你的装置可以掌控多个WiFi连接。无论走到哪里,你都可以连接WiFi网络接入点,通过VPN为网络加密。
当朋友来访,就算他们不会设定,也可以连接安全的网络。此外,就算不在美国境内,你也可以连接Hulu、Netflix、HBO等网站,或者观赏你喜爱球队的比赛。如果这样还不够,不妨加入以网域为基础的阻挡广告功能,利用bind即时拦截网络广告。
好好享受设定随身WiFi VPN/TOR路由器的乐趣吧!
- 难度:中级
- 成本:60~80美元
- 时间:1~4小时
材料
- Raspberry Pi B或B ,如果要连接WiFi网络接入点,Raspberry Pi还要有USB插孔
- SD卡(4G以上),Raspberry Pi B 采用Micro SD,Raspberry Pi B则是普通SD卡
- Edimax USB无线网卡EW-811UN(2)
- MicroUSB电压转换器,5V
- Raspberry
- Pi外壳
工具
- SD卡读卡器
- 转换器(HDMI或RCA转为VGA或DVI)
- USB键盘
- VGA显示器
步骤一:烧写SD卡
src=”http://oszine.com/wp-content/uploads/2015/09/TOR-Router-3a3-9188056.jpg” width=”400″ height=”300″ alt=”匿(fan)名(qiang)上网不是梦,Raspberry Pi VPN/TOR路由器助你圆梦” title=”匿(fan)名(qiang)上网不是梦,Raspberry Pi VPN/TOR路由器助你圆梦” />
- 把SD卡(还有读卡器)插到电脑。
- 这项项目用Raspbian Linux 系统,这是Linux为Raspberry Pi发行的系统,不仅小,而且跟Debian相容。前往raspberrypi.org/downloads下载Raspbian ZIP。
- 下载成功后,解压会看到映像文件,把映像文件复制到SD卡。 Raspberry Pi网站清楚说明安装映像的步骤。基本上,你可以利用下列指令,来操控Mac或Linux系统终端机:
$ sudo dd if=/path/to/raspbian-image.img of=/dev/name-of-sd-card-disk
若换成Windows系统,不妨采用 Win32DiskImager程序,方便你拖曳 Raspbian映像文件,放到目标磁盘中。
- 映像文件复制完成后,该是组装的时候了。把Raspberry
Pi塞入外壳中,插上USB无线网卡和SD卡,插好屏幕、键盘和电压转换器,接着就是开机。
步骤二:启动Raspberry Pi
- 第一次启动Raspberry,raspi-config会带领你完成设定,让你更改用户密码、超频Raspberry Pi、设定桌面环境。
- 在这个项目,你必须更改用户密码、扩充磁盘并选择「命令行」(command line)作为开机环境。如果你住在英国以外的地方,还要更改国际设定(键盘、时区和地点)。
- 你可能还想驱动SSH,这样就算没有屏幕和键盘,存取Raspberry也不会有问题。退出的时候,画面自动切换到控制台,登录时输入用户名称「pi」和密码。
步骤三:连接网络
- 连接乙太网很简单;只要插好乙太网线,Raspberry Pi就会自己连接。连接WiFi比较困难,目前有几种WiFi和加密方式,每一种在Linux系统的设定都有些微差异。
- 为了指示Raspberry Pi连接无线网络,你必须编辑/etc/network/interfaces文件。
$ sudo nano –w/etc/network/interfaces
在这个文件,你可以设定连接WPA、WEP和开放无线网络的规则。
- 你设定这个文件的方式,取决于无线网络接入点的加密方式。 [protected-iframe id=”37bc87e7b65f9fcd08c96ae5c3c32bdd-30206320-62929444″ info=”37bc87e7b65f9fcd08c96ae5c3c32bdd” ] 举例来说,连接WPA Wi-Fi网络,这个文件会是下列内容:
allow-hotplug wlan0 # detect WiFi adapter iface wlan0 inet dhcp # connect WiFi with DHCP wpa-ssid "myhostnetwork" # WPA access point name wpa-psk "myhostpassword" # WPA access point
- password 手动重启WiFi,让Raspberry Pi连接网络。
$ sudo ifdown wlan0 $ sudo ifup wlan0
- 你可以连接网站或执行下列指令,确定连接成功与否:
$ ifconfig wlan0
步骤四:建立网络接入点
- 我们先更新套件清单
$ sudo apt-get update
有了网络接入点,电脑才能通过WiFi连接。我们会采用hostapd套件,来建立网络接入点和ISC-DHCP服务器,提供连接网络接入点的电脑IP位址。
- 安装网络接入点:你需要量身定制的hostapd,还有支持Edimax无线网卡的网络接入点软件。安装时间大约10分钟。
$ wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz $ tar -zxvf v1.1.tar.gz $ cd RTL8188-hostapd-1.1/hostapd $ make $ sudo make install
通知hostapd网络接入点的名称和密码,还有Wi-Fi管理装置的名称:
$ sudo nano –w/etc/hostapd/hostapd.conf
更改/etc/hostapd/hostapd.conf三行如下:
interface=wlan1 ssid=mySecureRouter wpa_passphrase=mySecurePassword
最后启动hostapd,并加入开机后启动服务:
$ sudo service hostapd start $ sudo update-rc.d hostapd enable
- 安装DHCP服务器,安装dnsmasq:
$ sudo apt-get install dnsmasq
我们通知DHCP服务器,其所控制的IP位置介于192.168.0.10和192.168.0.200之间,Raspberry Pi路由器IP为192.168.0.1。这会设定成「授权」服务器,采用wlan1装置,强迫用户舍去过期的IP位址。
$ sudo nano–w /etc/dnsmasq.d/dnsmasq.custom.conf
把下列编码加入/etc/dnsmasq.d/dnsmasq.custom.conf:
interface=wlan1 dhcp-range=wlan1,192.168.10.10,192.168.10.200,2h dhcp-range=wlan1,192.168.10.10,192.168.10.200,2h dhcp-option=3,192.168.10.1 # our router dhcp-option=6,192.168.10.1 # our DNS Server dhcp-authoritative # force clients to grab a new IP
- 设定DHCP服务器,利用wlan1装置来管理DHCP要求:
$ sudo nano -w /etc/resolv.conf
在/etc/resolv.conf文件加上下列编码,把DNS导向Google公共DNS服务器:
nameserver 192.168.1.1 nameserver 8.8.8.8 nameserver 8.8.8.4
- 现在设定wlan1装置,以固定IP位址192.168.0.1开机载入:
$ sudo –w nano /etc/network/interfaces
加入下列编码:
iface wlan1 inet static address 192.168.0.1 netmask 255.255.255.0
最后,重新启动wlan1 无线网卡:
$ sudo ifdown wlan1 $ sudo ifup wlan1
- 现在启动DHCP服务器,并加入开机后启动服务:
$ sudo service dnsmasq start $ sudo update-rc.d dnsmasq enable
你会在电脑看到「mySecureRouter」的无线网络接入点名称,以WPA2加密方式连接该网络,并且输入密码「mySecurePassward」。
步骤五:连接VPN或TOR
- 现在我们来到重头戏:网络加密连接!VPN和TOR都是加密技术,以免网络浏览受到监视。同一个网络连接,很难同时采用TOR和VPN,所以只能择一。
- TOR vs VPN:TOR又称洋葱路由器,这项技术加密网络资料后,通过电脑网络从网站来回传播资料,如图一所示。TOR很容易安装,但前提是使用支持TOR的网络浏览器。TOR速度比较慢,因为电脑连接到网站前,TOR会在网络上的随机节点,加密并路由你的网络流量。TOR也让你存取网络的隐蔽层,又称暗网,这是VPN做不到的。
- VPN又称虚拟私人网络,以被动的方式,在电脑和网站之间建立单一加密通道,如图二所示。如果你相信自己的VPN服务器,VPN会比TOR更安全。VPN比较难设定,但不需要其他特殊软件。首先,你在VPN服务器要有帐号,还要在VPN服务器产生几个文件,来确认你的帐号。你必须相信VPN服务器不是在记录你或发布你的私人信息。如果你不想付费使用VPN服务,或者你想学会建立自己的VPN服务器,可以上这个网站。
- 先来安装TOR软件:
$ sudo apt-get install tor
启动TOR,设定为开机后启动服务:
$ sudo service tor start $ sudo update-rc.d tor enable
最后在你上网的电脑,安装TOR网络浏览器,从torproject.org下载。
- 安装VPN:Linux可轻松支持OpenVPN,许多VPN供应商也支持OpenVPN协定。为了连接VPN,你需要VPN供应商的信息(例如凭证),也可能需要使用户名和密码。你还要知道VPN服务器的域名、端口(通常为1194)和协议(通常是UDP)。
安装OpenVPN:
$ sudo apt-get install openvpn
VPN供应商提供你的凭证,你可以存为/etc/openvpn/ca.crt。如果供应商还提供用户名和密码,请放在/etc/openvpn/auth.txt。auth.txt就像这样:
myVPNUserName myVPNPassword
设定OpenVPN,连接到VPN服务器
$ sudo nano –w /etc/openvpn/client.conf
虽然VPN设定取决于服务器设定,但/etc/openvpn/client.conf的版本只有一种,如下所示:
client # client mode dev tun proto udp # this must match the server’s protocol remote vpn-server.example.com 1194 # must match the server resolv-retry infinite # reconnect when disconnected nobind persist-key persist-tun ca ca.crt # this file is given by the server #cert client.crt # uncomment if the VPN server requires a client.crt #key client.key # uncomment if the VPN server requires a client.key ns-cert-type server #comp-lzo # uncomment if the server supports lzo compression #auth-user-pass auth.txt # uncomment if your server requires a username and password script-security 3 # must match the server’s script security setting keepalive 5 30 # keep connection alive verb 3 log-append /var/log/openvpn-client.log
时间戳没有对好,OpenVPN仍然不会运转。Raspberry Pi没有即时时钟,你必须利用网络时间协议(NTP)服务。
$ sudo service ntp start $ sudo update-rc.d ntp enable
启动OpenVPN客户端,设定为开机后启动服务:
$ sudo service openvpn start $ sudo update-rc.d openvpn enable
一旦完成连接,你可以通过路由追踪(traceroute)来测试你的连接,把网络连接路径导向makezine.staging.wpengine.com。这时候,你正在连接VPN预设服务器10.0.0.1。
步骤六:设定路由
- 路由是电脑和网络之间的桥梁,把电脑传给Raspberry Pi的数据,进一步传送到网站上。如果网站有回应,数据就会传回你的Raspberry Pi。Raspberry Pi弄清楚这个回应是针对哪个无线客户端,接着传回你的电脑。
- 如果你设定好VPN或TOR,这些数据还会通过加密服务传输,这会用到iptables软件。我们必须设定好规则,Raspberry Pi才知道如何引导数据的路径。我们来启动路由吧:
$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
通知Linux记得这项变更:
$ sudo nano /etc/sysctl.conf
在这个文件移除(uncomment)下列内容:
net.ipv4.ip_forward=1
你会过哪个路由装置,取决于你怎么连接到Raspberry Pi(VPN、TOR、乙太或WiFi)。根据连接方法来选择路由装置:[protected-iframe id=”65ac4502bc06dd3c23837be5405ed3e6-30206320-62929444″
info=”65ac4502bc06dd3c23837be5405ed3e6″ ]
- 趁电脑连接的时候,通知Linux启动伪装(masquerade)功能:
$ sudo iptables –t nat –A POSTROUTING –o tun0 -j MASQUERADE
通知Linux把所有流量导向网络:
$ sudo iptables –A FORWARD –i wlan1 –o tun0 -j ACCEPT
最后,通知Linux把传回的数据,转交给合适的客户端:
$ sudo iptables –A FORWARD –i tun0 -o wlan1 –m state --state RELATED,ESTABLISHED –j ACCEPT
储存这些设定,以便下一次重新开机:
$ sudo sh –c “iptables-save > /etc/iptables.restore” $ echo “up iptables-restore < /etc/iptables.restore” | sudo tee --append /etc/network/interfaces
步骤七:连接WiFi客户端
- 电脑继续开着,试着连接无线网络接入点。接入点名称:mySecureRouter,密码:mySecurePassword。
- 你会发现电脑利用ARP指令连接Raspberry Pi。
$ sudo arp –i wlan1
- 你设定好Raspberry Pi的TOR,也要在电脑安装TOR网络浏览器。
共有 0 条评论