当前位置:首页 > openvpn搭建
搭建openvpn
软件包:lzo-2.01.tar.gz
openvpn-2.2.2.tar.gz
openssl-1.0.1-beta2.tar.gz
一.软件的编译安装
#编译安装前,要确认gcc编译器安装,建议用yum安装,同时可以安装其相关依赖包,执行命令:yum install -y gcc*
1.编译安装lzo #用于openvpn数据传输的压缩 Shell> tar xf lzo-2.01.tar.gz -C /usr/src
Shell> cd /usr/src/zo-2.01
Shell>./configure --prefix=/usr/local/lzo && make && make install 2.编译安装openssl #是openvpn加密算法库
Shell> tar xf openssl-1.0.1-beta2.tar.gz -C /usr/src
Shell> cd /usr/src/ openssl-1.0.1-beta2
Shell> ./config --prefix=/usr/local/openssl && make && make install 3.编译安装openvpn
Shell>tar xf openvpn-2.2.2.tar.gz -C /usr/src Shell>cd /usr/src/openvpn-2.2.2
Shell>./configure --prefix=/usr/local/openvpn --with-lzo-headers=/usr/local/lzo/include --with-lzo-lib=/usr/local/lzo/lib --with-ssl-headers=/usr/local/openssl/include --with-ssl-lib=/usr/local/openssl/lib && make && make install
编译安装openvpn这一步很容易出错,经常会报没有找到lzo包和ssl加密算法库的错,在安装过程中,要确认指定的对应包的header和lib路径正确。不过在安装过程中也碰 到了这样的问题,lzo和ssl都已经安装,指定的路径也正确,但是还是报错,最后解决 的办法是换个openvpn的版本,其中原因不是很清楚,可能是openvpn某个版本的tar包 有bug。
二.生成keys文件
Shell> cd /usr/src/ openvpn-2.2.2/easy-rsa #这是产生key文件脚本的存放目录,最新版本
openvpn-2.3_rc2.tar.gz 已经不包含
easy-rsa目录,需要自己去生成脚本,官网有其下面脚本
内容链接,不是很建议把旧版本的easy-rsa目录copy过来,因为可能会有不可预料的错误 Shell> ls
1.0 2.0 Windows #1.0和2.0的区别应该是key版本的区别,这里用2.0
Shell>cd 2.0 #这是产生key的工作目录,其下面有产生key所需要的脚本、产生key的配置文件和产生key的变量: clean-all :清除以前的key的脚本
build-ca : 产生根证书及key的脚本
build-key-server : 产生服务器证书及key的脚本 builid-key:产生客户端证书及key的脚本
build-dh:产生密钥交互协议文件,可以增强安全性 vars:产生密钥的变量定义文件
openssl-xxx.cnf:产生密钥的配置文件sample
shell> cp openssl-xxx.cnf openssl.cnf #生成产生密钥配置文件 shell>vi vars 根据实际情况修改如下参数: KEY_CONFIG=$EASY_RSA/openssl KEY_DIR=$EASY_RSA/keys KEY_COUNTRY=\KEY_PROVINCE=\KEY_CITY=\KEY_ORG=\
KEY_EMAIL=\
这些变量只是默认值,可以在产生密钥的时候重新输入,其他的变量在创建密钥时根据实际情况制定。
Shell>source vars #使修改生效
Shell>mkdir keys #由于2.0目录下默认没有keys目录,手动创建,用于存放key Shell>./clean-all
Shell>./build-ca #生成根证书和key
Shell>./build-key-server server #生成服务器证书和key Shell>./build-key client #生成客户端证书和key Shell>./build-dh #生成dh文件
shell>/usr/local/openvpn/sbin/openvpn --genkey --secret `pwd`/keys/ta.key #生成HMAC firewall 的key,用于防止DOS、UDP port flooding,就是增加安全,可以开启也可以不开启,开启->
服务器配置文件中添加:tls-auth /etc/openvpn/keys/ta.key 0 客户端添加:tls-auth ta.key 1
Shell>mkdir /etc/openvpn/; cp –r /usr/src/openvpn-2.2.2/easy-rsa/2.0/keys /etc/openvpn/
生成key的过程如果有报错,多是变量和文件目录不存在的问题,调整变量值和建立文件目录就可以解决
三.服务端配置文件
Shell>vi /etc/openvpn/server.conf port 1439 proto udp dev tun
server 10.9.0.0 255.255.255.0
#push \ifconfig-pool-persist /etc/openvpn/ipp.txt ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/ta.key 0 keepalive 10 120 comp-lzo
status /var/log/openvpn-status.log log /var/log/openvpn.log verb 4 persist-key persist-tun
四.启动openvpn服务
Shell> modprobe tun #装载驱动
Shell>/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/server.conf Shell>lsof -i:1439 #查看启动成功
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME openvpn 3101 root 5u IPv4 12350 0t0 UDP *:eicon-x25
五.客户端连接 (window7)
1.安装openvpn-2.0.9-gui-1.0.3-install.exe
2.在openvpn-gui安装目录的conf目录中,编辑文件client.ovpn 客户端配置文件,文件内容:
client dev tun proto udp
remote 172.16.25.128 1439 nobind persist-key persist-tun
ca \cert \key \
route-method exe #window7要加的参数,不加报错 route-delay 2 #window7 要加的参数,不加报错 ns-cert-type server comp-lzo verb 4
tls-auth \
3.cp 相关的证书和key到config目录
4.运行openvpn-gui #window7要以兼容模式和管理员身份运行 5.连接服务器
注意:如果客户端和服务器的时间相差太多,客户端是连接不上vpn服务器的 6.测试:ping 10.9.0.1
=============================================================================== Openvpn用户名和密码登陆
声明:下面的配置是在配置好openvpn证书认证成功的基础上进行的
一:终端输入用户名和密码登陆VPN
客户端软件:NetVPN 或者 OpenVPN-GUI
配置过程:
1. 修改VPN服务器端配置,使VPN服务器要求用户名密码,并创建用户名密码,并取消
客户端证书验证。
服务器端配置文件中添加:
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
client-cert-not-required username-as-common-name script-security 3
VPN服务器端完整配置文件
port 1439 proto udp
dev tun
server 10.9.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/ta.key 0
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env client-cert-not-required
username-as-common-name script-security 3 keepalive 10 120 comp-lzo
status /var/log/openvpn-status.log log /var/log/openvpn.log verb 4 persist-key
persist-tun
注意:script-security 参数后面的值一定要是3,看帮助有如下描述
不用解释,其中的意思很明显了。。。。。。。。。
2. 下载验证脚本checkpsw.sh,下载地址http://openvpn.se/files/other/checkpsw.sh
脚本很简单,看下就懂,只需根据自己的实际情况修改2个变量值就ok PASSFILE=\修改
共分享92篇相关文档