目录

服务器端配置文件说明

准备服务端证书环境

创建客户端证书申请

配置 OpenVPN 服务器并启动服务

启动 OpenVPN 服务

准备 OpenVPN 服务的service文件

生成客户端用户的配置文件

配置部署 Windows 的 OpenVPN 客户端

Windows 安装 OpenVPN 客户端

tls-auth ta.key 0 #访止DoS等攻击的安全增强配置,服务器和每个客户端都需要拥有此密钥文件。第二个参数在服务器端为0,客户端为1

设置客户端的私钥密码增强安全性

创建新用户对应的有密码的私钥和证书申请

账户证书管理

将吊销列表文件发布

账户重名证书颁发

实现用户密码认证

修改服务端配置

创建用户密码文件

修改客户端配置


服务器端配置文件说明

#生成服务器配置文件
[root@centos8 ~]#cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf
/etc/openvpn/
#服务器配置文件server.conf文件中以#或;开头的行都为注释
[root@centos8 ~]#grep -Ev "^#|^$" /etc/openvpn/server.conf
;local a.b.c.d #本机监听IP,默认为本机所有IP
port 1194 #端口
;proto tcp #协议,生产推荐使用TCP
proto udp #默认协议udp
;dev tap #创建以太网隧道设备,tap设备实现以太网帧通过Openvpn隧道,可提供非IP协议如
IPX和AppleTalk等的支持,tap等当于一个以太网设备,它操作第二层数据包如以太网数据帧。
dev tun #创建IP路由隧道,生产推存使用tun.互联网使用tun,一个tun设备大多时候被用于基
于IP协议的通讯。tun模拟了网络层设备,操作第三层数据包比如IP数据封包。
;dev-node MyTap #TAP-Win32的设备驱动。非windows系统不需要
ca ca.crt #ca证书文件
cert server.crt #服务器证书文件key server.key #服务器私钥文件
dh dh2048.pem #dh参数文件
;topology subnet
server 10.8.0.0 255.255.255.0 #客户端连接后自动分配的IP网段,默认会给服务器分配此网段的第
一个IP将做为客户端的网关,注意不要和内网网段相同
ifconfig-pool-persist ipp.txt #记录客户端和虚拟ip地址分配的文件
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 #配置网桥模式,无需配置,
建议注释
;server-bridge
;push "route 192.168.10.0 255.255.255.0" #推送给客户端的到达服务器后面网段的静态路由,
网关是服务器地址10.8.0.1
;push "route 192.168.10.100 255.255.255.255" #用255.255.255.255可实现只能访问内网单个
主机的功能,比如:jumpserver
;push "route 192.168.20.0 255.255.255.0" #推送路由信息到客户端,以允许客户端能够连接到
服务器背后的其它私有网络
;client-config-dir ccd #为特定客户端添加路由信息,此路由是客户端后面的网段而非服务端的网
段,无需设置
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script #指定外部脚本文件,实现创建不同组的iptables规
则,无需配置
;push "redirect-gateway def1 bypass-dhcp" #启用此配置后客户端所有流量都将通过VPN服务器进
行转发,因此生产一般无需配置此项
;push "dhcp-option DNS 208.67.222.222" #推送DNS服务器地址,无需配置
;push "dhcp-option DNS 208.67.220.220"
;client-to-client #允许不同的客户端直接通信,不安全,生产环境一般无
需配置
;duplicate-cn #多个用户共用一个证书,一般用于测试环境,生产环境建议一个用户一个证
书,无需开启
keepalive 10 120 #设置服务端活动的检测的间隔和超时时间,每隔10秒ping一次,120秒没有
回应则认为已经断线
tls-auth ta.key 0 #访止DoS等攻击的安全增强配置,服务器和每个客户端都需要拥有此密钥文
件。第二个参数在服务器端为0,客户端为1
cipher AES-256-CBC #加密算法
;compress lz4-v2 #启用Openvpn2.4.X新版压缩算法
;push "compress lz4-v2" #推送客户端使用新版压缩算法,和下面的comp-lzo不要同时使用
;comp-lzo #旧户端兼容的压缩配置,需要客户端配置开启压缩,openvpn2.4.X等新版可以不
用开启
;max-clients 100 #最多支持的客户端数量
;user nobody #指定openvpn服务的用户
;group nobody #指定openvpn服务的组
persist-key #重启服务时默认会重新读取key文件,开启此配置后保持使用第一次的key文件,
生产环境无需开启
persist-tun #Don’t close and reopen TUN/TAP device or run up/down
scripts across SIGUSR1 or --ping-restart restarts,生产环境建议无需开启
status openvpn-status.log #服务器状态记录文件,每分钟记录一次相关信息
;log openvpn.log #第一种日志记录方式,并指定日志路径,log会在openvpn启动的时候清
空日志文件,不建议使用
;log-append openvpn.log #第二种日志记录方式,并指定日志路径,重启openvpn后在之前的日志后
面追加新的日志,生产环境建议使用
verb 3 #设置日志级别,0-9,级别越高记录的内容越详细,0 表示静默运行,只记
录致命错误,4 表示合理的常规用法,5 和 6 可以帮助调试连接错误。9 表示极度冗余,输出非常详细的日志
信息
;mute 20 #对相同类别的信息只记录前20条到日志文件中

