Centos 安装Open***脚本实现内网跳转

请注意:脚本环境需求
系统:centos 6 -7
环境:两块网卡 ,一块内网,一块外网
操作脚本时需注意

系统 环境 环境
Centos7 内网外网 双网卡 系统可以访问外网
  • 该脚本会自动打开你的防火墙/iptables,所以要结合自身环境。如果你的线上环境防火墙是关着的,可能会直接影响到你的服务端口被防火墙拦截,建议先在自己的虚拟机上运行后没问题,再尝试放在线上。
    目前仅在CentOS7.4上试验,CentOS6还未试验过
    脚本内容如下:
#!/bin/bash
#此脚本为安装openvpn脚本
#需要保证有网络
yum -y install epel-release
yum -y install openssl openssl-devel easy-rsa openvpn
#判断是否安装成功
if [ $? -eq 0 ];thenecho "安装成功!"
elseecho "未能安装成功!请检查网络环境或yum源配置情况"
fi
#创建openvpn家目录
if [ ! -d "/usr/local/openvpn/" ];thenmkdir -p /usr/local/openvpn/{client,server}echo "openvpn目录已创建"
fi
#设置各种变量
VPN_HOME=`find /usr/share/ -name openvpn-* | awk "NR==1"`
OPENVPN_HOME=/usr/local/openvpn
EASY_RSA_HOME=`find /usr/share -name easy-rsa-* |awk "NR==1"`
EASY_KEY_HOME=$OPENVPN_HOME/easy-rsa/3.0
BASH_HOME=`which bash`
#测试各种变量的可用性是否准确,如果要测试测需要注释掉大部分代码,进行echo 变量名进行测试
#echo $NOPASS_LOCATION
#复制相关文件到指定配置文件目录
cp -r /usr/share/easy-rsa/ $OPENVPN_HOME/
cp $VPN_HOME/sample/sample-config-files/server.conf $OPEVPN_HOME/server
cp $VPN_HOME/sample/sample-windows/sample.ovpn $OPENVPN_HOME/client/client.ovpn
cp -r $EASY_RSA_HOME/vars.example $OPENVPN_HOME/easy-rsa/3.0/vars
# 写入数据到vars文件中,这一步需要手动输入
echo -e "\033[7m 后面操作略微繁琐,但是还请一步一步按照提示来进行操作!\033[0m"
read -p "接下来请您手动输入您的个人信息,按Enter继续..."
read -p "请输入您的名称:" NAME
read -p "请输入您的邮箱:" EMAIL
read -p "请输入您的公司名称:" COMPANY
echo -e "set_var EASYRSA                 \"\$PWD\"\nset_var EASYRSA_PKI             \"\$EASYRSA/pki\"\nset_var EASYRSA_DB              \"cn_only\"\nset_var EASYRSA_REQ_CUNTRY      \"CN\"\nset_var EASYRSA_REQ_PROVINCE    \"Beijing\"\nset_var EASYRSA__REQ_CITY       \"Beijing\"\nset_var EASYRSA_REQ_ORG         \"$COMPANY\"\nset_var EASYRSA_REQ_EMAIL       \"$EMAIL\"\nset_var EASYRSA_REQ_OU          \"$NAME\"\nset_var EASYRSA_KEY_SIZE        2048\nset_var EASYRSA_ALGO            rsa\nset_var EASYRSA                 7500\nset_var EASYRSA                 3650\nset_var EASYRSA_NS_SUPPORT      \"no\"\nset_var EASYRSA_NS_COMMENT      \"HAKAS-LABS CERTIFICATE AUTHORITY\"\nset_var EASYRSA_EXT_DIR           \"\$EASYRSA/x509-types\"\nset_var EASYRSA_SSL_CONF                 \"\$EASYRSA/openssl-1.0.cnf\"\nset_var EASYRSA_DIGEST          \"sha256\" " >>$OPENVPN_HOME/easy-rsa/3.0/vars && chmod +x $OPENVPN_HOME/easy-rsa/3.0/vars
#创建服务器密钥
echo -e "\033[7m 接下来开始配置服务器密钥设置 \033[0m"
cd $EASY_KEY_HOME
#$BASH_HOME $EASY_KEY_HOME/test.sh
echo "生成证书存放目录..."
./easyrsa init-pki
echo "生成证书中..."
./easyrsa build-ca
echo "生成服务端密钥中..."
./easyrsa gen-req server nopass
echo "正在给证书签名中..."
./easyrsa sign server server
echo "创建Diffie-Hellman..."
./easyrsa gen-dh
#创建客户端证书密钥
echo "生成客户端密钥中..."
./easyrsa gen-req client nopass
echo "客户端签署证书..."
./easyrsa import-req client
echo "正在给证书签名中..."
./easyrsa sign client client
#生成openvpn隐私密钥
openvpn --genkey --secret ta.key
#复制相关证书到指定目录
cp $EASY_KEY_HOME/pki/ca.crt $OPENVPN_HOME/server
cp $EASY_KEY_HOME/ta.key $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/issued/server.crt $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/dh.pem $OPENVPN_HOME/server
cp $EASY_KEY_HOME/pki/private/server.key $OPENVPN_HOME/server
#客户端
cp $EASY_KEY_HOME/pki/ca.crt $OPENVPN_HOME/client
cp $EASY_KEY_HOME/ta.key $OPENVPN_HOME/client
cp $EASY_KEY_HOME/pki/issued/client.crt $OPENVPN_HOME/client
cp $EASY_KEY_HOME/pki/private/client.key $OPENVPN_HOME/client
#分别更改客户端配置文件以及服务端配置文件
#变量
CA_HOME=$OPENVPN_HOME/server/ca.crt
SER_KEY=$OPENVPN_HOME/server/server.key
SER_CRT=$OPENVPN_HOME/server/server.crt
DH_HOME=$OPENVPN_HOME/server/dh.pem
TA_HOME=$OPENVPN_HOME/server/ta.key
echo "开始配置服务端配置文件..."
read -p "请输入你的服务地址:" OTWA
read -p "请输入你的内网网段:" AND
echo -e "local $OTWA\nport 1194\nproto udp\ndev tun\nca $CA_HOME\ncert $SER_CRT\nkey $SER_KEY\ndh $DH_HOME\nserver $AND 255.255.255.0\nifconfig-pool-persist ipp.txt\npush \"redirect-gateway def1 bypass-dhcp\"\nclient-to-client\nduplicate-cn\nkeepalive 10 120\ntls-auth $TA_HOME 0\ncipher AES-256-CBC\ncomp-lzo\nmax-clients 100\nuser nobody\ngroup nobody\npersist-key\npersist-tun\nstatus openvpn-status.log\nlog openvpn.log\nverb 3\nmute 20\nmute 20\nexplicit-exit-notify 1">$OPENVPN_HOME/server/server.conf
#配置服务端
echo -e "client\ndev tun\nproto udp\nresolv-retry infinite\nnobind\nremote $OTWA 1194\ncomp-lzo\nca ca.crt\ncert client.crt\nkey client.key\ncipher AES-256-CBC\ntls-auth ta.key 1\nkeepalive 10 120\npersist-key\npersist-tun\nverb 3\nstatus client-status.log\nlog-append client.log" >$OPENVPN_HOME/client/client.ovpn
#开启linux内核转发
echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf
sysctl -p
#更改启动文件目录(如果更换了自定义的目录不是/usr/local/openvpn,那么同时也需要更改这里的openvpn_server的配置文件路径,不然就会无法启动服务显示'Options error: In [CMD-LINE]:1: Error opening configuration file: server.conf')
sed -i "s#/etc/openvpn/ --config#/usr/local/openvpn/server/ --config#g" /usr/lib/systemd/system/openvpn@.service
systemctl daemon-reload
#配置防火墙
LINUX_VERSION=`cat /etc/redhat-release |sed -r 's/.* ([0-9+])\..*/\1/'`
if [ $LINUX_VERSION -eq 6 ];theniptables -t nat -A POSTROUTING -s $AND/24 -j MASQUERADEiptables -t nat -A POSTROUTING -s $OTWA/24 -j MASQUERADEservice iptables saveservice openvpn@server start
else systemctl start firewalldfirewall-cmd --add-service=openvpn --permanentfirewall-cmd --add-port=1194/udp --permanentfirewall-cmd --add-port=22/tcp --permanentfirewall-cmd --add-source=10.11.0.0 --permanentfirewall-cmd --query-source=10.11.0.0 --permanentfirewall-cmd --add-masquerade --permanentfirewall-cmd --query-masquerade --permanentfirewall-cmd --reloadsystemctl start openvpn@server
fi

