2015-06-04

Hello!

I'm setting up my EdgeRouter Lite to be an OpenVPN client for a VPS outside of China, the problem is that China easily detects normal OpenVPN (and IPSec and SSTP too) connections. As a countermeasure, us expats inside China use obfuscating transports for avoiding China's Deep Packet Inspection. The contemporary transport is called obfs3.

The first thing I did was add the debian repo and security repo exactly as outlined here: https://community.ubnt.com/t5/EdgeMAX-CLI-Basics-Knowledge/EdgeMAX-Add-other-Debian-packages-to-EdgeOS/ta-p/413071

After that I did apt-get update, then I did apt-get install obfsproxy. The obfsproxy package contains multiple obfsproxy versions, but the only one that works in China right now is obfs3. However, the package that was installed for me only contained obfs2.

After that I edited sources.list and added the jessie repo. According to debian's obfsproxy page, obfsproxy was in fact available for the MIPS architecture. So after that I simply did the apt-get install obfsproxy and got it updated.

Now that I had the obfs3 socks proxy listening on my router, I reconfigured the .ovpn file to match that of the one I use on my computer (which I know works), except that I used "dev-type tun" instead of "dev tun" and added the no pull command at the end in order to firewall the VPN connection manually later.

When I attempted to connect with OpenVPN, it returned an error that I haven't provided a user/pass combination for the socks proxy. I know for a fact that this is an older version of OpenVPN bug. So I decided to apt-get install OpenVPN, and after it updated my OpenVPN and ton of other dependencies my router crashed and became unresponsive. Thankfully, a hardware factory reset fixed it and I've restored the configs I had saved prior to tinkering with that stuff.

What is my course of action? Do I wait for updated OpenVPN packages? Should I patch it myself (how?)? Perhaps I used a wrong depository (should have used wheezy-backports instead?)?

Show more