阿里云创建3台,安装nginx  配置随机路由

[root@linux001 ~]# yum install openvpn

[root@rocky8 ~]#tree /etc/openvpn/
/etc/openvpn/
├── client       (客户端信息)
└── server     (服务器信息)

cp -r /usr/share/easy-rsa/3/ /etc/openvpn/easy-rsa   (考过来,在这下面创建证书相关内容)

[root@linux001 openvpn]# tree /etc/openvpn
/etc/openvpn
├── client
├── easy-rsa
│   ├── easyrsa
│   ├── openssl-easyrsa.cnf
│   └── x509-types
│       ├── ca
│       ├── client
│       ├── code-signing
│       ├── COMMON
│       ├── email
│       ├── kdc
│       ├── server
│       └── serverClient
└── server

[root@linux001 openvpn]#  cp /usr/share/doc/easy-rsa/vars.example  /etc/openvpn/easy-rsa/vars

#准备颁发证书相关变量的配置文件

root@linux001 openvpn]# tree /etc/openvpn                    
/etc/openvpn
├── client
├── easy-rsa
│   ├── easyrsa
│   ├── openssl-easyrsa.cnf
│   ├── vars                                 (读取文件证书有效期就是从这里来)
│   └── x509-types
│       ├── ca
│       ├── client
│       ├── code-signing
│       ├── COMMON
│       ├── email
│       ├── kdc
│       ├── server
│       └── serverClient
└── server

#建议修改给CA和OpenVPN服务器颁发的证书的有效期,可适当加长

[root@centos8 ~]#vim /etc/openvpn/easy-rsa/vars

#CA的证书默认有效期为10年,可以适当延长,比如:36500天

#set_var EASYRSA_CA_EXPIRE 3650

set_var EASYRSA_CA_EXPIRE 36500

#服务器证书默为为825天,可适当加长,比如:3650天

#set_var EASYRSA_CERT_EXPIRE 825

#将上面行修改为下面

set_var EASYRSA_CERT_EXPIRE 3650

始化数据,在当前目录下生成pki目录及相关文件
[root@centos8 easy-rsa]#./easyrsa init-pki

创建 CA 机构证书环境   私钥,自签名证书

#./easyrsa build-ca nopass

openssl x509 -in  pki/ca.crt -noout -text  查看

sz pki/ca.crt       在win上查看

准备服务端证书环境

#./easyrsa gen-req server nopass   (生成证书私钥生证书申请文件,不要密码)

[root@linux001 easy-rsa]# cat pki/index.txt (查看证书)

[root@linux001 easy-rsa]# cat /etc/openvpn/easy-rsa/pki/dh.pem   一种秘钥交换算法

创建客户端证书申请

