CentOS6安装openvpn( 路由模式证书认证)

服务器端配置

1、安装openvpn

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

yum install openvpn -y

当然也可以从这个页面下载:http://openvpn.net/index.php/download.html

2、配置服务器

2.1 初始化服务端

cd /etc/openvpn/

cp /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf .

mkdir -p easy-rsa/keys && cd easy-rsa

cp -rf /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/* . && chmod +x *

2.2 配置PKI

vi vars

找到"export KEY_SIZE=”这行,根据情况把1024改成2048或者4096

再定位到最后面,会看到类似下面这样的

export KEY_COUNTRY="US"

export KEY_PROVINCE="CA"

export KEY_CITY="SanFrancisco"

export KEY_ORG="Fort-Funston"

export KEY_EMAIL="me@myhost.mydomain"

export KEY_EMAIL=mail@host.domain

export KEY_CN=changeme

export KEY_NAME=changeme

export KEY_OU=changeme

export PKCS11_MODULE_PATH=changeme

export PKCS11_PIN=1234

这个自己根据情况改一下,不改也可以运行。其实不改vars这个文件,vpn也可以跑起来。

3、产生证书

3.1、产生CA证书

. ./vars 或者: source ./vars

注意:前面是点儿空格再点儿

./clean-all && cp openssl-1.0.0.cnf openssl.cnf && ./build-ca

在这之前执行yum install openssl -y

狂敲回车即可,也可以随便写点资料。

3.2、产生服务器证书

./build-key-server myServer

myServer即服务器名,可以随便起,但要记住,后面要用到。

一路回车,遇到询问一律输入y

3.3、生成DH验证文件

./build-dh

这个没什么好说的,让服务器飞一会。

3.4、生成客户端证书

./build-key client1

client1替换成需要的用户,一路回车,遇到询问一律输入3.5、编辑服务配置文件

vi /etc/openvpn/server.conf

  • 找到port一行,后面的1194是端口号,根据需要进行调整(如果是非1194端口,则SELinux可能不允许通过,可以使用"setenforce 0"命令临时关闭selinux来测试)

  • 找到ca ca.crt这行,ca.crt替换为/etc/openvpn/easy-rsa/keys/ca.crt

  • cert这行后面的server.crt替换为/etc/openvpn/easy-rsa/keys/myServer.crt

  • key这行后面的server.key替换为/etc/openvpn/easy-rsa/keys/myServer.key

  • dh这行后面的dh1024.pem替换为/etc/openvpn/easy-rsa/keys/dh1024.pem

    注意上面两行的myServer.crtmyServer.key就是前面生成的东西。

  • 找到;push "redirect-gateway def1 bypass-dhcp",去掉最前面的注释符号,并且删除def1后面的bypass-dhcp,也就是将这行替换成:push "redirect-gateway def1"

  • 找到 ;push "dhcp-option DNS 208.67.222.222"以及;push "dhcp-option DNS 208.67.222.220" 替换为push "dhcp-option DNS 8.8.8.8"以及push "dhcp-option DNS 8.8.4.4" 同样是去掉前面的注释符号,这个可以根据自己的情况进行更改。

其他默认就可以了,保存配置。

4、启动服务

service openvpn start

或者

/etc/init.d/openvpn start

如果遭遇启动失败的情况,可以在配置文件中加上一行log-append openvpn.log

再尝试启动,然后到/etc/openvpn/检查openvpn.log文件来查看错误发生原因最后执行一行

chkconfig --level 235 openvpn on

openvpn加入启动项

设置外网访问

vi /etc/sysctl.conf

找到net.ipv4.ip_forward = 0

0改成1

sysctl -p

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 2.2.2.2

2.2.2.2替换成你自己VPSIP

/etc/init.d/iptables save

/etc/init.d/iptables restart

客户端配置

下载地址:http://openvpn.net/index.php/download.html

Windows链接:http://swupdate.openvpn.org/community/releases/openvpn-2.2.2-install.exe

进入C:\Program Files\OpenVPN目录,将sample-config下的client.ovpn文件复制到config目录,将之前在服务器产生的ca.crt client1.key client1.crt复制到config目录。

进行如下修改:

找到“remote my-server-1 1194”,修改成服务器相应配置

ca ca.crt

cert client.crt

key client.key

改为如下配置:

ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"

cert "C:\\Program Files\\OpenVPN\\config\\client1.crt"

key "C:\\Program Files\\OpenVPN\\config\\client1.key"

其它不变。

在这里进行连接

连接成功

好,就这些了,希望对你有帮助。

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim /etc/sysconfig/network-scripts/ifcfg-eth0 B...