一、openvpn原理
openvpn通过使用公开密钥(非对称密钥,加密解密使用不同的key,一个称为Publice key,另外一个是Private key)对数据进行加密的。这种方式称为TLS加密。
openvpn使用TLS加密的工作过程是,首先VPN Sevrver端和VPN Client端要有相同的CA证书,双方通过交换证书验证双方的合法性,用于决定是否建立VPN连接。然后使用对方的CA证书,把自己目前使用的数据加密方法加密后发送给对方,由于使用的是对方CA证书加密,所以只有对方CA证书对应的Private key才能解密该数据,这样就保证了此密钥的安全性,并且此密钥是定期改变的,对于窃听者来说,可能还没有破解出此密钥,VPN通信双方可能就已经更换密钥了。
二、安装openvpn和easy-rsa
1.yum安装
yum -y
install
openvpn libssl-dev openssl easy-rsa
安装完成后,可以查下openvpn版本
- 下载 OpenVPN 的源码包:
# wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz
。 - 使用 rpmbuild 命令将源码包编译成 rpm 包进行安装:
# rpmbuild -tb openvpn-2.2.2.tar.gz
。执行 rpmbuild 命令后即开始编译,编译完成后,/root/rpmbuild/RPMS/x86_64
目录下会生成名为 openvpn-2.2.2-1.x86_64.rpm 的安装包。 - 执行
# rpm -ivh openvpn-2.2.2-1.x86_64.rpm
,以 rpm 包的方式进行安装:
三、初始化
1.执行命令初始化 cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0
,然后找到 vars 证书环境文件,修改以下 5 行 export 定义的参数值:
export KEY_COUNTRY="CN" 所在的国家
export KEY_PROVINCE="BJ" 所在的省份
export KEY_CITY="Hangzhou" 所在的城市
export KEY_ORG="aliyun" 所属的组织
export KEY_EMAIL=my@test.com 邮件地址
2.生成证书、密钥和参数文件
请按照以下步骤生成所需的证书、密钥和参数文件:
- 执行以下命令,生成服务端的证书并清除
keys
目录下的所有 key:ln -s openssl-1.0.0.cnf openssl.cnf 软链接到openssl-1.0.0.cnf配置文件
source ./vars
./clean-all
- 执行以下命令生成 CA 证书。在初始化时,您已经在 vars 证书环境文件中配置了默认参数值,在本步骤中连续回车确认,完成配置即可。
./build-ca
- 执行以下命令创建秘钥与证书,其中
aliyunuser
是用户名,连续回车确认,最后会有两次交互,输入y
确认。完成后,keys
目录下会生成 1024 位 RSA 服务器密钥aliyunuser.key
、aliyunuser.crt
和aliyunuser.csr
三个文件。./build-key aliyunuser(为用户开账号即如此)
- 执行以下命令,生成用于客户端验证的 Diffie Hellman 参数,完成后,
keys
目录下会生成 dh 参数文件dh1024.pem
。./build-dh
6.复制证书、密钥和参数文件
请按照以下步骤将生成的证书、密钥和参数文件复制到指定位置:
-
- 执行以下命令,将
/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys
目录下的所有文件复制到/etc/openvpn
目录下:cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/
- 执行以下命令,将 OpenVPN 服务端配置文件
server.conf
复制到/etc/openvpn/
目录下:cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/
配置完成后,
server.conf
文件的内容如下:
- 执行以下命令,将
port 1194
proto tcp
dev tun
ca ca.crt
cert ceshiserver.crt
key ceshiserver.key # This file should be kept secret
dh dh1024.pem
cipher AES-256-CBC
server 10.30.xx.0 255.255.255.0 #vpn地址池
ifconfig-pool-persist ipp.txt
push “route 192.168.xx.0 255.255.255.0” #为哪个网段开VPN
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 3
crl-verify /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/crl.pem #注销用户用的文件
management localhost 7505四、设置 iptables
设置 iptables 前,请确保 iptables 已经开启且
/etc/sysconfig/iptables
文件已经存在,然后按照以下步骤完成设置:-
- 开启内部路由转发:
vi /etc/sysctl.conf
- 修改以下参数,启用 IPv4 转发:
net.ipv4.ip_forward = 1
- 使内核参数生效:
sysctl -p
- 添加 iptables 规则,确保服务器可以转发数据包到阿里云内网和外网:
iptables -t nat -A POSTROUTING -s 10.30.xx.0/24 -j MASQUERADE
- 保存 iptables 配置:
- 开启内部路由转发:
service iptables save
五、启动 OpenVPN
执行命令启动 OpenVPN:
/etc/init.d/openvpn start
,然后执行命令:netstat -ano | grep 1194
,查看 1194 端口正在监听,确保 OpenVPN 正在运行。六、客户端配置
1、windows客户端配置
软件下载链接:http://openvpn.ustc.edu.cn/
1、按照系统类型选择下载openvpn客户端
2、从服务器上根据用户生成认证文件,把认证文件拷贝到openvpn安装目录config下面,一般在C:\program files\openvpn\config,也可能在C:\Program Files (x86)\OpenVPN\config。
3、到openvpn的安装目录bin下(默认是C:\program files\openvpn\bin),找到openvpn-gui.exe, 在这个openvpn-gui.exe文件上单击鼠标右键,选择”以管理员身份运行”(英语是Run as Administrator)
4. 如果openvpn-gui已经启动,选择退出
5、单击openvpn-gui,在右下角openvpn-gui上单击鼠标右键,根据自己所在网络,到ustc-dianxin或其他菜单中,单击”connect”可以连接vpn
连接成功如下:
6、有用户碰到windows10下DNS查询异常,使用如下方式解决:文本编辑器打开ovpn配置文件。末尾插入一行,内容为: block-outside-dns
2、MAC客户端配置
软件下载地址:https://tunnelblick.net/
1、下载需要的版本
2、本地需要五个文件(三个用户名字开头的文件,一个ca.crt,一个认证文件.opvn)
2、从服务器上根据用户生成认证文件,打开Tunnelblick程序,把openvpn认证文件client.ovpn拖入到Tunnelblick程序配置列。3、点击连接即可,连接成功如下3、注销用户revoke-full username
1.《openvpn搭建和使用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《openvpn搭建和使用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/study/24688.html