创建证书时






2.脚本运行完成后,将安装openvpn客户端软件
windows10版本
windows7版本
下载之后安装openvpn




我这里选择的是默认安装,接下来将服务端配置的openvpn下载到本地来

[root@localhost ~]# cd /usr/local/openvpn/client/
[root@localhost client]# ls
ca.crt  client.crt  client.key  client.ovpn  ta.key

这里我使用的是xshell自带的xftp

下载到本地后,将配置文件转移到自己的openvpn的config目录中

如果不知道目录位置的,可以右键桌面图标后,选择“打开文件目录位置”再回退上一级即可


然后点击图标激活即可

出现以上绿色样式则连接成功
如果在配置完成后,出现连不上网的问题,请检查防火墙/iptables配置是否正确

以上就是脚本操作的教程了,如果有问题,请联系我,感谢支持!

Centos安装Open***自动化安装脚本相关推荐

  1. Mysql安装及自动化部署脚本方案

    一.简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是 ...

  2. mysql 自动化 安装_mysql自动化安装

    MySQL安装一般使用RPM或者源码安装的方式. RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整. 源码安装的优点是可以自定义 ...

  3. mysql 自动化 安装_MySQL自动化安装脚本

    注:因官方MySQL下载较慢,请先自行上传mysql安装包至/usr/local/src目录 #!/bin/bash #This shell script can be used to install ...

  4. 本地自动化安装CentOS系统

    1 概述 以下的截图主要是用来说明自动化运维发展的阶段 第一阶段:全人肉阶段,此时是处于无流程规范的约束,所有的运维工作都是靠人去一步步执行,这将大大降低工作的效率,也容易带来误操作 第二阶段:工具化 ...

  5. 9.11 作业自动化安装linux

    1. 使用 kickstart 半自动化安装CentOS系统 1.1 配置yum.repo [root@centos8 ~]# echo - - - > /sys/class/scsi_host ...

  6. LAMPLNMP自动化安装脚本

    LAMP&LNMP自动化安装脚本 =================================== 一.脚本的环境介绍 二.脚本的介绍 三.脚本的功能介绍 =============== ...

  7. Hadoop(MapR)分布式安装及自动化脚本配置

    MapR的分布式集群安装过程还是很艰难的,远远没有计划中的简单.本人总结安装配置,由于集群有很多机器,手动每台配置是很累的,编写了一个自动化配置脚本,下面以脚本为主线叙述(脚本并不完善,后续继续完善中 ...

  8. 使用 kickstart 半自动化安装CentOS系统 利用PXE实现自动化安装centos系统

    使用 kickstart 半自动化安装CentOS7系统 1.创建kickstart文件 创建kickstart文件的方式 可使用创建工具:system-config-kickstart ,注意:此方 ...

  9. kickstart自动化系统安装_利用Kickstart自动化安装CentOS的教程

    前言 因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyas ...

最新文章

  1. 国内高校简称撞车史:南大、西大、东大都在争,唯独北大没人抢
  2. 【赠书】深度强化学习落地指南,来自一线工程师的经验!
  3. RocketMQ源码解析:Producer发送消息+Broker消息存储
  4. C#调用DLL文件时参数对应表
  5. activemq 持久订阅_ActiveMQ群集,持久订阅者和虚拟主题可助您一臂之力
  6. java 导出bcp文件格式_使用BCP导出导入数据
  7. 【白皮书分享】直播社会价值白皮书-字节跳动.pdf(附下载链接)
  8. Audio Session Programming Guide
  9. SpringBoot学习---thymeleaf模板引擎
  10. CPC软件使用 专利申请说明书附图插入(简单粗暴)CPC软件安装
  11. 计算机术语中 1gb等于 mb.,GB、MB、KB分别是什么意思,大小分别是多少?
  12. 案例:Java多态实现饮料购买咖啡、可乐、矿泉水2.0
  13. 【QT】将指定ip添加到凭据管理器
  14. [AV1] 谈谈AV1中的 S-Frame
  15. 环信网页端客服集成用户体系
  16. 中蜂药花蜜记载于《神农本草经》
  17. ubuntu系统下运行可执行文件 (application/x-executable)
  18. Thread类的interrupt(),interrupted(),isInterrupted()
  19. C++小作业——简单通讯录设计
  20. 优化Windows 7 让系统运行更加快速稳定安全

热门文章

  1. vscode快捷键重置及快捷键恢复
  2. 881@ snprintf函数使用总结
  3. Lucene安装及入门
  4. 【产品经理学习笔记】Part 9 交互设计(1)
  5. VUE更换项目中的favicon.ico图标
  6. 一文看尽2019全年AI技术突破
  7. lambda表达式和方法引用
  8. 闲鱼python_自动化篇 | 你想要的闲鱼日常操作,Python 给你实现了
  9. nginx安装及部署
  10. cesium给地图添加比例尺学习踩坑记录