#./easyrsa gen-req wangxiaochun nopass ()默认接受直接回车

颁发客户端证书

./easyrsa sign client wangxiaochun (yes 同意)

复制到空文件调的时候好调

[root@centos8 ~]#cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/server/
[root@centos8 ~]#cp /etc/openvpn/easy-rsa/pki/issued/server.crt
/etc/openvpn/server
[root@centos8 ~]#cp /etc/openvpn/easy-rsa/pki/private/server.key
/etc/openvpn/server
[root@centos8 ~]#cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/serve

将客户端私钥与证书相关文件复制到服务器相关的目录

[root@linux001 easy-rsa]# find -name "wangxiaochun*"
./pki/private/wangxiaochun.key
./pki/reqs/wangxiaochun.req
./pki/issued/wangxiaochun.crt
[root@linux001 easy-rsa]# find -name "wangxiaochun*" -exec cp {} /etc/openvpn/client/wangxiaochun/ \;

[root@linux001 client]# rm -f wangxiaochun/wangxiaochun.req  (证书申请文件没用)

配置 OpenVPN 服务器并启动服务

#生成服务器配置文件
[root@centos8 ~]#cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf
/etc/openvpn/

#vim /etc/openvpn/server.conf

查看是否是10.8.网段

修改服务器端配置文件

#vim /etc/openvpn/server.conf

port 1194
proto tcp
dev tun
ca /etc/openvpn/server/ca.crt
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
push "route 172.30.0.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
compress lz4-v2
push "compress lz4-v2"
max-clients 2048
user openvpn
group openvpn
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
mute 20

准备服务器日志相关目录

#安装包时,自动创建相关用户和组openvpn
[root@centos8 ~]#getent passwd openvpn
openvpn:x:993:990:OpenVPN:/etc/openvpn:/sbin/nologin
[root@centos8 ~]#mkdir /var/log/openvpn         需要默认往这里写文件,但是里面没有这个文件
[root@centos8 ~]#chown openvpn.openvpn /var/log/openvpn       给其权限
[root@centos8 ~]#ll -d /var/log/openvpn               
drwxr-xr-x 2 openvpn openvpn 6 Aug 3 23:07 /var/log/openvpn

启动 OpenVPN 服务

准备 OpenVPN 服务的service文件

自带文件起不来,有问题

root@linux001 ~]# cat /usr/lib/systemd/system/openvpn-server@.service 
[Unit]
Description=OpenVPN service for %I
After=syslog.target network-online.target
Wants=network-online.target
Documentation=man:openvpn(8)
Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO

[Service]
Type=notify
PrivateTmp=true
WorkingDirectory=/etc/openvpn/server
ExecStart=/usr/sbin/openvpn --status %t/openvpn-server/status-%i.log --status-version 2 --suppress-timestamps --cipher AES-256-GCM --ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC --config %i.conf
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw
ProtectSystem=true
ProtectHome=true
KillMode=process
RestartSec=5s
Restart=on-failure

[Install]
WantedBy=multi-user.target

cat /usr/lib/systemd/system/openvpn@.service   改成

[Unit] Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I After=network.target

[Service] Type=notify PrivateTmp=true ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config %i.conf

[Install] WantedBy=multi-user.target

#启动OpenVPN服务,注意service名称和文件名不一致
[root@centos8 openvpn]#systemctl daemon-reload
[root@centos8 openvpn]#systemctl enable --now openvpn@serve

[root@linux001 ~]# systemctl status openvpn@server.service  看状态

[root@linux001 ~]# cat /var/log/openvpn/openvpn.log 建立连接,

生成客户端用户的配置文件

mv wangxiaochun.key client.key

mv wangxiaochun.crt client.crt

vim /etc/openvpn/client/wangxiaochun/client.ovpn

/client.ovpn
client
dev tun
proto tcp
remote  openvpn.wangxiaochun.com 1194
resolv-retry infinite
nobind
#persist-key
#persist-tun
ca ca.crt
cert wangxiaochun.crt 
key wangxiaochun.key
remote-cert-tls server
#tls-auth ta.key 1
cipher AES-256-CBC
verb 3
compress lz4-v2

