2020-04-27

1.安装密钥⽣成⼯具
1 yum install easy-rsa -y

2.准备var⽂件

mkdir /opt/easy-rsa
cp -a /usr/share/easy-rsa/3.0.7/* /opt/easy-rsa/
cat >>/opt/easy-rsa/vars<<EOF
export KEY_COUNTRY="CN" #所在国家
export KEY_PROVINCE="BJ" #所在省份
export KEY_CITY="Beijing" #所在城市
export KEY_ORG="oldboy" #所在组织
export KEY_EMAIL="526195417@qq.com" #邮箱地址
EOF
123456789



[root@sql easy-rsa]# pwd
/opt/easy-rsa
[root@sql easy-rsa]# cat 
easyrsa              openssl-easyrsa.cnf  pki/                 vars                 x509-types/          
[root@sql easy-rsa]# cat vars 
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="Beijing"
export KEY_ORG="oldboy"
export KEY_EMAIL="526195417@qq.com"

3.⽣成初始化证书

cd /opt/easy-rsa/
#1.初始化,在当前⽬录创建PKI⽬录,⽤于存储证书
./easyrsa init-pki
#2.创建根证书,会提示设置密码,⽤于ca对之后⽣成的server和client证书签名时使⽤,其他可默
认
./easyrsa build-ca
#3.创建server端证书和私钥⽂件,nopass表示不加密私钥⽂件,其他可默认
./easyrsa gen-req server nopass
#4.给server端证书签名,⾸先是对⼀些信息的确认,可以输⼊yes,然后创建ca根证书时设置的密码
./easyrsa sign server server
#5.创建Diffie-Hellman⽂件,秘钥交换时的Diffie-Hellman算法
./easyrsa gen-dh
#6.创建client端证书和私钥⽂件,nopass表示不加密私钥⽂件,其他可默认

./easyrsa gen-req client nopass
#7.给client端证书签名 ⾸先是对⼀些信息的确认,可以输⼊yes,然后创建ca根证书时设置的密码
./easyrsa sign client client

有需要密码   回车

Confirm request details: #输⼊yes
...
Enter pass phrase for /opt/easy-rsa/pki/private/ca.key: #输⼊ca证书密码

4.安装openvpn
yum install openvpn -y
5.编写服务端配置⽂件
/etc/openvpn/server.conf

port 1194 #端⼝
proto tcp #协议
dev tun #采⽤路由隧道模式tun
ca /etc/openvpn/server/ca.crt #ca证书位置
cert /etc/openvpn/server/server.crt #服务端公钥名称
key /etc/openvpn/server/server.key #服务端私钥名称
dh /etc/openvpn/server/dh.pem #交换证书
server 10.8.0.0 255.255.255.0 #给客户端分配地址,注意:不能和vpn内⽹⽹段有相同
push "route 172.16.1.0 255.255.255.0" #允许客户端访问呢内⽹172.16.1.0⽹段
ifconfig-pool-persist /etc/openvpn/logs/ipp.txt #地址池记录⽂件位置
keepalive 10 120 #存活时间,10秒ping⼀次,120如未收到响应则视为断线
max-clients 100 #最多允许100个客户端连接
status /etc/openvpn/logs/openvpn-status.log #⽇志记录位置
verb 3 #openvpn版本
client-to-client #客户端与客户端之间⽀持通信
log /etc/openvpn/logs/openvpn.log #openvpn⽇志记录位置
persist-key #通过keepalive检测超时后,重新启动vpn,不重新读取
persist-tun #检测超时后,重新启动vpn,⼀直保持tun是linkup的,
duplicate-cn #因此⼀个证书可以由多个连接/⽤户使⽤

mkdir /etc/openvpn/logs -p

\cp /opt/easy-rsa/pki/ca.crt /etc/openvpn/server/
\cp /opt/easy-rsa/pki/issued/server.crt /etc/openvpn/server/
\cp /opt/easy-rsa/pki/private/server.key /etc/openvpn/server/
\cp /opt/easy-rsa/pki/dh.pem /etc/openvpn/server/

\cp /opt/easy-rsa/pki/ca.crt /etc/openvpn/client/
\cp /opt/easy-rsa/pki/private/client.key /etc/openvpn/client/
\cp /opt/easy-rsa/pki/issued/client.crt /etc/openvpn/client/
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
systemctl restart network
systemctl enable openvpn@server.service
systemctl start openvpn@server.service

客户端client.ovpn

client
dev tun
proto tcp                           
remote 10.0.0.51 1194
resolv-retry infinite
nobind
ca ca.crt
cert client.crt
key  client.key
verb 3
persist-key
persist-tun
将系统客户端证书拷贝到windows客户端conf下
scp root@10.0.0.51:/etc/openvpn/client/ca.crt .
scp root@10.0.0.51:/etc/openvpn/client/client.crt .
scp root@10.0.0.51:/etc/openvpn/client/client.key .

客户端增加用户

客户端client.ovpn

client
dev tun
proto tcp                           
remote 10.0.0.51 1194
resolv-retry infinite
nobind
ca ca.crt
cert client.crt
key  client.key
verb 3
persist-key
persist-tun
auth-user-pass pass.txt             增加

客户端加文件pass.txt

sun 123456

服务端设置账号密码

[root@sql easy-rsa]# cat /etc/openvpn/checkpsw.sh 
#!/bin/sh
###########################################################
# checkpsw.sh (C) 2004 Mathias Sundman <mathias@openvpn.se>
#
# This script will authenticate OpenVPN users against
# a plain text file. The passfile should simply contain
# one row per user with the username first followed by
# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/openvpn/psw-file"
LOG_FILE="/etc/openvpn/logs/openvpn-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`
###########################################################
if [ ! -r "${PASSFILE}" ]; then
  echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >>  ${LOG_FILE}
  exit 1
fi
CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`
if [ "${CORRECT_PASSWORD}" = "" ]; then
  echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=

\"${password}\"." >> ${LOG_FILE}
  exit 1
fi
if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
  echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
  exit 0
fi

echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=

\"${password}\"." >> ${LOG_FILE}

服务端密码文件
[root@sql easy-rsa]# cat /etc/openvpn/psw-file
sun 123456

mkdir /etc/openvpn/ccd/ -p
cat >/etc/openvpn/ccd/zhangya <<EOF
ifconfig-push 10.8.0.9 10.8.0.10
EOF

服务端配置

[root@sql easy-rsa]# cat /etc/openvpn/server.conf 
port 1194 #端⼝
proto tcp #协议
dev tun #采⽤路由隧道模式tun
ca /etc/openvpn/server/ca.crt #ca证书位置
cert /etc/openvpn/server/server.crt #服务端公钥名称
key /etc/openvpn/server/server.key #服务端私钥名称
dh /etc/openvpn/server/dh.pem #交换证书
server 10.8.0.0 255.255.255.0 #给客户端分配地址,注意:不能和vpn内⽹⽹段有相同
push "route 172.16.1.0 255.255.255.0" #允许客户端访问呢内⽹172.16.1.0⽹段
ifconfig-pool-persist /etc/openvpn/logs/ipp.txt #地址池记录⽂件位置
keepalive 10 120 #存活时间,10秒ping⼀次,120如未收到响应则视为断线
max-clients 100 #最多允许100个客户端连接
status /etc/openvpn/logs/openvpn-status.log #⽇志记录位置
verb 3 #openvpn版本
client-to-client #客户端与客户端之间⽀持通信
log /etc/openvpn/logs/openvpn.log #openvpn⽇志记录位置
persist-key #通过keepalive检测超时后,重新启动vpn,不重新读取
persist-tun #检测超时后,重新启动vpn,⼀直保持tun是linkup的,
duplicate-cn #因此⼀个证书可以由多个连接/⽤户使⽤
client-config-dir ccd
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
client-cert-not-required
username-as-common-name
script-security 3

然后客户端配置

client
dev tun
proto tcp                           
remote 10.0.0.51 1194
resolv-retry infinite
nobind
ca ca.crt
cert client.crt
key  client.key
verb 3
persist-key
persist-tun
auth-user-pass pass.txt

pass.txt
sun 123456

重启网卡

连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354