Wednesday, March 20, 2013

DD-wrt 上行OpenVPN 終於再次成功!

左找右找, google又google, 終找到解決方法:

謝謝以下的reference:
http://www.howtogeek.com/forum/topic/how-to-install-and-configure-openvpn-on-your-dd-wrt-router

記憶中對上一次成功還有兩件事, 一是DNSMASQ的問題, 另一個是Firewall.

有睇之前的references, 也了解要set iptables, 這是理所當然.

Reference 5只是有以下的setting:

iptables -I INPUT -p tcp --dport 631 -j ACCEPT 
iptables -I INPUT -p udp --dport 631 -j ACCEPT 

iptables -I FORWARD 1 --source 192.168.60.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT 
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT


但這是不足的, 還是做NAT:

iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o vlan2 -j SNAT --to-source $(nvram get wan_ipaddr)

把所有的traffic 轉出去.

至於DNSMASQ,

Local DNS要打開, No DNS Rehind disable, Additional DNSMasq Options: interface=tun0

好奇怪, 曾telnet入去睇, DNSMASQ default start at tun but not tun!!!

Happy to use it now!!!!



DD-wrt 上行OpenVPN -- 失敗經驗

據上一篇文章, 這樣的設定是失敗, 敗在那裡, 仍然為DNS失敗.

失敗的情況:

用另一部電腦在另一個ip上, 安裝了open-client, 成功地接上了Open-vpn Server, 但是只能瀏覽內聯網內的東西, 用上回192.168.5.1上的DD-WRT, 並可以看到management console, 但卻不能上其他的網絡.

上一次試過用設定為Google Free DNS 8.8.8.8也失敗過的.

這次會再試試, 稍後再談談是否失敗.

DD-wrt 上行OpenVPN

Firmware: DD-WRT v24-sp2 (02/11/13) std
Router: TP-LINK TL-WR1043nd

Testing Mobile Network: Smartone HK 3G, 中國聯通-中港如意通3G
Broadband Network: PCCW 500Mb

References:

  1. http://freemanv1.blogspot.hk/2012/05/dd-wrt-openvpn.html
  2. http://www.dd-wrt.com/wiki/index.php/OpenVPN
  3. https://oogami.name/941/
  4. https://www.privateinternetaccess.com/forum/index.php?p=/discussion/22/dd-wrt-openvpn-vpn-setup/p1
  5. http://www.hkepc.com/forum/viewthread.php?tid=1774976

這裡的設定, 以reference 5為基礎.

前言:

一個多月前, 更新了DD-WRT, 順手設定了OPEN-VPN Server, 因為原用的PPTP已被大陸半封了, 用FB時傻吓又傻吓, 又不能upload照片, 決定改用open-vpn. 當時已經完成設定, 用Smartone測試過, 基本無問題, 但太太到大陸旅行, 中港如意通卻無法接通, 相信和port no 1194有關.

幾天前, router突然跳機, 失去了原來的設定, 明天自己卻要去大陸, 於是決定重設一次. 上一次的設定, 基本上, 大部分都很容易, 最難的部分在於DNS的設定, 花了兩天的時間, 才令DNS接上, 可以認出URL, 所以這一次要記下所有的東西, 以使日後重試.

準備:

先到http://openvpn.net/index.php/open-source/downloads.html 下載 Open-Vpn, 這裡用2.3.0的版本, 用這個program來產生certificate.

Reference 5內已經有詳細講解.

我得到下列的cert:
ca.crt 
ca.key 
dh{n}.pem 
server.crt 
server.key 
client1.crt 
client1.key 
client2.crt 
client2.key 
client3.crt 
client3.key

安裝Server:

DD-WRT 的open-vpn server略有差異的, 這是我的版本.


這一次我決定試用631這個port no, 上一次試過用443來做, 但死機, 我指router死了, 我的management web interface已經不是用443, 不知何解. Port 631是official 用來做internet printing protocol (ipp), 應該有機會可以過的, 而且TCP和UDP都有用, 所以大陸方面應該比較容易過的.

Advanced Options重要的, 要設定Redirect default Gateway, 否則出唔到街.

Allow duplicate cn要Enable? 容後研究一下.

Additional Config加入push "dhcp-option DNS 192.168.5.1"是重要的, 上次好似set了很久, 好像加了另一句才可以.

設定後:



再在Administration內的Command內Save Firewall加入:
iptables -I INPUT -p tcp --dport 631 -j ACCEPT 
iptables -I INPUT -p udp --dport 631 -j ACCEPT 

iptables -I FORWARD 1 --source 192.168.60.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT 
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

記得上一次為Firewall的設定也搞了好一段時間, 好像跟tun0的設定有關, default好似在tun而不是tun0 ... 好奇怪的, 容後再看情況.

Server基本設定完成.
下篇文章才講Android 4.1.2下設定Open vpn client.