PPTP VPN

     虽然PPTP不是很安全的VPN,但是PPTP比较成熟,安装配置也很方便。像IPSec和OpenVPN配置起来非常麻烦。在DigitalOcean上买了个VPS后,必须得利用资源啊,PPTP装起,这完全是私人PPTP。速度飞起。

安装PPTP很简单, apt-get install pptpd,就可以搞定。

配置:

  1. vim /etc/pptpd.conf,加入以下说明。localip指在pptp网络中,服务器的ip,而remoteip是分配给客户端的ip。
    localip 10.12.0.100
    remoteip 10.12.0.101-200
  2. vim /etc/ppp/pptpd-options,加入dns解析服务器。随便加合理的dns服务器。
    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
  3. 启用端口转发,否则无法连接外网。
    vim /etc/sysctl.conf:
    加入net.ipv4.ip_forward = 1
  4. 设置iptables,最好安装 apt-get install iptables-persistent 免得每次开机都要重新设置。
    $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    $iptables-save> /etc/iptables/rules.v4
  5. 设置可以使用的用户名和密码:如下所示。
    vim /etc/ppp/chap-secrets
    user1 pptpd user1password *
  6. 启用服务:

    现在就可以用手机或者电脑试试能否连接pptp,浏览和高墙之外的世界。在客户端,ifconfig -a,可以看到以下信息,说明成功。关于更复杂更安全的L2TP下次再说。

cpu14

参考链接:

  1. How To Setup Your Own VPN With PPTP
  2. Linux L2TP/IPsec VPN Server

Tor 匿名网络

Tor (The Onion Router) 是第二代洋葱网络的实现。Tor可以实现匿名上网,也就是说查不到你的ip。为何查不到,这个原理我还没有深入了解,简单的说就是你的数据经过不同的relay到达“随机”的出口,然后出口ip就成了你访问的ip,外界了解不了内部的网络情况。那么Tor是怎么实现包的发送和接收呢? 根据我目前的理解,Tor首先建立circuit,跟目前的网络协议不一样,Tor是有连接的,就像打电话一样,要先拨号。

直接从源安装是可以的。

下面就介绍如何配置客户端的obfsproxy。网上很多讲的都是服务器端的,容易造成误解。

在中国,Tor需要使用bridges,而且不能是普通的bridges,要obfs2或obfs3的,混淆过的bridge,这样墙就检测不出你用的是Tor了。为什么不让用Tor,相信你懂的。找bridge查看官网有2种方法。一是直接登录BridgeDB,一步步操作即可,那验证码真是太坑了。记得使用加强版bridge。二是发邮件给bridges@bridges.torproject.org,主题为transport obfs2,正文为空,对方就会发给你3个地址。(坑爹的是,我试的那天正好服务器维护,我试了半天没有获取地址,那个网站也上不去,还以为是我网络有问题。)

有了obfs的bridge后.

  1. 安装obfsproxy,是python模块,所以使用pip install obfsproxy,即可
  2. vim .vidalia/torrc,加入以下的 ClientTransportPlugin obfs2,obfs3 exec /usr/bin/obfsproxy --managed 路径可能有所不同。
  3. 打开vidalia, 点击setting,Advance设置控制端口密码。Network勾选My ISP block,填入获得的bridge,不要忘记obfs。如下所示。

cpu13

 

配置之后,就可以启动tor了。看到下面的场景,都要哭了。

cpu11

 

chrome使用switchsharp设置代理端口为默认的9050即可实现代理,网速还可以。

Tor的安卓版本名为Orbot,直接play中可以下载,没有root的话,需要下载专门的浏览器,Orbot会自动推荐。已经root的话就方便了,可以全局代理,但是也不安全。这个Tor的对于主机的安全问题现在我还不是很清楚,以后再讲。android同样要配置bridge,操作与pc一样。下面是成功界面,速度也还可以。

Screenshot_2014-03-03-20-31-36 Screenshot_2014-03-03-20-31-04

 遇到的问题:

首先看看Tor在linux上的使用。由于openssl版本不对,我从源安装的Tor没法用。出现以下log:

所以我还尝试了自己编译,发现问题不在这里。好吧,我傻逼了,试了alpha和stable的都不能成功连接,以为是openssl不兼容,其实是我自己没有配置好obfsproxy,使用obfs的时候,没有在ip地址前加obfs2,而且没有加ClientTransportPlugin,所以跪了。

dnscrypt 安全的dns

可以说DNS是整个Internet中,最薄弱的部分(虽然其他某些部分也不安全)。因为这个dns是UDP的,可以随便被修改,这样就会让你上冒牌网站了。想想就吓尿了。这也被我们伟大的墙利用了,当然这只是小手段。最近(2014.2.14)左右,youtube可以“直接”上了。瞬间让我看到了希望。习大大果然不同凡响。

为什么说是“直接”上呢?因为墙降低了手段,只用了DNS污染,只要DNS正确就能上youtube。这就方便多了,网速也很快。虽然我不怎么上youtube,但这是一种自由的象征。

不仅如此,如果你遭受了ARP攻击,而采用下面的DNS查询方式可以免于被DNS污染。可见安全的DNS是非常重要的,当然也是非常有意思的。

DNSCrypt 是由来已久的,目前有很多“free, DNSCrypt-enabled resolvers”,像opendns(我就用过这个,感觉很可以,所以就一直用着了。我就担心这些dns被墙掉)。而只有服务器也不行啊,需要工具与服务器交流。我使用的是dnscrypt-proxy。公开源码,可以自己编译。arch直接安装就好了。

完成以上这几个步骤,可以打开测试地址,默认的dns解析服务器是opendns的,配置文件是/etc/conf.d/dnscrypt-proxy,可以进行修改,具体man dnscrypt-proxy。

如果测试成功,就可以进行下一步,不行的话也试试下一步再重启。

光有DNSCrypt还不是完美的,因为他没有cache,每次有query他都会重新访问OpenDNS。这样效率就低了,可以看看有cache和没有cache的区别。

没有cache:

cpu8

有cache:

cpu9

我是用unbound解决这个问题的,当然还有代替工具powerdns这样的,但是用不来。

修改/usr/lib/systemd/system/dnscrypt-proxy.service, port 40。或者修改/etc/conf.d/dnscrypt-proxy,里面的DNSCRYPT_LOCALPORT=40。

准备完毕,可以开机启动服务。

最好重启一下。

最后有个问题,就是这里的53端口被监听了,我就不能建ap了,这个还不知道原理,以后再思考一下怎么解决。

链接: