本文基础引用:原博客有更详细的手动部署步骤,本文做了部分优化!!!Open一键安装脚本 - 偷得浮生A small and beautiful blogging system. 一款小而美的博客系统。
https://www.zhangzhuo.ltd/articles/2021/05/20/1621484344221.html
说明:
#因为开通了固定客户端IP,所以采用tap模式
#若不需要固定IP,可关闭client-to-client,可更换采用tun模式
#需要修改代理IP地址(一共有两处需要修改),否则代理不生效,open*V#P@N全部不代理
#搜索"添加open*V#P@N代理IP",然后修改IP地址为设置的内网IP地址
优化功能:
#将所有证书文件都嵌入到了客户端配置文件中,只生成一个配置文件,方便一键导入
#修改为tap模式
#打开了客户端相互访问功能
#打开了固定客户端IP配置
#指定内网段走open*V#P@N代理,其余不走open*V#P@N代理,减轻服务端流量压力
服务端待优化事项:
#增加删除open*V#P@N服务,释放端口,还原firewall、iptable等配置
#增加firewall开放1194端口配置,防止iptable不起作用
#启用|重启|停止 open*V#P@N服务操作选项
#保存公网IP、内网、网关到文件,以备后续创建客户证书时修改代理地址
#客户端证书期限配置
#创建证书时可选指定IP地址
#删除证书时完全清理证书文件
#修改公网IP地址、内网IP段
#简化版web管理界面
linux客户端待优化项
#一键部署脚本
#启用|重启|停止 open*V#P@N服务操作选项
如果有大神优化了其他事项,请留言更新!
#!/bin/bash
#
#********************************************************************
#原出自张卓张卓大神,有修改项,有问题请自研或查看下述URL官方博客
#Author:zhangzhuo
#QQ: 1191400158
#Date: 2021-01-26
#FileName:openvpn_install.sh
#URL: https://www.zhangzhuo.ltd
#Description:The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************
. /etc/init.d/functions
openvpn_install_centos(){
while :;do
read -p "请输入OpenVPN服务器公网IP: " IP
{ echo $IP | grep -E "^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$">/dev/null; } && break || echo "请输入正确的IP地址!"
done
while :;do
read -p "请输入内网的网络地址如(10.20.30.0): " NET
{ echo $NET | grep -E "^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$">/dev/null; } && break || echo "请输入正确的网络地址!"
done
while :;do
read -p "请输入内网的子网掩码如(255.255.255.0): " MASK
{ echo $MASK | grep -E "^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$">/dev/null; } && break || echo "请输入正确的子网掩码!"
done
centos_Version #版本centos版本区分,centos8缺少server文件
yum install -y openvpn easy-rsa #安装
rpm -ql openvpn &>/dev/null || { echo "openvpn服务安装失败请检查YUM是否配置EPEL源";exit ;}
rpm -ql easy-rsa &>/dev/null || { echo "easy-rsa服务安装失败请检查YUM是否配置EPEL源";exit ;}
#准备服务器端证书环境
cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-server
#修改vars配置文件
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/easy-rsa-server/3/vars
#修改CA自签证书有效期
sed -ri 's/.*(set_var EASYRSA_CA_EXPIRE).*/\1 36500/' /etc/openvpn/easy-rsa-server/3/vars
#修改openvpn服务器证书有效期
sed -ri 's/.*(set_var EASYRSA_CERT_EXPIRE).*/\1 3650/' /etc/openvpn/easy-rsa-server/3/vars
cd /etc/openvpn/easy-rsa-server/3
#初始化PKI生成PKI相关目录和文件
./easyrsa init-pki
#创建CA机构
echo -e "\n" | ./easyrsa build-ca nopass
#创建openvpn服务器证书并颁发
echo -e "\n" | ./easyrsa gen-req server nopass
echo -e "yes\n" | ./easyrsa sign server server
#创建Diffie-Hellman算法
./easyrsa gen-dh
#准备客户端证书环境
cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-client
cp /usr/share/doc/easy-rsa/vars.example /etc/openvpn/easy-rsa-client/3/var