openvpn服务器&客户端配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caojengineer/article/details/52911066

openvpn服务器&客户端配置



1. 服务器端

环境:CentOS 6.5
软件:openvpn、easy-rsa。

1.1 关闭selinux

    #setenforce 0
    查看状态
    #sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

1.2 安装openvpn

    #yum install -y openvpn
    查看版本:
    #openvpn --version

1.3 安装easy-rsa

    #yum install -y easy-rsa
    查看
    #rpm -ql easy-rsa

1.4 制作CA证书

    #mkdir /etc/openvpn/easy-rsa/
    #cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

1.5 编辑vars文件

    #vi /etc/openvpn/easy-rsa/vars
    修改
    export KEY_COUNTRY="CN"
    export KEY_PROVINCE="GD"
    export KEY_CITY="Shenzhen"
    export KEY_ORG="LD"
    export KEY_EMAIL="user@user.com"
    export KEY_OU="user"
    export KEY_NAME="user"

1.6 生效vars

    #cd /etc/openvpn/easy-rsa
    #source vars

1.7 删除keys目录下的文件

    #./clean-all

1.8 制作ca证书

    #./build-ca
    使用默认信息,一直回车即可。
    #cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/

1.9 查看 ca.crt / ca.key 两个文件。

    #ls -l /etc/openvpn/easy-rsa/keys/

1.10 制作server端证书

    #./build-key-server vpnserver
    使用默认配置,最后两次需要选择两次y
    Sign the certificate? [y/n]:y
    1 out of 1 certificate requests certified, commit? [y/n]y

1.11 查看server端证书

    查看 vpnserver.crt/vpnserver.csr/vpnserver.key
    #ls -al /etc/openvpn/easy-rsa/keys

1.12 生成加密交换时的Diffie-Hellman文件

    #./build-dh

1.13 查看加密文件,dh2048.pem

    #ls -al /etc/openvpn/easy-rsa/keys

1.14 将vpnserver.crt/vpnserver.key/dh2048.pem复制到/etc/openvpn/目录下

    #cd /etc/openvpn/easy-rsa/keys
    #cp vpnserver.crt vpnserver.key dh2048.pem /etc/openvpn/
    #ls /etc/openvpn/
    显示
    ca.crt dh2048.pem easy-rsa openvpn.crt openvpn.key
至此, server端相关证书制作完成。

1.15 配置server端

    #cp /usr/share/doc/openvpn-2.3.12/sample/sample-config-files/server.conf /etc/openvpn/server.conf.bak
    #cp /etc/openvpn/server.conf.bak /etc/openvpn/server.conf
    #cd /etc/openvpn/
    #vi server.conf

    去掉;client-to-client前面的";"。

    cert server.crt 改成 cert vpnserver.crt #也可使用绝对路径
    key server.key  改成 key vpnserver.key  #也可使用绝对路径
    其它的使用默认配置即可。

    如果需要配置固定ip地址,则将以下两行前面";"去掉
    ;client-config-dir ccd
    ;route 10.8.0.0 255.255.255.252

    新建 ccd 目录
    #mkdir /etc/openvpn/ccd

    为testuser配置固定虚拟ip地址
    #cd /etc/openvpn/ccd
    #echo ifconfig-push 10.8.0.1 10.8.0.2 > testuser 
    10.8.0.0 需要与server.confg里面的 route 10.8.0.0 255.255.255.252  一样。

1.16 重启openvpn服务

    配置防火墙
    #iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
    #iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
    #service iptables save
    重启openvpn
    #service openvpn start
    Starting openvpn: [OK]
    开机启动
    #chkconfig openvpn on

1.17 查看是否启动openvpn服务

    #ss -tnlp | grep 1194
    显示LISTEN 0 1 *1194 *.* users:(("openvpn",1765,6))表示成功。

2. 生成客户端证书及key

2.1 制作client端使用的证书

    #cd /etc/openvpn/easy-rsa
    #./build-key testuser
    使用默认配置,最后需要输入两次y
    Sign the certificate? [y/n]:y
    1 out of 1 certificate requests certified, commit? [y/n]y

2.2 查看testuser配置的文件

    #ls keys
    应该包含了 testuser.crt testuser.csr testuser.key
    其中,testuser.crt和testuser.key是我们需要使用的。

    如果想快速生成,也可使用
    #./build-key --batch testuser

2.3 编辑testuser.ovpn配置文件

    #cp /usr/share/doc/openvpn-2.3.12/sample/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/testuser.ovpn
    #vi testuser.ovpn

修改以下几点:

remote my-server-1 1194  改成  remote 自己服务器ip 1194
cert client.crt 改成 cert testuser.crt
key client.key 改成 key testuser.key

配置文件字段详细说明:

# 端口,使用默认端口
port 1194
# 默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 全路径为/etc/openvpn/keys/ca.crt
ca ca.crt
cert testuser.crt
key testuser.key 
dh dh2048.pem
# 默认虚拟局域网网段,不要和实际的局域网冲突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是这台VPN服务器所在的内网的网段
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log 
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5

3.客户端

下载cert和key:
将服务器端以下4个文件通过远程下载到电脑上。
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/testuser.crt
/etc/openvpn/easy-rsa/keys/testuser.key
/etc/openvpn/easy-rsa/keys/testuser.ovpn

3.1 Mac 端

  1. 下载Tunnelblick
    下载地址:https://tunnelblick.net/downloads.html

  2. 导入配置文件
    打开Tunnelblick, 将testuser.ovpn拖到软件上即可。

  3. 点击“连接”
    连接后的图片

3.2 Windows 10

  1. 下载 OpenVPN 客户端并安装。
    http://openvpn.ustc.edu.cn

  2. 导入配置
    将ca.crt/testuser.crt/testuser.key/testuser.ovpn文件放入 c:\Program Files\OpenVPN\config目录下

  3. 打开软件,即可实现联接。
    连接后的图片

3.3 Android 端

  1. android 端安装 OpenVPN apk
    下载地址:
    https://play.google.com/store/apps/details?id=net.openvpn.privatetunnel

  2. 可以将ca.crt 和 testuser.crt testuser.key 合到 testuser.ovpn 文件里面。
    格式如下:
    testuser.ovpn内容

    <ca>
    ca.crt内容
    </ca>
    <cert>
    testuser.crt内容,-----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE----- 内容
    </cert>
    <key>
    testuser.key内容
    </key>

打开app,导入testuser.ovpn即可。

3.4 使用vnc远程登录

vnc远程连接,必须配置成固定ip地址,请参照上述 [1.15]
目前我只用过 windows 登录 android 端。
windows 上需要安装 VNC-View 应用。
VNC-View: https://www.realvnc.com/download/viewer/
如下图。
这里写图片描述


阅读更多
相关热词
换一批

没有更多推荐了,返回首页