firewall和企业级的Open ViP服务
目录
服务器端配置文件说明
准备服务端证书环境
创建客户端证书申请
配置 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
│ ├── 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
│ ├── 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.targetcat /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服务相关推荐
- 小白扫盲:浅谈web应用在nat123下的vip服务
nat123是一个IP穿透及域名代理服务,使用它,可以在任何网络下可上网即可搭建自己的服务器,并提供外网服务. nat123可以应用的范围很广,可以适配网站.远程桌面.数据库.SSH访问.办公OA.管 ...
- 7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)
7-4 银行排队问题之单队列多窗口加VIP服务 (30 分) 说实话这道题挺恶心 有意思的,大模拟,主要的思路就是模拟时间轴. 题目描述 假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时 ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...
- (转)企业级NFS网络文件共享服务
企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...
- 企业级BPM之微服务架构演进
BPM平台在各行业的IT架构中都是重要的基础支撑平台,十二五期间,企业级BPM作为SOA体系下的关键组件,经历了一个加速建设的过程.我们也有幸参与了一些行业的流程平台建设,今天与大家分享我们在流程引擎 ...
- 新闻丨“爆款“企业级区块链云服务平台专家评审 智链ChainNova为何深藏不露
智链ChainNova CEO 董宁 区块链技术发展到今天,平台的重要性越发凸显.这里的平台是指结合区块链底层技术, 对接企业业务层的服务型平台.目前很多区块链公司都在加紧研发 BaaS (Block ...
- GitNote VIP 服务
GitNote VIP 服务 有朋友提到 GitNote 的收费问题,在此做出解释说明 GitNote 是永久免费的 GitNote 是永久免费的,会通过技术支持服务进行收费,具体请查看VIP服务说明 ...
- 高端vip维护服务器,vip服务
vip服务 内容精选 换一换 前言 环境:centos 7.9 什么是keepalived 市面上一般有两款高可用开源方案:Keepalived和Heartbeat, Keepalived:Keepa ...
- 三星w系列vip服务器,土豪专用的三星W20 5G发布:支持折叠,可享系列VIP服务
原标题:土豪专用的三星W20 5G发布:支持折叠,可享系列VIP服务 三星作为全球第一大智能手机厂商,其与中国电信联合推出的心系天下W系列一直以来是顶级商务旗舰手机中的典范.对于其用户群体而言,三星W ...
- 基于 Go 语言构建企业级的 RESTful API 服务
现代软件架构已经逐渐从单体架构转向微服务架构,在微服务架构中服务间通信采用轻量级通信机制.对于轻量级通信的协议而言,通常基于 HTTP 和 RPC ,能让服务间的通信变的标准化并且无状态化.此外开发模 ...
最新文章
- Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍
- tf.squeeze
- 深入浅出jQuery (五) 如何自定义UI-Dialog?
- 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
- Windows10 环境下Jupyter Notebook的安装与使用
- Python使用多进程提高网络爬虫的爬取速度
- 一个虚拟服务器装多个网站,一台虚拟主机 如何放多个网站
- 李彦宏开年内部信:2018营收破千亿,做出好产品的百度已归来
- SpringMVC文件上传和Jwt身份验证
- Minimum spanning tree
- 提取、修改、重建deb包
- moment.js 时间处理类库--时间戳和时间格式相互转换
- Xenon's Attack on the Gangs(树规)
- ppt文字磨砂玻璃效果制作教程
- 射频信号源进阶使用技巧【转载自微信公众号微波射频网】
- 让人春分日 哈工科教110132.平面分割
- ddd+kgdb调试内核
- win10---血战上海滩
- 山海演武传·黄道·第一卷 雏龙惊蛰 第五章 蛮族少女与白泽
- vscode的下载速度会特别慢问题处理