安装
输入如下命令安装。
1 | #Fedora 24安装命令 |
配置
生成客户端文件
到OpenVPN服务端easy-rsa
目录下,输入如下命令生成客户端key:
1 | build-key client |
这里介绍在Fedora中如何设置OpenVPN客户端。将生成的客户端文件拷贝到Fedora的/etc/openvpn
配置目录中即可,生成的客户端文件有:
- ca.crt
- client.crt
- client.key
- client.ovpn
在Fedora中将client.ovpn改为client.conf即可。启动OpenVPN客户端(root权限):
1 | openvpn client.conf |
开机启动
输入如下命令开启开启自动启动:
1 | #检查OpenVPN是否在本运行级别下设置为开机启动 |
chkconfig provides a simple command-line tool for maintaining the /etc/rc[0-6].d
directory hierarchy by relieving system administrators of the task of directly manipulating the numerous symbolic links in those directories.
delete from positional where vtime in ( select vtime from positional group by vtime having count()>1) and id not in (select top 1 id from positional group by vtime having count()>1 );
问题解决
在Fedora 24中运行openvpn client.conf
后提示如下错误:
1 | Sat Oct 8 23:32:19 2016 Socket Buffers: R=[87380->87380] S=[16384->16384] |
发生此错误的原因是OpenSSL包中,当前使用的OpenSSL(版本:OpenSSL 1.0.0e 6 Sep 2011)默认的摘要算法为MD5。而MD5算法在目前是非常不安全的(Hash碰撞攻击等),较大的彩虹表可以轻易的找出Hash对应值。所以在较新的操作系统(这里是Fedora 24)已经默认不使用MD5算法,所以会有此错误(Windows 7支持MD5)。解决此问题的思路不外乎2种,一种是使用sha256、sha512等摘要算法(MD),另一种就是启用操作系统对MD5的支持,推荐前者。
修改加密方式(推荐)
修改加密方式在OpenVPN目录的文件中(我的是在C:\Program Files (x86)\OpenVPN\easy-rsa\openssl-1.0.0.cnf)。将
1 | default_md = md5 # use public key default MD |
改为
1 | default_md = sha256 # use public key default MD |
启用操作系统MD5支持
Temporally enable it.
1 | export NSS_HASH_ALG_SUPPORT=+MD5 |
Enable MD5 support through NetworkManager
1 | $ sudo vim /usr/lib/systemd/system/NetworkManager.service |
Append this.
1 | [Service] |
And restart daemon
1 | $ sudo systemctl daemon-reload |
提示如下错误:
1 | Sun Oct 09 11:33:22 2016 OpenVPN 2.2.2 Win32-MSVC++ [SSL] [LZO2] [PKCS11] built on Dec 15 2011 |
首先检查服务端OpenVPN是否已经启动;其次检查服务端的配置文件无误,这里是将位数由1024改为2048后在服务端的配置文件没有修改为2048pem。
1 | # Diffie hellman parameters. |
出现如下错误:
1 | Tue Oct 11 12:44:00 2016 Socket Buffers: R=[124928->124928] S=[124928->124928] |
检查防火墙是否过滤了1194端口的数据。
1 | iptables -A INPUT -p tcp --dport 1194 -j ACCEPT |
检查配置文件是否通过TCP协议而不是UDP。