一、服务器配置及软件版本
1.版本信息
项目 |
版本号 |
备注 |
操作系统 |
centos 6.5 |
密码:P@ssw0rdvpn |
openvpn版本 |
openvpn-2.3.14 |
yum安装默认安装最新版本 |
2.服务器地址说明
网卡 |
地址 |
掩码 |
外网 eth0 |
222.190.107.69 |
255.255.255.0 |
内网1 eth1 |
172.16.5.233 |
255.255.255.0 |
内网2 eth2 |
172.16.1.233 |
255.255.255.0 |
虚拟网卡 tun0 |
10.8.0.1 |
255.255.255.0 |
二、服务器安装及配置
1.安装前准备
1.1 selinux关闭
[root@openvpn ~]# setenforce 0
[root@openvpn ~]# sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
1.2 openssl和lzo安装
lzo用于压缩通讯数据加快传输速度
[root@openvpn ~]# yum -y install openssl openssl-devel
[root@openvpn ~]# yum -y install lzo
1.3 epel源安装
[root@openvpn ~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@openvpn ~]# sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
2.OpenVPN安装和证书生成
2.1 OpenVPN、openvpn-auth-ldap和easy-rsa的安装
#easy-rsa用来生成证书
[root@openvpn ~]# yum -y install openvpn easy-rsa openvpn-auth-ldap
2.2 vars文件证书变量修改
[root@openvpn ~]# cd /usr/share/easy-rsa/2.0
[root@openvpn 2.0]# vim vars
#设置国家名称
export KEY_COUNTRY="CN"
#设置省份名称
export KEY_PROVINCE="JS"
#设置城市名称
export KEY_CITY="NJ"
#设置组织名称
export KEY_ORG="Strong"
#设置邮件地址
export KEY_EMAIL="[email protected]"
#设置组织名称
export KEY_OU="Strong"
#初始化环境变量
[root@openvpn 2.0]# source vars
2.3 证书生成
#清除所有证书
[root@openvpn 2.0]# ./clean-all
#生成根证书ca.crt和根密钥ca.key(一路按回车即可)
[root@openvpn 2.0]# ./build-ca
#为服务端生成名为server的证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
[root@openvpn 2.0]# ./build-key-server server
#为客户端生成名为client证书
[root@openvpn 2.0]# ./build-key client
#创建迪菲·赫尔曼密钥,会生成dh2048.pem文件
[root@openvpn 2.0]# ./build-dh
#生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
[root@openvpn 2.0]# openvpn --genkey --secret keys/ta.key
#查看生成的证书
[root@openvpn 2.0]# ll keys/
总用量 88
-rw-r--r-- 1 root root 5429 2月 8 16:24 01.pem
-rw-r--r-- 1 root root 5311 2月 8 16:26 02.pem
-rw-r--r-- 1 root root 1696 2月 8 16:23 ca.crt
-rw------- 1 root root 1704 2月 8 16:23 ca.key
-rw-r--r-- 1 root root 5311 2月 8 16:26 client.crt
-rw-r--r-- 1 root root 1066 2月 8 16:26 client.csr
-rw------- 1 root root 1700 2月 8 16:26 client.key
-rw-r--r-- 1 root root 424 2月 8 16:27 dh2048.pem
-rw-r--r-- 1 root root 250 2月 8 16:26 index.txt
-rw-r--r-- 1 root root 21 2月 8 16:26 index.txt.attr
-rw-r--r-- 1 root root 21 2月 8 16:24 index.txt.attr.old
-rw-r--r-- 1 root root 125 2月 8 16:24 index.txt.old
-rw-r--r-- 1 root root 3 2月 8 16:26 serial
-rw-r--r-- 1 root root 3 2月 8 16:24 serial.old
-rw-r--r-- 1 root root 5429 2月 8 16:24 server.crt
-rw-r--r-- 1 root root 1066 2月 8 16:24 server.csr
-rw------- 1 root root 1708 2月 8 16:24 server.key
-rw------- 1 root root 636 2月 8 16:30 ta.key
3.openvpn服务端配置
3.1 证书复制
#在/etc/openvpn目录下创建存放证书的目录keys
[root@openvpn ~]# mkdir /etc/openvpn/keys
#将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
[root@openvpn ~]# cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
3.2 服务端配置文件配置
复制一份服务器端配置文件模板server.conf到/etc/openvpn/
[root@openvpn ~]# cp /usr/share/doc/openvpn-2.3.14/sample/sample-config-files/server.conf /etc/openvpn/
编辑server.conf
[root@openvpn ~]# grep '^[^#;]' /etc/openvpn/server.conf
#openvpn程序端口号
port 1194
#协议为tcp
proto tcp
dev tun
#证书位置
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
#vpn虚拟地址段,不可与实际地址冲突
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
#加入内网的地址段的路由
push "route 172.16.1.0 255.255.255.0"
push "route 172.16.5.0 255.255.255.0"
#允许客户端之间通信
client-to-client
#允许一个证书多人使用
duplicate-cn
keepalive 10 120
#证书路径
tls-auth /etc/openvpn/keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
verb 5
#使用用户名认证
username-as-common-name
#使用活动目录认证,注意文件位置
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf"
3.3 AD认证文件ldap.conf配置
该配置文件负责连接ldap服务器
[root@openvpn ~]# vim /etc/openvpn/auth/ldap.conf
<LDAP>
# LDAP server URL
#LDAP server的地址和端口
URL ldap://172.16.5.1:389
# Bind DN (If your LDAP server doesn't support anonymous binds)
# BindDN uid=Manager,ou=People,dc=example,dc=com
#LDAP server的管理员账号
BindDN "[email protected]"
# Bind Password
#LDAP server的管理员密码
Password P#ssw0rd#dc
# Network timeout (in seconds)
Timeout 60
# Enable Start TLS
#禁用TLS
TLSEnable no
# Follow LDAP Referrals (anonymously)
FollowReferrals no
# TLS CA Certificate File
#TLSCACertFile /usr/local/etc/ssl/ca.pem
# TLS CA Certificate Directory
#TLSCACertDir /etc/ssl/certs
# Client Certificate and key
# If TLS client authentication is required
#TLSCertFile /usr/local/etc/ssl/client-cert.pem
#TLSKeyFile /usr/local/etc/ssl/client-key.pem
# Cipher Suite
# The defaults are usually fine here
# TLSCipherSuite ALL:!ADH:@STRENGTH
</LDAP>
<Authorization>
# Base DN
#基础OU设置
BaseDN "dc=nj-strongit,dc=com,dc=cn"
# User Search Filter
SearchFilter "(&(sAMAccountName=%u))"
# Require Group Membership
#启用组认证
RequireGroup true
# Add non-group members to a PF table (disabled)
#PFTable ips_vpn_users
<Group>
#基础OU设置
BaseDN "dc=nj-strongit,dc=com,dc=cn"
#vpn组名
SearchFilter "(|(cn=openvpn))"
MemberAttribute "member"
# Add group members to a PF table (disabled)
#PFTable ips_vpn_eng
</Group>
</Authorization>
3.4 内核与防火墙配置
开启路由转发功能
[root@openvpn ~]# sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
[root@openvpn ~]# sysctl -p
配置防火墙
[root@openvpn ~]# iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
[root@openvpn ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
[root@openvpn ~]# service iptables save
3.5 启动服务并加入开机自启
[root@openvpn ~]# service openvpn start
[root@openvpn ~]# chkconfig openvpn on
4.活动目录配置
在活动目录中为vpn用户创建用户组openvpn,根据实际需求添加域用户

4.客户端配置
4.1 客户端配置文件配置
#复制一份client.conf模板命名为client.ovpn
[root@openvpn ~]# cp /usr/share/doc/openvpn-2.3.14/sample/sample-config-files/client.conf client.ovpn
#编辑client.ovpn
[root@openvpn ~]# grep '^[^#;]' client.ovpn
client
auth-user-pass
dev tun
proto tcp
remote 222.190.107.69 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3
4.2 openvpn客户端安装
在window操作系统上安装openvpn客户端
4.3 证书拷贝
将证书及配置文件ca.crt、client.crt、client.key、client.ovpn、ta.key,拷贝至客户端的C:\Prigram\OpenVPN\config目录

4.4 连接测试
双击桌面客户端图标,输入openvpn组中的用户名密码,连接测试

ping内网地址测试
