Ubuntu 下建立OPENVPN 服务器WINDOWS 客户端.docx
《Ubuntu 下建立OPENVPN 服务器WINDOWS 客户端.docx》由会员分享,可在线阅读,更多相关《Ubuntu 下建立OPENVPN 服务器WINDOWS 客户端.docx(17页珍藏版)》请在冰豆网上搜索。
Ubuntu下建立OPENVPN服务器WINDOWS客户端
Ubuntu下建立OPENVPN服务器/WINDOWS客户端
断断续续大半月时间,虽然耗时不少,但也少有收获,终于还是将它搞定---OPENVPN。
网上的例子实在多不胜数,虽我阅资不少,但可惜大多都是成分残缺,要就是有中心无重点,要就是有重点无中心(官网?
算了吧,以我的英文程度,或许奥巴马都讲不赢我),看得我梦里看花,不知所云云...Ubuntu论坛虽然也有几篇是关于架设VPN的文章,可惜我百般尝试,照搬照弄,但也以失败告终....
所以在此分享成果,也当作笔录以便日后翻阅,也望能帮助同样困惑的你,此文若能帮助一二,小弟无幸欢欣。
构建环境:
Ubuntu10.10
以下步骤建议在root下进行,除去权限之闷!
!
#由于Ubuntu是不建议实用root的,所以若想使用root的话,必先在你当前用户下,在终端中输入:
sudopasswdroot更改root密码!
第一步;运行终端,安装OPENVPN
sudoapt-getinstallopenvpn
第二步;配置OPENVPN
终端下输入
sudocp-a/usr/share/doc/openvpn/examples/easy-rsa/2.0//etc/openvpn/easy-rsa
cd/etc/openvpn/easy-rsa/
sudoln-seasy-rsa/keys/etc/openvpn/keys #其实这个是快捷方式的意思
sudomkdir/var/lib/openvpn/
然后编辑vars文件(由于我是懒人,对VI命令又不常用,所以不如直接找到文件打开进行编辑来的快,谁让可爱的Ubuntu是图形界面叻)
主要编辑以下部分,注意KEY_COUNTRY和KEY_PROVINCE都以两个大写字母表示
exportKEY_COUNTRY="" #这里国家
exportKEY_PROVINCE="" #省份
exportKEY_CITY="" #城市
exportKEY_ORG="" #机构
exportKEY_EMAIL="" #Email
编辑完后保存!
终端输入命令进入cd/etc/openvpn/easy-rsa/#进入刚COPY的目录进行配置!
输入以下命令
source./vars
./clean-all
./build-ca
./build-key-serverserver
./build-keyclient
./build-dh
注意:
./build-key-server与./build-key使用默认选项即可。
若日后需添加新的客户端,直接运行以下命令
source./vars
./build-keyclient2
./build-keyclient3
./build-keyclient3......
第三步;进行服务器文件的配置
终端下输入:
sudocp/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz/etc/openvpn/
sudogunzipserver.conf.gz#运行这条记得路径是在/etc/openvpn/中!
#以上是将实例文件copy然后解压到我们所在的配置的文件夹/etc/openvpn/中!
(或输入cd ..返回上一层目录)
打server.conf开进行配置
由于注解太多,所以删除了不少边幅,但不妨碍运行,作为参考修改!
当然你也可以复制~
#OpenVPN的监听地址
localxxx.xxx.xxx.xxx
#OpenVPN的监听端口
port1194
#使用UDPServer
protoudp
#使用tun通道
devtun
#相对路径/etc/openvpn
cakeys/ca.crt
certkeys/server.crt
keykeys/server.key
dhkeys/dh1024.pem
#OpenVPN的子网地址
server10.8.0.0255.255.255.0
#客户端的Internet访问使用OpenVPN通道
push"redirect-gatewaydef1"
#Windows客户端会使用此DNS地址
push"dhcp-optionDNS208.67.222.222" #这样填DNS需根据实际
push"dhcp-optionDNS208.67.220.220"
#记录客户端分配的ip地址情况,如果OpenVPN服务重启,
#客户端重新连接的时候会按照此文件分配原先的地址。
ifconfig-pool-persist/var/lib/openvpn/ipp.txt
#每10秒ping一次,120秒内客户端没有动作就断开连接
keepalive10120
#客户端之间可以互相访问
client-to-client
#对OpenVPN链接进行压缩,客户端的配置文件必须同时使用
comp-lzo
#OpenVPN的用户和用户组
usernobody
groupnobody
#如果user和group的用户和用户组没有访问key的权限
#避免产生权限不足的bug
persist-key
persist-tun
#日志文件
status/var/lib/openvpn/status.log
#日志文件的记录级别
verb3
以上为server.conf的配置主要
然后运行OPENVPN!
运行OPENVPN有两种方式:
第一种:
终端下输入:
openvpn/etc/openvpn/server.conf
若如上显示,那么恭喜你,你的OPENVPN已在运行当中了!
按Ctrl+C可以停止运行.
第二种:
在终端下输入:
sudoopenvpnserviceopenvpn
当提示如上时,那么OPENVPN已经运行当中了。
相对而言,第一种运行比较直观看到OPENVPN的运行详细,所以用于测试较好!
而第二种就是直接运行,相当于直接投入使用。
配置到这里,客户端已经是可以进行连接的了,但是连接上却是不能上网的,因为还需要设置数据转发!
!
在终端中输入如下命令
sudosysctl-wnet.ipv4.ip_forward=1
sudoiptables-tnat-APOSTROUTING-s10.8.0.0/24-oeth0-jMASQUERADE
这时候即可~!
后来我发现存在一个问题,就是但我重启Ubuntu后,发现客户端连上后上不了网,之后我再重新输入
sudoiptables-tnat-APOSTROUTING-s10.8.0.0/24-oeth0-jMASQUERADE
这时候又可以正常上网,所以我估计是Ubuntu关机后把这条命令给消了(不知道其他人会不会有这个现象),所以我将这条命令放到开机启动时运行,找到/etc/rc.lcacl并打开
将命令写上(注意位置!
),那么下次开机的时候它就会自动运行这条命令,那么就不用担心重启后客户端上不了网了。
第二部分客户端配置
我现在知道为什么网上的文章大多都省略佐客户端不讲或讲个大概了,写到这里我有点手软了,所以请容休息半刻,吃个吉仔先~
**********************************************************************************************************
好,吃完,吉仔有点酸--继续.....
客户端环境:
WindowsXPsp3(版本?
当然是中国式正版啦!
)
首先在刚才我们在配置OPENVPN的时候,配置过客户端文件(别问我不知什么时候配置过),现在是用它们的时候了
它们在这里
就以上这个三个文件,将其复制打包,发送或传输等等方法将其送到客户端机上,这里提供两种方法
1,打包后,用Email发送。
2,用
这个,不会用问XX兄或GOOGLE弟,报个名上去就帮到你。
然后到OPENVPN官网下载windowsclient
下载链接:
版本openvpn-2.1.3
下载完后直接安装!
基本无他,反正是GUI,一路NEXT便是~
这时候桌面多了
当然还有右下角的这个
进入:
C:
\ProgramFiles\OpenVPN\sample-config
将
连同配置的那三个客户端文件一并复制到以下路径
C:
\ProgramFiles\OpenVPN\config
双击对
进行配置
同上,修修边幅,让世界变得更加美好~!
!
以下是配置内容:
#号和;号都是注释
#定义是一个客户端
client
#定义使用路由IP模式,与服务端一致
;devtap
devtun
#定义Windows下使用的网卡名称,linux不需要
;dev-node我的连接
#定义使用的协议,与服务端一致
;prototcp
protoudp
#指定服务端地址和端口,可以用多行指定多台服务器
#实现负载均衡(从上往下尝试)
remote192.168.35.881194 (因为我在内网测试,所以地址为私有,若公网进行端口映射后,填公网IP即可)
;remotemy-server-21194
#若上面配置了多台服务器,让客户端随机连接
;remote-random
#解析服务器域名
#Keeptryingindefinitelytoresolvethe
#hostnameoftheOpenVPNserver. Veryuseful
#onmachineswhicharenotpermanentlyconnected
#totheinternetsuchaslaptops.
resolv-retryinfinite
#客户端不需要绑定端口
#Mostclientsdonotneedtobindto
#aspecificlocalportnumber.
nobind
#也是为了让Openvpn也nobody运行(安全)
#注意:
Windows不能设置
usernobody
groupnobody
#Trytopreservesomestateacrossrestarts.
persist-key
persist-tun
#若客户端通过HTTPProxy,在这里设置
#要使用Proxy,不能使用UDP为VPN的通讯协议
;http-proxy-retry#retryonconnectionfailures
;http-proxy[proxyserver][proxyport#]
#无线网络有很多多余的头文件,设置忽略它
;mute-replay-warnings
#重点,就是指定ca和客户端的证书
#注意,下面的两个号是连在一起的,之间没有空格
caca.crt
certclient.crt
keyclient.key
#如果服务端打开了PAM认证模块,客户端需要另其有效
;auth-user-pass
#一些安全措施
#Verifyservercertificatebychecking
#thatthecerticatehasthensCertType
#fieldsetto"server". Thisisan
#importantprecautiontoprotectagainst
#apotentialattackdiscussedhere:
#
#
#Tousethisfeature,youwillneedtogenerate
#yourservercertificateswiththensCertType
#fieldsetto"server". Thebuild-key-server
#scriptintheeasy-rsafolderwilldothis.
;ns-cert-typeserver
#Ifatls-authkeyisusedontheserver
#theneveryclientmustalsohavethekey.
;tls-authta.key1
#Selectacryptographiccipher.
#Ifthecipheroptionisusedontheserver
#thenyoumustalsospecifyithere.
;cipherx
#使用lzo压缩,与服务端一致
comp-lzo
#Setlogfileverbosity.
verb3
#Silencerepeatingmessages
;mute20
然后保存!
现在运行OpenVPNGUI,打开后其图标出现在菜单栏右下角
,对其右击,选择
Connect
它会弹个框出来显示其连接的运行状态,所以莫惊讶~
直到它隐藏后,右下角OPENVPN图标变绿,且气泡提示所分配到的IP
然后PING下VPNSERVER等地址,看能否PING通,若PING通了
那么就大功告成~!
!
可以开香槟庆祝下~