配置部署 Windows 的 OpenVPN 客户端 

Windows 安装 OpenVPN 客户端

vim /etc/sysctl.conf 下加上 net.ipv4.ip_forward = 1

route add default gw 172.30.0.1   把两个客户端网管指向0.1    这样是不通的 需要加IP转换

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 172.30.0.1(ip转换)

echo 'iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d10.8.0.0/24 -j SNAT --to-source 172.30.0.1' >> /etc/rc.d/rc.local (永久)

vim /etc/openvpn/server.conf   在这里面加一行duplicate-cn 就可以多人一起链

systemctl status openvpn@server.service   启动

tls-auth ta.key 0 #访止DoS等攻击的安全增强配置,服务器和每个客户端都需要拥有此密钥文件。第二个参数在服务器端为0,客户端为1

[root@centos8 ~]#vim /etc/openvpn/server.conf
tls-auth /etc/openvpn/server/ta.key 0 #客户端为1,服务器端为0    且讲起考到目录里去

systemctl restart openvpn@server.service  重启

修改客户端配置文件clent.ovpn,添加一行   tls-auth ta.key 1 #客户端为1,服务器端为0

设置客户端的私钥密码增强安全性

zip -e    /root/mammam.zip *(文件加密)

创建新用户对应的有密码的私钥和证书申请

./easyrsa gen-req wang

账户证书管理

root@linux001 ~]# cat /etc/openvpn/easy-rsa/pki/index.txt(查看颁发的证书)

cd /etc/openvpn/easy-rsa/

/easyrsa revoke wang (证书吊销)

#每次吊销证书后都需要更新证书吊销列表文件,并且需要重启OpenVPN服务
[root@centos8 easy-rsa]#./easyrsa gen-crl

将吊销列表文件发布

#第一次吊销证时需要编辑配置文件调用吊销证书的文件,后续吊销无需此步
[root@openvpn-server ~]# vim /etc/openvpn/server.conf
crl-verify /etc/openvpn/easy-rsa/pki/crl.pem
#每次吊销证书后,都需要重新启动才能生效
[root@centos8 ~]#systemctl restart openvpn@server.service

账户重名证书颁发

对于员工重名的情况,可以为新员工指定新的名称,或者删除不再使用的重名用户证书,重新创建新证书

实现用户密码认证

基于证书验证的基础上再加上用户名密码验证可以实现更高的安全性

修改服务端配置

官方脚本下载

http://openvpn.se/files/other/checkpsw.sh

[root@centos8 ~]# vim /etc/openvpn/server.conf
# 添加三行,实现服务端支持密码认证方式               (需要给路径文件加执行权限)
script-security 3 # 允许使用自定义脚本
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env #指定自定义脚本路径
username-as-common-name #开启用户密码验证

创建用户密码文件

# 创建用户和密码认证文件,每行是一个用户和密码     (两个账号公用一个证书)
[root@centos8 ~]# cat > /etc/openvpn/psw-file <<EOF
wang 123456
test 654321
EOF
[root@centos8 ~]# systemctl restart openvpn@server

修改客户端配置

修改客户端配置文件client.ovpn文件,增加下面一行,使其支持用户名/密码与服务器进行身份验证

[root@centos8 ~]#vim /etc/openvpn/client/wangxiaochun/client.ovpn
#加下面一行,可以支持用户密码认证       (做完需要重新给其一份)
auth-user-pass

