Centos 7安装并配置OpenVPN

1 安装OpenVPN

开启epel源,并采用yum的方式安装openvpn

$ yum install -y epel-release
$ yum update -y
$ yum install -y openssl lzo pam openssl-devel lzo-devel pam-devel
$ yum install -y easy-rsa
$ yum install -y openvpn

2 配置OpenVPN服务器

2.1 创建配置过程中需要使用的目录

  1. 创建日志存放目录:mkdir -p /var/log/openvpn/
  2. 创建用户管理目录:mkdir -p /etc/openvpn/server/user
  3. 配置目录权限:chown openvpn:openvpn /var/log/openvpn

2.2 生成证书

通过yum方式安装的easy-rsa是3.x版本,可直接从安装目录中拷贝一份工具到/etc/openvpn

$ cp -rf /usr/share/easy-rsa/3.0.8 /etc/openvpn/server/easy-rsa

2.2.1 为服务器端创建证书

  1. 切换至/etc/openvpn/server/easy-rsa目录
  2. 使用命令./easyrsa init-pki进行初始化,会在当前目录创建PKI目录,用来存储一些中间变量和最终生成的证书
  3. 使用命令./easyrsa build-ca nopass创建证书
  4. 生成服务器端证书:./easyrsa build-server-full server nopass
  5. 创建Diffie-Hellman./easyrsa gen-dh,确保key可以穿越不安全网络的命令
  6. 整理服务器端证书:
$ mkdir -p /etc/openvpn/server
$ cp -a pki/ca.crt /etc/openvpn/server/
$ cp -a pki/private/server.key /etc/openvpn/server
$ cp -a pki/issued/server.crt /etc/openvpn/server
$ cp -a pki/dh.pem /etc/openvpn/server
$ cp -a ta.key /etc/openvpn/server

2.2.2 为客户端创建证书

  1. 生成无密码的客户端证书:./easyrsa build-client-full client nopass
  2. 生成带密码的客户端证书:./easyrsa build-client-full jiaoxn,会提示让你输入密码,记住设置的密码,在连接OpenVPN服务端时会使用,可多次操作该步骤为多个用户创建证书

2.2.3 创建ta.key

为了提高OpenVPN的安全性,可以创建ta.keyopenvpn --genkey --secret ta.key,能够加强认证方式,防止攻击。

2.3 编辑配置文件

  1. 拷贝sample.conf/etc/openvpn作为起始配置文件:cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/server

  2. 使用vi /etc/openvpn/server.conf命令编辑配置文件

    • 将25行修改为:local 0.0.0.0
    • 取消35行注释,修改效果:proto tcp
    • 注释36行,修改效果:; proto udp
    • 修改78行,设置ca.crt的路径:ca /etc/openvpn/server/ca.crt
    • 修改79行,设置server.crt的路径:ca /etc/openvpn/server/server.crt
    • 修改80行,设置server.key的路径:ca /etc/openvpn/server/server.key
    • 修改85行,设置dh的路径:dh /etc/openvpn/server/dh.pem
    • 修改141行:push "route 10.10.10.0 255.255.255.0"
    • 修改244行:tls-auth /etc/openvpn/server/ta.key 0
    • 取消257行注释:compress lz4-v2
    • 取消258行注释:push "compress lz4-v2"
    • 取消274、275行注释
    • 取消296行注释,并修改日志文件地址:log /var/log/openvpn.log
    • 注释315行
    • 其他配置内容保持默认即可

3 启动OpenVPN并配置开机启动

  1. 使用命令vi /usr/lib/systemd/system/openvpn-server\@.service编辑服务文件,修改ExecStart的值为ExecStart=/usr/sbin/openvpn --status %t/openvpn-server/status-%i.log --status-version 2 --suppress-timestamps --config server.conf
  2. 修改服务文件的名称cp /usr/lib/systemd/system/openvpn-server\@.service /usr/lib/systemd/system/openvpn-service
  3. 启动OpenVPNsystemctl start openvpn-service
  4. 配置OpenVPN开机启动:sysemctl enable openvpn-service

4 配置防火墙

配置防火墙,开启1194端口:

$ firewall-cmd --permanent --add-masquerade
$ firewall-cmd --permanent --add-service=openvpn
$ firewall-cmd --permanent --add-port=1194/tcp
$ firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
$ firewall-cmd --reload

5 Windows客户端配置

  1. /etc/openvpn/server/easy-rsa拷贝ta.key文件
  2. /etc/openvpn/server/easy-rsa/pki/private拷贝客户端的.key文件,例如:jiaoxn.key
  3. /etc/openvpn/server/easy-rsa/pki/issued拷贝客户端的.crt文件,例如:jiaoxn.crt
  4. /etc/openvpn/server/easy-rsa/pki拷贝客户端的ca.crt文件
  5. Windows系统安装OpenVPN客户端后,打开配置文件夹(默认是:C:\Program Files\OpenVPN\config),新建文件夹(例如:client),拷贝前面4个文件到新建的文件夹
  6. 在第5步新建的文件夹中,创建client.ovpn文件(文件名和文件夹名称一致),配置内容如下,其中jiaoxn.crtjiaoxn.key替换成对应的文件名
client
dev tun
proto tcp
remote 192.168.1.70 1194
resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
ca ca.crt
cert jiaoxn.crt
key jiaoxn.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
compress lz4-v2
verb 3
;mute 20
  1. 右键VPN图标,选择刚刚配置的文件夹名称,点击“连接”,密码为姓名缩写+"@123",例如:``jiaoxn@123
上一篇:安全函数_概念


下一篇:液晶显示屏简介以及与CRT显示屏的对比