openwrt上建立openvpn
来源:互联网 发布:linux保存vi修改文件 编辑:程序博客网 时间:2024/06/07 21:46
安装相关的软件包
opkg update && opkg install openvpn openvpn-easy-rsa
ps: 可能会提示少一些内核模块而安装不上,我这里采用的是,将OPENVPN 直接编译进bin。
然后就是OpenVPN的设置了
ssh 连接到openwrt编辑/etc/config/openvpn,改为如下内容
config 'openvpn' 'lan' option 'enable' '1' option 'port' '1194' option 'proto' 'udp' option 'dev' 'tap' 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.201 192.168.1.254' list 'push' 'redirect-gateway' list 'push' 'dhcp-option DNS 192.168.1.1' list 'push' 'route-gateway 192.168.1.1'
然后用刚才安装的easy-rsa 生成密钥,编辑/etc/easy-rsa/vars 把下面这些东西改成自己的
export KEY_COUNTRY="CN"export KEY_PROVINCE="SC"export KEY_CITY="ChengDu"export KEY_ORG="CUIT"export KEY_EMAIL="email@email.com"export KEY_EMAIL=email@email.comexport KEY_CN=xxxxxexport KEY_NAME=xxxxxexport KEY_OU=xxxxxexport PKCS11_MODULE_PATH=xxxxxexport PKCS11_PIN=1234
生成证书依次执行
清空目录
clean-all
、生成ca证书build-ca
、生成dh密钥build-dh
、服务器证书build-key-server server
、客户端证书build-key Huxos
后面的server ,Huxos 可以自己指定。
进入/etc/easy-rsa/keys/
将生成的ca.crt ca.key dh1024.pem server.key server.crt 复制到 /etc/openvpn/ 中。
cd /etc/easy-rsa/keys/cp ca.crt ca.key dh1024.pem server.key server.crt /etc/openvpn/
将生成的ca.crt dh1024.pem Huxos.key Huxos.crt 复制到客服端(可以使用scp等)
scp ca.crt dh1024.pem Huxos.key Huxos.crt huxos@192.168.1.180:./openvpn
启动OpenVPN服务器
/etc/init.d/openvpn start
设置网络
openvpn启动成功之后就会启动一个叫做tap0的网卡
lan的设置将生成的tap0加入到lan的网桥中
配置好防火墙
客服端的设置
新建文件 ****.ovpn 和刚才的密钥文件放在一起同一个文件夹,键入如下内容
clienttls-clientdev tapproto udpremote 10.145.17.142 1194 #路由器的IP 端口resolv-retry infinitenobindpersist-tunpersist-keyca ca.crtcert Huxos.crtkey Huxos.keydh dh1024.pemcomp-lzoverb 3##下面两行for WIN7#route-method exe#route-delay 2
Windows 上面安装好OpenVPN-gui 将这个文件夹啊放入安装目录的config 文件夹下面
更新:
使用路由方式的配置
OpenVPN 提供两种的方式一种是tap(网桥)模式,一种是tun(路由)模式
网桥模式工作在OSI 七层协议的第二层,将数据封装成MAC帧,产生的TAP虚拟网卡可以用来桥接
路由模式工作在OSI 七层协议的地三层,将数据封装成IP数据报
服务器差用哪种模式,相应的客服端同样也要采用相同的模式
配置OpenVPN服务端(其他都一样,只需要将/etc/config/openvpn修改为如下)
config 'openvpn' 'lan' option 'enable' '1' option 'port' '1194' option 'proto' 'udp' option 'dev' 'tun' option 'ca' '/etc/easy-rsa/keys/ca.crt' option 'cert' '/etc/easy-rsa/keys/server.crt' option 'key' '/etc/easy-rsa/keys/server.key' option 'dh' '/etc/easy-rsa/keys/dh1024.pem' option 'ifconfig_pool_persist' '/tmp/ipp.txt' option 'duplicate-cn' '1' 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' '192.168.10.0 255.255.255.0' list 'push' 'redirect-gateway' list 'push' 'dhcp-option DNS 192.168.1.1' list 'push' 'dhcp-option DNS 8.8.8.8' list 'push' 'dhcp-option DOMAIN lan' list 'push' 'route-gateway 192.168.1.1'
路由模式稍微复杂一点要使用iptables实现转发(修改/etc/firewall.user,加入如下的内容)
iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT iptables -A input_wan -p udp --dport 1194 -j ACCEPT iptables -I INPUT -i tun+ -j ACCEPT iptables -I FORWARD -i tun+ -j ACCEPT iptables -I OUTPUT -o tun+ -j ACCEPT iptables -I FORWARD -o tun+ -j ACCEPT
客户端的配置文件相应的把dev修改为tun
client tls-client dev tun proto udp
remote 10.145.17.142 1194 #路由器的IP 端口resolv-retry infinitenobindpersist-tunpersist-keyca ca.crtcert Huxos.crtkey Huxos.keydh dh1024.pemcomp-lzoverb 3##下面两行for WIN7#route-method exe#route-delay 2
必要的証書都完成後再來修改OpenVPN主要設定
vi /etc/config/openvpn再按【 i 】進行修改
完成後再按【 Esc 】之後輸入【 :wq 】作儲存和退出===============================================================
整個教學都完成了
現在只要輸入如下便可以正常使用Client連線到OpenVPN了/etc/init.d/network restart/etc/init.d/openvpn restart/etc/init.d/openvpn enable如果你要使用Xoom連線可以參考:
Xoom安裝OpenVPN客戶端(MZ601)以下部分為和Windows 7連線設定
大家先下載openvpn-2.0.9-gui-1.0.3-install.exe未完…真的很累….有空再寫…
或者大家可以先對照如下作修改
再儲存為client.ovpn
放到C:\Program Files\OpenVPN\config
便可使用Windows 7和OpenWRT連線了clientdev tap;dev-node openvpnproto udpremote www.yourdomain.com 1194 或 你的IP地址:1194 ;remote-randomresolv-retry infinitenobind;user nobody;group nobodypersist-keypersist-tun;http-proxy-retry # retry on connection failures;http-proxy [proxy server] [proxy port #];mute-replay-warningsca C:\\ca.crtcert C:\\client.crtkey C:\\client.keydh C:\\dh1024.pemns-cert-type server;tls-auth ta.key 1;cipher xcomp-lzoverb 3;mute 20redirect-gateway def1 /*如果server端沒設定,刪掉後可以不用Server gateway启用虚拟网卡tap0并加入br-lan网桥。 这个是关键地方,这种方法是openwrt推荐的方法,也是网络设置最简便的。
原理是将虚拟网卡tap0接口加入已经建立的br-lan网桥中,所有经tap0接入的连接全部视同lan接入,无需重新配置nat、forward等。
root@OpenWrt# brctl show ##显示现有网桥情况3、建立网桥启动脚本:/etc/openvpn/startupscript,内容如下:修改脚本执行权限:chmod +x /etc/openvpn/startupscript
然后执行一次:
/etc/openvpn/startupscript up
就可以将tap0加入到br-lan桥中了。
root@OpenWrt# brctl show ###显示现有网桥情况,多了个tap0 .每次重启路由后,你需要重新执行一次脚本才能正常启用openvpn,你也可以修改一下将启动脚本放到/etc/init.d/,增加/etc/rc.d启动项,做到开机自动启动。更简单的办法是:将/etc/openvpn/startupscript up 加入到/etc/rc.local中开机自动启动网桥部分!!
ok,openvpn的网络环境基本完成。
4、生成共享密钥
使用如下命令生成静态密钥:
openvpn --genkey --secret static.key
openvpn的所有配置文件都在etc/openvpn这个目录下!生成的static.key位于/etc/openvpn,你可以将这个文件复制到客户端使用。静态密钥文件由ascii组成,就像下面这样:5、openvpn服务端配置
/etc/openvpn/my-vpn.conf6、启动openvpn服务 (启动前记得将防火墙的wan相应端口打开,这里是443 )
openvpn --daemon --config /etc/openvpn/my-vpn.conf
PS:
openwrt本身自带Luci-openvpn配置页面,UCI配置vpn服务参数差不多,我只是图简单手工修改配置文件,用指定配置文件来启动openvpn。
5月5日更新: 增加luci设置openvpn服务方法:
5-2-1、web界面安装luci-app-openvpn,在-服务--openvpn里设置:
a、直接利用custom_config调用自定义配置文件;
b、修改sample_server配置内容或新建vpn0配置:如图:
5-2-2、通过luci修改custom_config、sample_server或vpn0的配置相关内容如下( 或者直接修改/etc/config/openvpn文件内容):5-2-3、OK,openvpn服务配置完成,重新启动路由器opevpn服务就会自动启动,或者手工启动vpn:
/etc/init.d/openvpn start
用ps命令可以看到openvpn进程了,说明成功启动!7、客户端的配置
win版openvpn客户端配置文件: /programs/openvpn/config/client.ovpn使用这个配置文件启动openvpn客户端连接,就可以在任何地方上网连上openvpn,并获得内网lan网段的IP,自由访问内网资源!!!!
至于这么复杂架设个openvpn有什么作用?大家baidu一下就知道啦!自已发挥想像吧!
提示一下:利用vpn可以突破各种内网封锁、自由上网,运气好你还可以免费使用chinanet-wlan(网上有收费的vpn,其实也是改造过的openvpn)
20100731更新:
注意:按照本教程设置后,客户端连接vpn,正常情况下应该就能通过VPN通道上外网了,可以登录www.ip138.com验证你的外网IP,这也就是所谓的vpn翻墙技术。
部分网友反应:客户端连接VPN正常,但不能通过VPN上外网,这是win双网关的路由问题,当同时有两个本地连接时,所有网络连接默认走的会是缺省网关路由,如果你的缺省网关是本地连接(即非vpn网关),那么就无法通过vpn连接上外网的。解决办法是手工调整路由跃点数值来控制在 IP 流量路由中首先使用的网络接口,即调整缺省网关:
WinXP通过ipconfig /all,可以看到两个本地连接都有自已的网关,通过route print 查看路由表信息,如下:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.8 25 #本地连接的路由
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.205 30 #vpn连接的路由
......
Default Gateway: 192.168.1.1 #缺省网关
最后一行 192.168.1.1 #这是缺省的本地连接网关,需要将默认网关改为VPN的网关。方法如下:
将客户端PC"本地连接"的TC/IP属性中-高级-自动跃点计数改为手动,设为:30或大于30(这个数值根据你的实际值确定) !
(或者也可以将客户端PC"本地连接2"(tap32)的TC/IP属性中-高级-自动跃点计数改为手动,设为:25或小于25)
也就是说默认网关是根据较小的跃点数网关确定首选路由的!!
再查看route print ,路由表需要变成:
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.8 30
0.0.0.0 0.0.0.0 192.168.2.1 192.168.23.205 30
....
Default Gateway: 192.168.2.1
此时就应该可以通过vpn通道上外网了。
或者设置本地连接为静态IP,不设网关,手工添加本地路由,设置本地连接2(VPN)为自动获取IP、DNS,效果是一样的!
手工添加本地路由:route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 30
有关“跃点计数”知识的简介:
http://baike.baidu.com/view/1781753.htm?fr=ala0_1_1
http://winsvr.org/info/info.php?sessid=&infoid=61
至此openvpn共享密钥+桥接模式的配置完成!
多用户证书验证和text用户口令验证在openwrt下测试通过! 其他模式大家可以自行研究!!!
正确配置config 'openvpn' 'lan'option 'enable' '1'option 'port' '1194'option 'proto' 'udp'option 'dev' 'tap'option 'ca' '/etc/easy-rsa/keys/ca.crt'option 'cert' '/etc/easy-rsa/keys/server.crt'option 'key' '/etc/easy-rsa/keys/server.key'option 'dh' '/etc/easy-rsa/keys/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.5 255.255.255.0 192.168.1.201 192.168.1.254'list 'push' 'redirect-gateway'list 'push' 'dhcp-option DNS 192.168.1.1' list 'push' 'route-gateway 192.168.1.1'
或者换成option 'server' '10.8.0.0 255.255.255.0'client.ovpn文件
clienttls-clientdev tapproto udpremote 192.168.1.5 1194 #路由器的IP 端口resolv-retry infinitenobindpersist-tunpersist-key ca ca.crtcert client.crt key client.key dh dh1024.pemcomp-lzo verb 3 #route-method exe#route-delay 2
- openwrt上建立openvpn
- 在OpenWRT上部署OpenVPN服务端
- OpenWrt 搭建OpenVPN Server
- Linux上如何通过 OpenVPN 建立安全的远程连接
- openwrt上的asterisk的VOIP系统的建立
- Linux上如何通过 OpenVPN 建立安全的远程连接【上】
- Linux上如何通过 OpenVPN 建立安全的远程连接【下】
- openwrt在vmware下架openvpn服务器
- Milestone上Openvpn配置
- DO上CentOS7配置OpenVPN
- 利用openbsd+openvpn快速建立企业vpn
- 利用openvpn+linux快速建立企业VPN
- 利用openvpn+linux快速建立企业VPN
- 利用openbsd+openvpn快速建立企业vpn
- 利用openvpn+linux快速建立企业VPN
- 利用openvpn+linux建立企业VPN隧道
- win2003server建立分支-总部类型的OpenVPN
- Ubuntu 下建立OPENVPN 服务器/WINDOWS 客户端
- VIM训练游戏
- Vim命令图解和XVim使用
- Tcl/Tk 教學文件
- java发邮件时出现————java.lang.NoClassDefFoundError: javax/mail/Authenticator异常
- 关于测试的一些思路收集
- openwrt上建立openvpn
- 文件删除与备份
- 设计模式总览
- 如何实现unity3d建筑场景中灯光效果
- 夫妻租房,同时办取上海市居住证 攻略
- c 文件操作
- android线程之间的通信
- JAVA开发工具 MyEclipse Pro 2014 GA 下载 | myeclipse | myeclipse 2014 | myeclipse 2014下载 | myeclipse 2014破解
- 设计模式------------UML关系