话说这标题意外的微妙呢……其实相当一段时间之前就已经弄好的,只是最新更新了trunk的固件,决定重新写一次而已。
在部署的过程中经历了不少曲折,可是最后终究还是做好了。还是外国人的东西靠谱,找到的几分中文教程里面的配置文件完全不给力啊,最后还是在官方Wiki里面找到能用的教程。
http://wiki.openwrt.org/doc/howto/vpn.openvpn
真是一份优秀的教程啊,其他平台的部署也可以略作参考。
下面是咱的人手翻译,说是这样说,其实也只是把大部分的命令弄过来而已……
—————————————–首先是服务器的配置————————————–
首先是安装软件包
opkg update opkg install openvpn openvpn-easy-rsa
然后是稍微改一下easy-rsa的配置文件(不过如果你对手动签署证书比较熟悉的话也可以手动)
vi /etc/easy-rsa/vars
在文件底部添加环境变量
export KEY_COUNTRY="US" export KEY_PROVINCE="TX" export KEY_CITY="Houston" export KEY_ORG="My Cool Place"
接着是签署证书,一共3份,根证书,服务器证书,客户证书。签署的过程需要填写一些信息,自己看着填,详细可以参考这个里面的说明
根证书
clean-all build-ca build-dh
服务器证书
build-key-server server
客户证书
build-key Jimmy build-key Sara build-key Soandso ...
将CA证书,服务器证书,dh密钥,服务器私钥拷贝到openvpn文件夹
cd /etc/easy-rsa/keys cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/
接着,把CA证书,客户端证书,dh密钥,客户端私钥拷贝到客户端。
然后,在luci(还是要有图形界面啊)的网络-接口-LAN里面,把tap0加到桥接里面,然后就不需要考虑转发啊什么的了,方便的很。
下面是server的配置文件,这个写在/etc/config/openvpn
config 'openvpn' 'lan' option 'enable' '1' option 'port' '1194' option 'proto' 'udp' option 'dev' 'tun0' option 'ca' '/etc/openvpn/ca.crt' option 'cert' '/etc/openvpn/server.crt' option 'key' '/etc/openvpn/server.key' option 'dh' '/etc/openvpn/dh1024.pem' option 'ifconfig_pool_persist' '/tmp/ipp.txt' option 'keepalive' '10 120' option 'comp_lzo' '1' option 'persist_key' '1' option 'persist_tun' '1' option 'status' '/tmp/openvpn-status.log' option 'verb' '3' option 'server_bridge' '192.168.1.1 255.255.255.0 192.168.1.200 192.168.1.219'
接着是防火墙啊,dhcp啊之类的,默认就可以了。
再贴一个通用版本的config,这个可以直接用openvpn来运行而不必依靠luci
port 1194 proto tcp dev tun ### Certificate and key files ca /etc/easy-rsa/keys/ca.crt cert /etc/easy-rsa/keys/server.crt key /etc/easy-rsa/keys/server.key dh /etc/easy-rsa/keys/dh1024.pem server 192.168.30.0 255.255.255.0 push "route 0.0.0.0 0.0.0.0" push "dhcp-option DNS 10.1.254.250" # Change this to your router's LAN IP Address client-to-client ### (optional) compression (Can be slow) comp-lzo persist-key persist-tun verb 3 keepalive 10 120
————————————————–接下来是客户端(OpenWrt)—————————————
配置文件:
client
tls-client
dev tun
proto tcp
remote <server address> 1194 # 改成服务器的IP
resolv-retry infinite
nobind
persist-tun
persist-key
ca ca.crt #CA证书,可以改成绝对路径,下同
cert Jimmy.crt
key Jimmy.key
dh dh1024.pem
comp-lzo
verb 3
然后可以用
openvpn --config 配置文件 --daemon
运行客户连接
另外原文还有Windows版的Client配置文件,有兴趣的可以过去看看。
已经搭建成功 并且能够成功连接。。。
但是 openvpn的网卡无法连接internet dns为192.168.0.1
ip为192.168.1.200 请问我该怎么办呢? 谢谢了
首先检查连接有没有问题,至少能ping到openvpn虚拟的网关。
然后检查防火墙的转发,比如说,直接在luci上新建一个接口,协议选择Unmanaged,接口选择openvpn使用的tun/tap,然后把接口的防火墙区域选择为LAN。
通过google搜索过来的。。。。
因为被收录了呢~