firewall和企业级的Open ViP服务相关推荐

  1. 小白扫盲:浅谈web应用在nat123下的vip服务

    nat123是一个IP穿透及域名代理服务,使用它,可以在任何网络下可上网即可搭建自己的服务器,并提供外网服务. nat123可以应用的范围很广,可以适配网站.远程桌面.数据库.SSH访问.办公OA.管 ...

  2. 7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)

    7-4 银行排队问题之单队列多窗口加VIP服务 (30 分) 说实话这道题挺恶心 有意思的,大模拟,主要的思路就是模拟时间轴. 题目描述 假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时 ...

  3. Linux实战教学笔记22:企业级NFS网络文件共享服务

    第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...

  4. (转)企业级NFS网络文件共享服务

    企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...

  5. 企业级BPM之微服务架构演进

    BPM平台在各行业的IT架构中都是重要的基础支撑平台,十二五期间,企业级BPM作为SOA体系下的关键组件,经历了一个加速建设的过程.我们也有幸参与了一些行业的流程平台建设,今天与大家分享我们在流程引擎 ...

  6. 新闻丨“爆款“企业级区块链云服务平台专家评审 智链ChainNova为何深藏不露

    智链ChainNova CEO 董宁 区块链技术发展到今天,平台的重要性越发凸显.这里的平台是指结合区块链底层技术, 对接企业业务层的服务型平台.目前很多区块链公司都在加紧研发 BaaS (Block ...

  7. GitNote VIP 服务

    GitNote VIP 服务 有朋友提到 GitNote 的收费问题,在此做出解释说明 GitNote 是永久免费的 GitNote 是永久免费的,会通过技术支持服务进行收费,具体请查看VIP服务说明 ...

  8. 高端vip维护服务器,vip服务

    vip服务 内容精选 换一换 前言 环境:centos 7.9 什么是keepalived 市面上一般有两款高可用开源方案:Keepalived和Heartbeat, Keepalived:Keepa ...

  9. 三星w系列vip服务器,土豪专用的三星W20 5G发布:支持折叠,可享系列VIP服务

    原标题:土豪专用的三星W20 5G发布:支持折叠,可享系列VIP服务 三星作为全球第一大智能手机厂商,其与中国电信联合推出的心系天下W系列一直以来是顶级商务旗舰手机中的典范.对于其用户群体而言,三星W ...

  10. 基于 Go 语言构建企业级的 RESTful API 服务

    现代软件架构已经逐渐从单体架构转向微服务架构,在微服务架构中服务间通信采用轻量级通信机制.对于轻量级通信的协议而言,通常基于 HTTP 和 RPC ,能让服务间的通信变的标准化并且无状态化.此外开发模 ...

最新文章

  1. Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍
  2. tf.squeeze
  3. 深入浅出jQuery (五) 如何自定义UI-Dialog?
  4. 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
  5. Windows10 环境下Jupyter Notebook的安装与使用
  6. Python使用多进程提高网络爬虫的爬取速度
  7. 一个虚拟服务器装多个网站,一台虚拟主机 如何放多个网站
  8. 李彦宏开年内部信:2018营收破千亿,做出好产品的百度已归来
  9. SpringMVC文件上传和Jwt身份验证
  10. Minimum spanning tree
  11. 提取、修改、重建deb包
  12. moment.js 时间处理类库--时间戳和时间格式相互转换
  13. Xenon's Attack on the Gangs(树规)
  14. ppt文字磨砂玻璃效果制作教程
  15. 射频信号源进阶使用技巧【转载自微信公众号微波射频网】
  16. 让人春分日 哈工科教110132.平面分割
  17. ddd+kgdb调试内核
  18. win10---血战上海滩
  19. 山海演武传·黄道·第一卷 雏龙惊蛰 第五章 蛮族少女与白泽
  20. vscode的下载速度会特别慢问题处理

热门文章

  1. 汽车软件合作开发中的分工、知识产权及质量责任
  2. 揭秘公共WiFi安全黑幕
  3. 数据库连接超时和go away、如何检测数据库的最大连接数
  4. 码农的自我修养 - ARM处理器天梯图
  5. 【个人记录|环境配置等】
  6. Mac怎么切换主显示器 Mac设置主显示器
  7. 最低成本DIY视频遥控车方案:ESP32-CAM视频遥控车
  8. 移动硬盘损坏怎么恢复?找到原因再解决
  9. html实现连线插件,手动实现HTML插件Beautify
  10. UVA 10451 Ancient Village Sports UVA 11909 Soya Milk UVA 11152 Colourful Flowers